示例#1
0
 /**
  * part_add
  * Render a setting.
  *
  * @param array $parts A collection of parts.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function part_add($parts)
 {
     $page = isset($_REQUEST['page']) ? esc_attr($_REQUEST['page']) : false;
     if ($page) {
         $workflow = array();
         $default_tab = array();
         $process_parts = piklist::get_processed_parts('settings');
         if ($process_parts) {
             foreach ($process_parts['parts'] as $part) {
                 if ($part['data']['setting'] == $page && is_array($part['data']['flow']) && in_array($part['data']['setting'], $part['data']['flow'])) {
                     if ($part['data']['tab']) {
                         $tab = current($part['data']['tab']);
                         $part['data']['flow'] = $part['data']['setting'];
                         if (isset($workflow[$tab])) {
                             if (!empty($part['data']['tab_order'])) {
                                 $workflow[$tab]['data']['order'] = $part['data']['tab_order'];
                             }
                         } else {
                             $workflow[$tab] = array('folder' => 'workflows', 'render' => array(), 'add_on' => $part['add_on'], 'prefix' => $part['prefix'], 'path' => null, 'part' => null, 'data' => array('flow' => array($part['data']['setting']), 'page' => array($part['data']['setting']), 'order' => $part['data']['tab_order'], 'title' => ucwords($tab), 'position' => 'title', 'tab' => null, 'post_type' => null, 'header' => false, 'disable' => false, 'redirect' => false, 'default' => false));
                         }
                     } elseif (empty($default_tab)) {
                         $admin_pages = piklist_admin::get('admin_pages');
                         foreach ($admin_pages as $admin_page) {
                             if ($_REQUEST['page'] == $admin_page['menu_slug']) {
                                 break;
                             }
                         }
                         $default_tab = array('id' => $part['id'], 'folder' => 'workflows', 'render' => array(), 'add_on' => $part['add_on'], 'prefix' => $part['prefix'], 'path' => null, 'part' => null, 'data' => array('flow' => array($part['data']['setting']), 'page' => array($part['data']['setting']), 'order' => $part['data']['tab_order'], 'title' => __(isset($admin_page['default_tab']) && $admin_page['default_tab'] ? piklist::slug($admin_page['default_tab']) : 'General'), 'position' => 'title', 'tab' => null, 'post_type' => null, 'header' => false, 'disable' => false, 'redirect' => false, 'default' => false));
                     }
                 }
             }
             if (!empty($workflow) && count($workflow) > 1) {
                 if (!empty($default_tab)) {
                     array_push($workflow, $default_tab);
                 }
                 foreach ($workflow as $tab) {
                     array_push($parts, $tab);
                 }
             }
         }
     }
     return $parts;
 }