init(); } private function init() { add_action('admin_menu',array($this,'admin_menu')); load_plugin_textdomain(self::$text_domain,"/wp-content/plugins/custom-field-manger/languages/"); } public function admin_menu() { add_options_page( 'Meta Boxes', 'Meta Boxes', 8, 'meta-boxes',array($this,'options_page')); } public function options_page() { global $mb_msg; //form processing if(isset($_POST['post_action'])) { switch($_POST['post_action']) { case 'save_box': $mb_msg=__('Box successfully saved','axfields'); $id= ameta_box::save_metabox($_POST['title'],$_POST['post_types'], $_POST['position'], $_POST['priority'],$_POST['box_id']); wp_redirect('options-general.php?page=meta-boxes&tab=box&box='.$id.'&msg='.urlencode($mb_msg)); break; case 'save_field': //create field $validations=array(); if(isset($_POST['validations'])) { foreach($_POST['validations'] as $val) { switch($val) { case 'noselect': case 'maxlen': case 'minlen': case 'maxselect': case 'minselect': $validations[]=array($val,$_POST[$val.'_msg'],$_POST[$val.'_opt']); break; default://required,email,numeric $validations[]=array($val,$_POST[$val.'_msg']); break; }//switch } } $id=axfield::save_field($_POST['box'], $_POST['key'], $_POST['label'], $_POST['type'], $_POST['order'], $_POST['options'], $validations, $_POST['slug'], $_POST['field']); $mb_msg=__('Field succesfully saved!','axfields'); wp_redirect('options-general.php?page=meta-boxes&tab=field&box='.$_POST['box'].'&field='.$id.'&msg='.urlencode($mb_msg)); break; case 'tax_val': $mb_msg=__('Saved!','axfields'); ameta_box_manager::save_taxonomies_validation($_POST); wp_redirect('options-general.php?page=meta-boxes&tab=tax_val&msg='.urlencode($mb_msg)); break; }//switch } else if(isset($_GET['action']) ) { switch($_GET['action']) { case 'del': ameta_box::delete_box($_GET['box']); $mb_msg='Box deleted!'; wp_redirect('options-general.php?page=meta-boxes&tab=boxes&msg='.urlencode($mb_msg)); break; case 'delf': axfield::delete_field((int)$_GET['field']); $mb_msg='Field successfully deleted!'; wp_redirect('options-general.php?page=meta-boxes&tab=box&box='.$_GET['box'].'&msg='.urlencode($mb_msg)); break; } } //$meta_boxes=ameta_box_manager::get_metaboxes($this->option_name); echo '
'; ?>

Custom Fields Management

'; echo'

', $_GET['msg'],'

'; echo '
'; } ?>
'; $mb_msg=null; } switch($_GET['tab']) { case 'boxes': $this->show_boxes_page($mb_msg); break; case 'box': $this->show_box_page($mb_msg); break; case 'field': add_action('admin_footer', 'load_fieldscript'); $this->show_field_page($mb_msg); break; case 'tax_val': // add_action('admin_footer', 'load_fieldscript'); $this->show_taxonomy_validation_page($mb_msg); break; default: $this->show_boxes_page($mb_msg); break; } echo ''; } public function show_box_page($msg='') { $title=__('New box','axfields'); $post_types=get_post_types(); //var_dump($post_types); $exclude=array('revision','attachment','nav_menu_item'); foreach($post_types as $key=>$val) { if(in_array($val,$exclude)) { unset($post_types[$key]); } } if(isset($_GET['box'])) { $box=ameta_box::get_metabox((int)$_GET['box']); $title=__('Edit box','axfields'); } else { $box=new stdClass(); } if(!is_array($box->post_types))$box->post_types=explode(',', $box->post_types); ?>

'.$pt.'
'; } ?>

fields)>0) { ?> fields as $field) { echo '' ; }?>
'.$field->key.''.$field->label.''.$fieldtypes[$field->input_type].''.$field->options.'Edit|Delete
title) { ?>


Meta Boxes

'; echo '

'.urldecode($msg).'

'; echo ''; $msg=null; } if(is_array($meta_boxes) && count($meta_boxes)>0) { ?> ' ; }?>
Boxe Name Fields countPositionActions
'.$mb->title.''.$mb->fields_count.''.$mb->position.'Edit|Delete

0) { echo ''; }?>

validations); $validation_types=axfield::validation_types(); //remove tag validation types unset($validation_types[8]);//minentry unset($validation_types[9]);//maxentry foreach($validation_types as $validation) { echo ''; $selected=''; $vopt=null; $vmsg=$validation['msg']; if(is_array($fvalidations) && count($fvalidations)>0) { foreach($fvalidations as $v) { if($validation['type']==$v[0]) { $selected='checked="checked"'; if($v[2])$vopt=$v[2]; $vmsg=isset($v[1])?$v[1]:$validation['msg']; break; } } } echo ''; echo ''; echo ''; echo ''; } ?>
'; if($validation['option']) echo '
'.$validation['description'].''; else echo 'N/A'; echo '

'.__('Taxonomies validation','axfield').'

'; $taxonomies=get_taxonomies(); $exclude=array('nav_menu','link_category'); foreach($taxonomies as $key=>$val) { if(in_array($val,$exclude)) { unset($taxonomies[$key]); } } //only checkbox validation required $validations=axfield::validation_types(); $vals=array();//hierarchical $vals2=array();//non hierarchical foreach($validations as $key=>$val) { if($val['type']=='minselect' || $val['type']=='maxselect' ) { $vals[]=$val; } if($val['type']=='minentry' || $val['type']=='maxentry' ) { $vals2[]=$val; } } if(is_array($taxonomies) && count($taxonomies)>0) { ?>
'.__('Taxonomies','axfields').''.__('Validation','axfield').''.__('Error message','axfields').''.__('Option','axfields').''; foreach($taxonomies as $tax) { $tax_obj=get_taxonomy($tax); if($tax_obj->hierarchical) { echo ''; echo ''.$tax. ''; $checked=isset($tax_vals[$tax.'_'.$vals[0]['type']])?' checked="checked" ':''; echo ''; echo ''; echo ''; echo ''; echo ''; $checked=isset($tax_vals[$tax.'_'.$vals[1]['type']])?' checked="checked" ':''; echo ''; echo ''; echo ''; echo ''; } else { echo ''; echo ''.$tax. ''; $checked=isset($tax_vals[$tax.'_'.$vals2[0]['type']])?' checked="checked" ':''; echo ''; echo ''; echo ''; echo ''; echo ''; $checked=isset($tax_vals[$tax.'_'.$vals2[1]['type']])?' checked="checked" ':''; echo ''; echo ''; echo ''; echo ''; } } echo ''; ?>