plugin_url=plugins_url().'/'.basename(dirname(__FILE__)); $this->plugin_path=dirname(__FILE__); $this->options=get_option($this->option_name); $this->info=get_option($this->info_name); add_action( 'wp_ajax_adminmenuslide_toggle', array($this,'adminmenuslide_toggle_callback') ); add_action( 'admin_menu', array( $this, 'add_plugin_page' ) ); add_action( 'admin_init', array( $this, 'add_settings_fields' ) ); if (basename($_SERVER['PHP_SELF'])==='options-general.php' && isset($_GET['page']) && $_GET['page']===$this->settings_page_id) add_action('admin_enqueue_scripts',array($this,'enqueue_settings_scripts')); } function adminmenuslide_toggle_callback() { if (!isset($_GET['value'])) { wp_die(); return; } $user_id=wp_get_current_user()->ID; $value=intval($_GET['value']); if (!empty($user_id) || ($value===1 || $value===0) ) { if (get_user_meta($user_id, 'windowpress-menu-slide',true)!=='') //if usermeta exists update_user_meta( $user_id, 'windowpress-menu-slide', $value); } wp_die(); } public function enqueue_settings_scripts() { wp_enqueue_style('admin-menu-slide-settings', $this->plugin_url.'/includes/css/settings.css'); } public function add_plugin_page() { add_options_page( 'Admin Menu Slide', 'Admin Menu Slide', 'manage_options', $this->page_id, array($this,'plugin_page') ); } public function plugin_page() { ?>
$units
"; if(!empty($description)) echo "$description
"; } public function sanitize_input($input) { $new_input = array(); #error messages $int_incorrect_value_error=__('allowing values between %d and %d',$this->text_domain); $notnum_error=__('input is not a number',$this->text_domain); $incorrect_url_error=__('input is not a valid URL',$this->text_domain); #validate integer inputs $int_inputs=array( 'sidebar_slide_duration'=>__('Menu Slide Duration',$this->text_domain), ); foreach ($int_inputs as $field=>$name) { if (isset($input[$field])) { $num=$input[$field]; $error_message=''; if (!is_numeric($num)) $error_message=$name.': '.$notnum_error; else { #set limits $lower_limit=0; $upper_limit=2000; if ($field==='sidebar_slide_duration') $upper_limit=1000; $num=intval($num); if ($num>=$lower_limit && $num<=$upper_limit) $new_input[$field]=$num; else $error_message=$name.': '.sprintf($int_incorrect_value_error,$lower_limit,$upper_limit); } if(!empty($error_message)) { $new_input[$field]=$this->options[$field]; add_settings_error($field,esc_attr('settings_error'),$error_message,'error'); } } } return $new_input; } //endof sanitize_input public function empty_func() { } private $options; private $option_group='admin-menu-slide'; private $page_id='admin-menu-slide'; private $section_general='admin-menu-slide-settings'; private $option_name='admin-menu-slide-settings'; private $info_name='admin-menu-slide-info'; private $plugin_url; private $text_domain='admin-menu-slide'; private $settings_page_id='admin-menu-slide'; } $admin_menu_slide_settings= new AdminMenuSlide_Settings(); ?>