Viewing 2 replies - 1 through 2 (of 2 total)
  • This is actually a problem with NGG Custom fields. Version 1.2.3 of that plugin uses a new filter from NGG 2.X, which isn’t supported by NextCellent Gallery.

    Please contact the plugin author and point them to this post or give them this information:

    To make it work again with NextCellent, replace

    add_filter('ngg_manage_gallery_fields', 'nggcf_add_gallery_col', 11, 2);
    		function nggcf_add_gallery_col($fields=array(), $gallery=NULL) {
    			$fields['left']['ngg_cf_options'] = array(
    				'callback'	=> 'nggcf_admin_gallery_col',
    				'label'		=>	_('Custom Fields:'),
    				'tooltip'   =>  NULL,
    				'id'		=>	'ngg_cf_options'
    				);
    
    			return $fields;
    		}
    
    		function nggcf_admin_gallery_col($gallery=array()) {
    			global $wpdb;
    			$fields = nggcf_get_field_list(NGGCF_GALLERY, $gallery->gid);
    
    			echo '<strong>Custom Columns</strong><hr /><input type="hidden" name="nggcf_gallery[ngg_gallery_id]" value="'.$gallery->gid.'" />';
    
    			foreach ((array)$fields as $key=>$val) {
    
    				echo htmlspecialchars($val->field_name).'<br />';
    
    				$value = $wpdb->get_row("SELECT * FROM ".$wpdb->prefix."nggcf_field_values WHERE pid = '".$wpdb->escape($gallery->gid)."' AND fid = '".$val->id."' AND ngg_type = '".NGGCF_GALLERY."'");
    				switch($val->field_type) {
    				case NGGCF_FIELD_TYPE_INPUT :
    					echo '<input name="nggcf_gallery['.$val->id.']" style="width:95%;" value="'.esc_attr($value->field_value).'" />';
    					break;
    				case NGGCF_FIELD_TYPE_TEXTAREA :
    					echo '<textarea name="nggcf_gallery['.$val->id.']" style="width:95%;">'.esc_attr($value->field_value).'</textarea>';
    					break;
    				case NGGCF_FIELD_TYPE_SELECT :
    					$opts = explode(",", $val->drop_options);
    					echo '<select name="nggcf_gallery['.$val->id.']">';
    					echo '<option value=""></option>';
    					foreach ((array)$opts as $optVal) {
    						echo '<option value="'.trim(esc_attr($optVal)).'" '.(trim(esc_attr($optVal)) == esc_attr($value->field_value) ? ' selected="selected"' : '').'>'.trim(esc_attr($optVal)).'</option>';
    					}
    					echo '</select>';
    					break;
    				}
    				echo '<br />';
    			}
    		}
    	//}

    with

    $plugin = get_plugin_data( NGGALLERY_ABSPATH . '/nggallery.php', true, false );
    		if ( $plugin['name'] = 'NextCellent Gallery') {
    		add_action('ngg_manage_gallery_settings', 'nggcf_admin_gallery_col');
    		function nggcf_admin_gallery_col($act_gid) {
    			global $wpdb;
    			$fields = nggcf_get_field_list(NGGCF_GALLERY, $act_gid);
    
    			echo '<tr>';
    			echo '<td colspan="4" align="left">';
    			echo '<strong>Custom Columns</strong><hr /><input type="hidden" name="nggcf_gallery[ngg_gallery_id]" value="'.$act_gid.'" />';
    
    			foreach ((array)$fields as $key=>$val) {
    				echo '<tr>';
    				echo '<td align="right">'.htmlspecialchars($val->field_name).'</td>';
    				echo '<td>';
    
    				$value = $wpdb->get_row("SELECT * FROM ".$wpdb->prefix."nggcf_field_values WHERE pid = '".$wpdb->escape($act_gid)."' AND fid = '".$val->id."' AND ngg_type = '".NGGCF_GALLERY."'");
    				switch($val->field_type) {
    				case NGGCF_FIELD_TYPE_INPUT :
    					echo '<input name="nggcf_gallery['.$val->id.']" style="width:95%;" value="'.esc_attr($value->field_value).'" />';
    					break;
    				case NGGCF_FIELD_TYPE_TEXTAREA :
    					echo '<textarea name="nggcf_gallery['.$val->id.']" style="width:95%;">'.esc_attr($value->field_value).'</textarea>';
    					break;
    				case NGGCF_FIELD_TYPE_SELECT :
    					$opts = explode(",", $val->drop_options);
    					echo '<select name="nggcf_gallery['.$val->id.']">';
    					echo '<option value=""></option>';
    					foreach ((array)$opts as $optVal) {
    						echo '<option value="'.trim(esc_attr($optVal)).'" '.(trim(esc_attr($optVal)) == esc_attr($value->field_value) ? ' selected="selected"' : '').'>'.trim(esc_attr($optVal)).'</option>';
    					}
    					echo '</select>';
    					break;
    				}
    
    				echo '</td>';
    				echo '</tr>';
    			}
    
    			echo '</td>';
    			echo '</tr>';
    		}
    	//}
    		} else {
    		add_filter('ngg_manage_gallery_fields', 'nggcf_add_gallery_col', 11, 2);
    		function nggcf_add_gallery_col($fields=array(), $gallery=NULL) {
    			$fields['left']['ngg_cf_options'] = array(
    				'callback'	=> 'nggcf_admin_gallery_col',
    				'label'		=>	_('Custom Fields:'),
    				'tooltip'   =>  NULL,
    				'id'		=>	'ngg_cf_options'
    				);
    
    			return $fields;
    		}
    
    		function nggcf_admin_gallery_col($gallery=array()) {
    			global $wpdb;
    			$fields = nggcf_get_field_list(NGGCF_GALLERY, $gallery->gid);
    
    			echo '<strong>Custom Columns</strong><hr /><input type="hidden" name="nggcf_gallery[ngg_gallery_id]" value="'.$gallery->gid.'" />';
    
    			foreach ((array)$fields as $key=>$val) {
    
    				echo htmlspecialchars($val->field_name).'<br />';
    
    				$value = $wpdb->get_row("SELECT * FROM ".$wpdb->prefix."nggcf_field_values WHERE pid = '".$wpdb->escape($gallery->gid)."' AND fid = '".$val->id."' AND ngg_type = '".NGGCF_GALLERY."'");
    				switch($val->field_type) {
    				case NGGCF_FIELD_TYPE_INPUT :
    					echo '<input name="nggcf_gallery['.$val->id.']" style="width:95%;" value="'.esc_attr($value->field_value).'" />';
    					break;
    				case NGGCF_FIELD_TYPE_TEXTAREA :
    					echo '<textarea name="nggcf_gallery['.$val->id.']" style="width:95%;">'.esc_attr($value->field_value).'</textarea>';
    					break;
    				case NGGCF_FIELD_TYPE_SELECT :
    					$opts = explode(",", $val->drop_options);
    					echo '<select name="nggcf_gallery['.$val->id.']">';
    					echo '<option value=""></option>';
    					foreach ((array)$opts as $optVal) {
    						echo '<option value="'.trim(esc_attr($optVal)).'" '.(trim(esc_attr($optVal)) == esc_attr($value->field_value) ? ' selected="selected"' : '').'>'.trim(esc_attr($optVal)).'</option>';
    					}
    					echo '</select>';
    					break;
    				}
    				echo '<br />';
    			}
    		}
    	//}
    	}

    This should be done with all new hooks and stuff they use from NextGEN 2.X.

    Plugin Author WPReady

    (@wpready)

    Excellent Niko, i figured out the filter problem, but not the workaround!!!
    Great!

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘NGG Cusotm field issue’ is closed to new replies.