public static function register_settings() { piklist::process_views('settings', array('piklist_setting', 'register_settings_callback')); $default_tabs = piklist_admin::get('admin_page_default_tabs'); foreach (self::$settings as $setting => $sections) { add_filter('pre_update_option_' . $setting, array('piklist_setting', 'pre_update_option'), 10, 2); register_setting($setting, $setting); uasort($sections, array('piklist', 'sort_by_order')); self::$setting_tabs[$setting] = array('default' => array('title' => isset($default_tabs[$setting]) ? __($default_tabs[$setting]) : __('General', 'piklist'), 'page' => null, 'tab_order' => 10)); foreach ($sections as $section) { $tab = !empty($section['tab']) ? piklist::dashes($section['tab']) : 'default'; if (!isset(self::$setting_tabs[$setting][$tab]) && $tab) { self::$setting_tabs[$setting][$tab] = array('title' => $section['tab'], 'page' => $tab, 'tab_order' => $section['tab_order']); } elseif ($tab && !empty($section['tab_order']) && empty(self::$setting_tabs[$setting][$tab]['tab_order'])) { self::$setting_tabs[$setting][$tab]['tab_order'] = $section['tab_order']; } if (isset($_REQUEST['tab']) && isset($section['tab']) && $_REQUEST['tab'] == $tab || !isset($_REQUEST['tab']) && empty($section['tab'])) { self::$setting_section_callback_args[$section['slug']] = $section; add_settings_section($section['slug'], $section['title'], array('piklist_setting', 'register_settings_section_callback'), $setting); } } uasort(self::$setting_tabs[$setting], array('piklist', 'sort_by_tab_order')); } }
/** * part_process * Convert old tabs to Workflow tabs. * * @param array $part The part object. * * @access public * @static * @since 1.0 */ public static function part_process($part) { $page = isset($_REQUEST['page']) ? esc_attr($_REQUEST['page']) : false; if ($page && empty($part['data']['flow'])) { $part['data']['flow'] = array($part['data']['setting']); if (!$part['data']['tab']) { $admin_pages = piklist_admin::get('admin_pages'); foreach ($admin_pages as $admin_page) { if ($_REQUEST['page'] == $admin_page['menu_slug']) { break; } } $part['data']['tab'] = array(isset($admin_page['default_tab']) ? piklist::slug($admin_page['default_tab']) : 'general'); } } return $part; }