/** * 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; }