disable_sidebar = true; } public function set_parse_options($bool) { $this->parse_options = $bool; } public function get_parse_options() { return (bool)$this->parse_options; } public function set_update_option($bool) { $this->update_option = $bool; } public function get_update_option() { return (bool)$this->update_option; } public function set_page($page) { $this->page = $page; } public function get_page() { return $this->page; } public function set_exists($exists) { $this->exists = $exists; } public function get_exists() { return $this->exists; } public function set_use_style_and_script($use) { $this->use_style_and_script = $use; } public function get_use_style_and_script() { return (bool)$this->use_style_and_script; } public function set_use_jquery_ui_sortable($use) { $this->use_jquery_ui_sortable = $use; } public function get_use_jquery_ui_sortable() { return $this->use_jquery_ui_sortable; } public function set_use_jquery_ui($use) { $this->use_jquery_ui = $use; } public function get_use_jquery_ui() { return (bool)$this->use_jquery_ui; } public function set_use_media_upload($use) { $this->use_media_upload = $use; if($use) { $this->set_use_style_and_script(true); } } public function get_use_media_upload() { return (bool)$this->use_media_upload; } public function set_use_color_picker($use) { $this->use_color_picker = $use; } public function get_use_color_picker() { return (bool)$this->use_color_picker; } public function set_help_sidebar($help_sidebar) { $this->help_sidebar = $help_sidebar; } public function get_help_sidebar() { return $this->help_sidebar; } public function set_help_tabs($help_tabs) { $this->help_tabs = $help_tabs; } public function get_help_tabs() { return $this->help_tabs; } public function set_section_description($section_description) { $this->section_description = $section_description; } public function get_section_description() { return $this->section_description; } public function set_fields($fields) { $this->fields = $fields; } public function get_fields() { return $this->fields; } public function set_sections($sections) { $this->sections = $sections; } public function get_sections() { return $this->sections; } public function set_section_callback($section_callback) { $this->section_callback = $section_callback; } public function get_section_callback() { if(!fansub_callback_exists($this->section_callback)) { $this->set_section_callback(array($this, 'default_section_callback')); } return $this->section_callback; } public function set_section_id($section_id) { $this->section_id = $section_id; } public function get_section_id() { return $this->section_id; } public function set_section_title($section_title) { $this->section_title = $section_title; } public function get_section_title() { return $this->section_title; } public function set_sanitize_callback($sanitize_callback) { $this->sanitize_callback = $sanitize_callback; } public function get_sanitize_callback() { return $this->sanitize_callback; } public function set_option_name($option_name) { $this->option_name = $option_name; } public function get_option_name() { if(empty($this->option_name)) { $this->option_name = $this->get_menu_slug(); } return $this->option_name; } public function get_option_name_no_prefix() { $option_name = $this->get_option_name(); $option_name = str_replace('fansub_', '', $option_name); return $option_name; } public function set_option_group($option_group) { $this->option_group = $option_group; } public function get_option_group() { if(empty($this->option_group)) { $this->option_group = $this->get_menu_slug(); } return $this->option_group; } public function set_menu_title($menu_title) { $this->menu_title = $menu_title; } public function get_menu_title() { return $this->menu_title; } public function get_heading_text() { return $this->heading_text; } public function set_heading_text($text) { $this->heading_text = $text; } public function get_page_title_action() { return $this->page_title_action; } public function set_page_title_action($action, $url, $text) { $action = fansub_sanitize($action, 'html_class'); fansub_add_string_with_space_before($action, 'page-title-action'); $link = new HOCWP_HTML('a'); $link->set_class($action); $link->set_attribute('href', $url); $link->set_text($text); $this->page_title_action = $link->build(); } public function set_page_sidebar_callback($func) { $this->page_sidebar_callback = $func; } public function get_page_sidebar_callback() { return $this->page_sidebar_callback; } public function set_page_header_callback($func) { $this->page_header_callback = $func; } public function get_page_header_callback() { return $this->page_header_callback; } public function set_page_footer_callback($func) { $this->page_footer_callback = $func; } public function get_page_footer_callback() { return $this->page_footer_callback; } public function is_option_page() { return (bool)$this->is_option_page; } public function set_is_option_page($value) { $this->is_option_page = $value; } public function set_menu_slug($menu_slug) { $this->menu_slug = $menu_slug; } public function get_menu_slug() { return $this->menu_slug; } public function set_page_title($page_title) { $this->page_title = $page_title; } public function get_page_title() { return $this->page_title; } public function set_capability($capability) { $this->capability = $capability; } public function get_capability() { return $this->capability; } public function set_parent_slug($parent_slug) { $this->parent_slug = $parent_slug; } public function get_parent_slug() { return $this->parent_slug; } public function set_function($function) { $this->function = $function; } public function get_function() { if(!fansub_callback_exists($this->function)) { $this->function = array($this, 'default_setting_page_callback'); } return $this->function; } public function set_icon_url($icon_url) { $this->icon_url = $icon_url; } public function get_icon_url() { return $this->icon_url; } public function set_position($position) { $this->position = $position; } public function get_position() { return $this->position; } public function __construct($menu_title, $menu_slug) { $this->set_menu_title($menu_title); $this->set_page_title($menu_title); $this->set_heading_text($menu_title); $this->set_menu_slug($menu_slug); $this->set_is_option_page(true); $this->set_sanitize_callback(array($this, 'sanitize')); $this->set_capability('manage_options'); $this->set_use_style_and_script(true); $this->set_parent_slug('options-general.php'); $this->set_section_id('default'); $this->set_section_title(''); $this->set_sections(array()); $this->set_fields(array()); $this->set_help_tabs(array()); if(empty($menu_title)) { $this->set_exists(true); } if($this->get_exists()) { $this->set_option_name('fansub_' . fansub_sanitize_id($menu_slug)); } } public function settings_saved() { $option_name = $this->get_option_name(); if(isset($_POST[$option_name])) { $old = (array)get_option($option_name); $new = (array)$_POST[$option_name]; $new = wp_parse_args($new, $old); update_option($option_name, $new); } } public function is_this_page() { global $pagenow; $page = fansub_get_current_admin_page(); if($page == $this->get_menu_slug()) { if(($this->is_submenu() && $pagenow == $this->get_parent_slug()) || 'admin.php' == $pagenow) { return true; } } elseif($pagenow == $this->get_page()) { return true; } return false; } public function form() { ?>
get_parent_slug(); if(empty($parent_slug)) { return; } $disable_sidebar = (bool)$this->disable_sidebar; $title = $this->get_heading_text(); if($this->is_option_page() && !fansub_string_contain(strtolower($title), 'settings') && !fansub_string_contain(strtolower($title), 'options')) { fansub_add_string_with_space_before($title, 'Settings'); } $wrap_class = $this->get_option_name_no_prefix(); $wrap_class = fansub_sanitize($wrap_class, 'html_class'); fansub_add_string_with_space_before($wrap_class, 'wrap fansub option-page'); if(!$disable_sidebar) { fansub_add_string_with_space_before($wrap_class, 'has-sidebar'); } ?>