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'));
     }
 }
示例#2
0
 /**
  * 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;
 }