Example #1
0
 /**
  * include_add_ons
  * Inlcude add-ons registered with piklist.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function include_add_ons()
 {
     require_once ABSPATH . 'wp-admin/includes/plugin.php';
     $site_wide_plugins = get_site_option('active_sitewide_plugins');
     if (!empty($site_wide_plugins)) {
         $plugins = array_merge(get_option('active_plugins'), array_keys($site_wide_plugins));
     } else {
         $plugins = get_option('active_plugins');
     }
     foreach ($plugins as $plugin) {
         $path = WP_PLUGIN_DIR . '/' . $plugin;
         if (file_exists($path)) {
             $data = piklist::get_file_data($path, array('type' => 'Plugin Type', 'version' => 'Version'));
             if ($data['type'] && strtolower($data['type']) == 'piklist') {
                 piklist::add_plugin(basename(dirname($plugin)), dirname($path));
                 add_action('load-plugins.php', array('piklist_admin', 'deactivation_link'));
                 piklist_admin::$piklist_dependent = true;
                 if ($data['version']) {
                     $file = $plugin;
                     $version = $data['version'];
                     piklist_admin::check_update($file, $version);
                 }
             }
         }
     }
     $addon_paths = piklist::paths();
     $paths = array();
     foreach ($addon_paths as $from => $path) {
         if ($from != 'theme') {
             array_push($paths, $path . '/add-ons');
             if ($from != 'piklist') {
                 array_push($paths, $path);
             }
         }
     }
     foreach ($paths as $path) {
         if (is_dir($path)) {
             if (strstr($path, 'add-ons')) {
                 $add_ons = piklist::get_directory_list($path);
                 foreach ($add_ons as $add_on) {
                     $file = file_exists($path . '/' . $add_on . '/' . $add_on . '.php') ? $path . '/' . $add_on . '/' . $add_on . '.php' : $path . '/' . $add_on . '/plugin.php';
                     self::register_add_on($add_on, $file, $path);
                 }
             } else {
                 $add_on = basename($path);
                 $file = file_exists($path . '/' . $add_on . '.php') ? $path . '/' . $add_on . '.php' : $path . '/plugin.php';
                 self::register_add_on($add_on, $file, $path, true);
             }
         }
     }
     do_action('piklist_activate_add_on');
 }
 public static function setup_theme()
 {
     if (is_dir(get_stylesheet_directory() . '/piklist')) {
         piklist::$paths['theme'] = get_stylesheet_directory() . '/piklist';
         add_action('load-plugins.php', array('piklist_admin', 'deactivation_link'));
         piklist_admin::$piklist_dependent = true;
     }
     if (get_template_directory() != get_stylesheet_directory() && is_dir(get_template_directory() . '/piklist')) {
         piklist::$paths['parent-theme'] = get_template_directory() . '/piklist';
         add_action('load-plugins.php', array('piklist_admin', 'deactivation_link'));
         piklist_admin::$piklist_dependent = true;
     }
 }
 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'));
     }
 }
 public static function admin_body_class($classes = '')
 {
     global $typenow;
     $classes .= $classes;
     if (piklist_admin::$piklist_dependent == true) {
         $classes .= 'piklist-dependent' . ' ';
     }
     if (piklist_admin::responsive_admin() == true) {
         $classes .= 'responsive-admin' . ' ';
     }
     if (isset($_GET['taxonomy'])) {
         $classes .= 'taxonomy-' . $_GET['taxonomy'] . ' ';
     }
     if ($typenow) {
         $classes .= 'post_type-' . $typenow;
     }
     return $classes;
 }
Example #5
0
 /**
  * is_allowed
  * Determines if a workflow tab is allowed to be shown.
  *
  * @param array $data The tab configuration object.
  *
  * @return array The statuse of whether its allowed.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function is_allowed($data, $strict = true)
 {
     global $pagenow;
     $allowed = !$strict;
     // Check to see if there is an active flow
     if (isset($_REQUEST['flow']) && piklist::slug($flow, 'UTF-8') == $_REQUEST['flow']) {
         $allowed = true;
     }
     // Check Pages
     $pages = $data['data']['page'];
     if (!empty($pages)) {
         $allowed = in_array($pagenow, $pages);
         if (isset($_REQUEST['page'])) {
             $allowed = in_array($_REQUEST['page'], $pages);
         }
     }
     // Check Post Types
     if ($allowed && piklist_admin::is_post()) {
         $post_types = $data['data']['post_type'];
         $current_post_type = piklist_cpt::detect_post_type();
         if (!empty($post_types)) {
             $allowed = in_array($current_post_type, $post_types);
         }
     }
     // Check which mode we are on for the term pages
     if (piklist_admin::is_term()) {
         $taxonomies = $data['data']['taxonomy'];
         $current_taxonomy = isset($_REQUEST['taxonomy']) ? $_REQUEST['taxonomy'] : false;
         if (!empty($taxonomies) && $current_taxonomy) {
             $allowed = in_array($current_taxonomy, $taxonomies);
         }
         if (piklist_admin::is_term() === 'new') {
             $allowed = false;
         }
     }
     return $allowed;
 }
Example #6
0
File: form.php Project: a42/piklist
  enctype="multipart/form-data"
  id="<?php 
echo $id;
?>
"
  autocomplete="off"
  data-piklist-form="true"
  class="piklist-form <?php 
echo is_admin() ? 'hidden' : null;
?>
"
>
  <?php 
do_action('piklist_notices', $id);
foreach ($render as $form) {
    piklist::render($form, $data);
}
piklist('field', array('type' => 'hidden', 'scope' => piklist::$prefix, 'field' => 'form_id', 'value' => $id));
if ($data['filter']) {
    piklist('field', array('type' => 'hidden', 'scope' => piklist::$prefix, 'field' => 'filter', 'value' => 'true'));
}
if ($data['redirect']) {
    piklist('field', array('type' => 'hidden', 'scope' => piklist::$prefix, 'field' => 'redirect', 'value' => $data['redirect']));
}
if (piklist_admin::hide_ui()) {
    piklist('field', array('type' => 'hidden', 'scope' => piklist::$prefix, 'field' => 'admin_hide_ui', 'value' => 'true'));
}
piklist_form::save_fields();
?>
  
</form>
Example #7
0
<div class="wrap">

  <?php 
if (isset($page_icon)) {
    ?>

    <?php 
    piklist_admin::$page_icon = array('page_id' => '#icon-' . $section, 'icon_url' => $page_icon);
    ?>

    <?php 
    $page_icon = $section;
    ?>

  <?php 
} elseif (isset($icon)) {
    ?>

    <?php 
    $page_icon = $icon;
    ?>

  <?php 
} else {
    ?>

    <?php 
    $page_icon = null;
    ?>

  <?php 
Example #8
0
 /**
  * clear_screen
  * Clear the screen of all meta-boxes
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function clear_screen()
 {
     global $wp_meta_boxes, $current_screen;
     $workflow = piklist_workflow::get('workflow');
     if ($workflow && $workflow['data']['clear'] == true && piklist_admin::is_post()) {
         remove_post_type_support('post', 'editor');
         remove_post_type_support('post', 'title');
         foreach (array('normal', 'advanced', 'side') as $context) {
             foreach (array('high', 'sorted', 'core', 'default', 'low') as $priority) {
                 if (isset($wp_meta_boxes[$current_screen->id][$context][$priority])) {
                     foreach ($wp_meta_boxes[$current_screen->id][$context][$priority] as $meta_box) {
                         if ($meta_box['id'] != 'submitdiv') {
                             unset($wp_meta_boxes[$current_screen->id][$context][$priority][$meta_box['id']]);
                         }
                     }
                 }
             }
         }
     }
 }
Example #9
0
 public function ajax()
 {
     if (!isset($_REQUEST['method']) || !isset($_REQUEST['nonce']) || !wp_verify_nonce((string) $_REQUEST['nonce'], $this->slug)) {
         wp_send_json_error();
     }
     global $wpdb;
     $output = array();
     $method = esc_attr($_REQUEST['method']);
     switch ($method) {
         case 'complete-update':
             piklist_admin::$network_wide = is_plugin_active_for_network('piklist/piklist.php');
             $updates = piklist_admin::$network_wide ? get_site_option('piklist_updates') : get_option('piklist_updates');
             foreach ($updates['piklist'] as $index => $version) {
                 if ($version == '0.9.9') {
                     unset($updates['piklist'][$index]);
                 }
             }
             $updates['piklist'] = array_values($updates['piklist']);
             piklist_admin::$network_wide ? update_site_option('piklist_updates', $updates) : update_option('piklist_updates', $updates);
             $output['message'] = 'Piklist Update 0.9.9 Completed!';
             break;
         case 'options-update':
             /**
              * Fix arrays created by piklist_admin::check_update()
              * Remove null values and zero values
              */
             $piklist_active_plugin_versions = piklist_admin::$network_wide ? get_site_option('piklist_active_plugin_versions') : get_option('piklist_active_plugin_versions');
             foreach ($piklist_active_plugin_versions as $plugins => $versions) {
                 foreach ($versions as $key => $value) {
                     if (is_null($value) || $value == 0) {
                         unset($piklist_active_plugin_versions[$plugins][$key]);
                     }
                 }
             }
             piklist_admin::$network_wide ? update_site_option('piklist_active_plugin_versions', $piklist_active_plugin_versions) : update_option('piklist_active_plugin_versions', $piklist_active_plugin_versions);
             $output['message'] = 'Active Plugin Versions Updated...';
             break;
         case 'relate-update':
             $related = $wpdb->get_results("SELECT post_id, has_post_id FROM {$wpdb->prefix}post_relationships", ARRAY_A);
             $meta_key = '_' . piklist::$prefix . 'relate_post';
             foreach ($related as $relate) {
                 $current_related = get_metadata('post', $relate['post_id'], $meta_key);
                 if (!$current_related || $current_related && !in_array($relate['has_post_id'], $current_related)) {
                     add_metadata('post', $relate['post_id'], $meta_key, $relate['has_post_id']);
                     add_metadata('post', $relate['has_post_id'], $meta_key, $relate['post_id']);
                 }
             }
             $output['message'] = 'Post Relationships Updated...';
             $relate_table = $wpdb->prefix . 'post_relationships';
             $wpdb->query("DROP TABLE IF EXISTS {$relate_table}");
             $output['message'] = 'Legacy post_relationships Table Deleted...';
             break;
         case 'widgets':
         case 'settings':
         case 'meta-boxes':
         case 'users':
         case 'terms':
         case 'media':
             $folder = $method;
             $buffer = null;
             $this->widget = false;
             $this->setting = false;
             $this->fields = array();
             // Read all fields for folder
             foreach (piklist::paths() as $add_on => $path) {
                 $files = piklist::get_directory_list($path . '/parts/' . $folder);
                 if (empty($files) && in_array($add_on, array('theme', 'parent-theme'))) {
                     $files = piklist::get_directory_list($path . '/' . $folder);
                 }
                 ob_start();
                 foreach ($files as $part) {
                     if ($folder == 'widgets' && stristr($part, '-form') || $folder != 'widgets') {
                         if ($folder == 'settings') {
                             $data = piklist::get_file_data($path . '/parts/' . $folder . '/' . $part, array('setting' => 'Setting'));
                             $this->setting = $data['setting'];
                         } elseif ($folder == 'widgets') {
                             $data = piklist::get_file_data($path . '/parts/' . $folder . '/' . $part, array('title' => 'Title'));
                             if (empty($data['title'])) {
                                 $data = piklist::get_file_data($path . '/parts/' . $folder . '/' . str_replace('-form', '', $part), array('title' => 'Title'));
                             }
                             $this->widget = $add_on . ':' . strtolower($data['title']);
                         }
                         ob_start();
                         @(include $path . '/parts/' . $folder . '/' . $part);
                         ob_end_clean();
                     }
                 }
                 ob_end_clean();
             }
             // Setup our defaults
             switch ($folder) {
                 case 'meta-boxes':
                 case 'media':
                     $table = $wpdb->postmeta;
                     $object_key = 'post_id';
                     $meta_id = 'meta_id';
                     $output['message'] = $folder == 'meta-boxes' ? __('Post Meta Updated...') : __('Media Meta Updated...');
                     break;
                 case 'users':
                     $table = $wpdb->usermeta;
                     $object_key = 'user_id';
                     $meta_id = 'umeta_id';
                     $output['message'] = __('User Meta Updated...');
                     break;
                 case 'terms':
                     $table = $wpdb->termmeta;
                     $object_key = 'term_id';
                     $meta_id = 'meta_id';
                     $output['message'] = __('Term Meta Updated...');
                     break;
             }
             // Run through fields and update the ones we need to update
             foreach ($this->fields as $index => $field) {
                 switch ($folder) {
                     case 'media':
                     case 'meta-boxes':
                     case 'users':
                     case 'terms':
                         $keys = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$table} WHERE meta_key = %s", $field['field']), ARRAY_A);
                         foreach ($keys as $key) {
                             if (!empty($key['meta_value'])) {
                                 $old = maybe_unserialize($key['meta_value']);
                                 if ($this->needs_update($old)) {
                                     $new = piklist::object_format($old);
                                     $new = isset($field['add_more']) && $field['add_more'] == true ? $new : current($new);
                                     if ($old != $new) {
                                         $result = $wpdb->update($table, array('meta_value' => maybe_serialize($new)), array($meta_id => $key[$meta_id], $object_key => $key[$object_key], 'meta_key' => $key['meta_key']));
                                     }
                                 }
                             }
                         }
                         break;
                     case 'settings':
                         remove_filter('pre_update_option_' . $field['context'], array('piklist_setting', 'pre_update_option'), 10, 2);
                         $option = get_option($field['context']);
                         if (isset($option[$field['field']['field']]) && $this->needs_update($option[$field['field']['field']])) {
                             $option[$field['field']['field']] = piklist::object_format($option[$field['field']['field']]);
                             // Helpers Dashboard Widgets field
                             $option[$field['field']['field']] = isset($field['field']['add_more']) && $field['field']['add_more'] == true ? $option[$field['field']['field']] : current($option[$field['field']['field']]);
                             update_option($field['context'], $option);
                         }
                         $output['message'] = __('Settings Updated...');
                         break;
                     case 'widgets':
                         $data = explode(':', $field['context']);
                         $widgets = get_option('widget_piklist-universal-widget-' . $data[0]);
                         if (!empty($widgets)) {
                             foreach ($widgets as $widget_number => &$widget) {
                                 if (is_numeric($widget_number)) {
                                     foreach ($widget as $_field => &$_value) {
                                         if ($field['field']['field'] == $_field) {
                                             $old = maybe_unserialize($_value);
                                             if ($this->needs_update($old)) {
                                                 $_value = maybe_serialize(piklist::object_format($old));
                                             }
                                         } elseif ($_field == 'widget') {
                                             $old = maybe_unserialize($_value);
                                             $add_on = piklist::slug($data[0]);
                                             if (is_array($old) && substr($old[0], 0, strlen($add_on)) != $add_on) {
                                                 $_value = piklist::slug($data[0] . '_' . $old[0]);
                                             }
                                         }
                                     }
                                 }
                             }
                             update_option('widget_piklist-universal-widget-' . $data[0], $widgets);
                             $output['message'] = __('Widgets Updated...');
                         }
                         break;
                 }
             }
             $output['fields'] = array();
             foreach ($this->fields as $index => $field) {
                 if (is_array($field)) {
                     array_push($output['fields'], (isset($field['context']) ? $field['context'] . ' - ' : null) . (is_array($field['field']) ? $field['field']['field'] : $field['field']));
                 } else {
                     array_push($output['fields'], $field);
                 }
             }
             break;
     }
     wp_send_json($output);
 }
Example #10
0
 /**
  * check_update
  * Check if a piklist plugin needs an update.
  *
  * @param string $file The plugin filename.
  * @param string $version The plugin version.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function check_update($file, $version)
 {
     global $pagenow;
     if (!is_admin() || !current_user_can('manage_options')) {
         return;
     }
     $plugin = plugin_basename($file);
     if (is_plugin_active_for_network($plugin)) {
         piklist_admin::$network_wide = true;
         $versions = get_site_option('piklist_active_plugin_versions', array());
     } elseif (is_plugin_active($plugin)) {
         piklist_admin::$network_wide = false;
         $versions = get_option('piklist_active_plugin_versions', array());
     } else {
         return;
     }
     if (empty($versions[$plugin])) {
         $versions[$plugin][] = $version;
     } else {
         if (!is_array($versions[$plugin])) {
             $versions[$plugin] = array($versions[$plugin]);
         }
         $current_version = is_array($versions[$plugin]) ? current($versions[$plugin]) : $versions[$plugin];
         if (version_compare($version, $current_version, '>')) {
             self::get_update($file, $version, $current_version);
             array_unshift($versions[$plugin], $version);
         }
     }
     if (piklist_admin::$network_wide) {
         update_site_option('piklist_active_plugin_versions', $versions);
     } else {
         update_option('piklist_active_plugin_versions', $versions);
     }
 }
Example #11
0
 /**
  * process_form
  * Process any form submissions.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function process_form()
 {
     if (self::valid() && !piklist_admin::is_widget() && !piklist_admin::is_setting()) {
         $form_id = isset($_REQUEST[piklist::$prefix]['form_id']) ? $_REQUEST[piklist::$prefix]['form_id'] : false;
         if ($form_id) {
             self::$form_id = $form_id;
         }
         if (self::save()) {
             $redirect = isset($_REQUEST[piklist::$prefix]['redirect']) ? $_REQUEST[piklist::$prefix]['redirect'] : false;
             if ($redirect) {
                 $redirect = preg_replace('/#.*/', '', $redirect);
                 $url_arguments = array();
                 foreach (self::$form_submission as $scope => $fields) {
                     foreach ($fields as $field) {
                         if ($field['redirect']) {
                             $url_arguments[$field['name']] = current($field['request_value']);
                         }
                     }
                 }
                 if (!empty($url_arguments)) {
                     $redirect .= (stristr($redirect, '?') ? '&' : '?') . http_build_query($url_arguments);
                 }
                 wp_redirect($redirect);
                 exit;
             }
         }
     }
 }
Example #12
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;
 }
 public static function register_taxonomies()
 {
     global $wp_taxonomies;
     self::$taxonomies = apply_filters('piklist_taxonomies', self::$taxonomies);
     $check = array();
     foreach (self::$taxonomies as $taxonomy_name => $taxonomy) {
         $taxonomy['name'] = isset($taxonomy['name']) || is_numeric($taxonomy_name) ? $taxonomy['name'] : $taxonomy_name;
         $type = isset($taxonomy['object_type']) ? $taxonomy['object_type'] : $taxonomy['post_type'];
         if (!isset($taxonomy['update_count_callback'])) {
             $taxonomy['update_count_callback'] = '_update_generic_term_count';
         }
         register_taxonomy($taxonomy['name'], $type, $taxonomy['configuration']);
         if (!isset($check[$taxonomy['name']]) || !$check[$taxonomy['name']]) {
             $check[$taxonomy['name']] = $taxonomy;
         }
         if (isset($taxonomy['configuration']['hide_meta_box']) && !empty($taxonomy['configuration']['hide_meta_box'])) {
             $object_types = is_array($type) ? $type : array($type);
             foreach ($object_types as $object_type) {
                 if (!isset(self::$meta_boxes_hidden[$object_type])) {
                     self::$meta_boxes_hidden[$object_type] = array();
                 }
                 array_push(self::$meta_boxes_hidden[$object_type], $taxonomy['configuration']['hierarchical'] ? $taxonomy['name'] . 'div' : 'tagsdiv-' . $taxonomy['name']);
             }
         }
         add_action('admin_head', array('piklist_cpt', 'hide_meta_boxes'), 100);
         if (isset($taxonomy['configuration']['page_icon']) && !empty($taxonomy['configuration']['page_icon'])) {
             global $pagenow;
             if ($pagenow == 'edit-tags.php' && $_REQUEST['taxonomy'] == $taxonomy['name']) {
                 piklist_admin::$page_icon = array('page_id' => isset($taxonomy['object_type']) && $taxonomy['object_type'] == 'user' ? '#icon-users.icon32' : '#icon-edit.icon32', 'icon_url' => $taxonomy['configuration']['page_icon']);
             }
         }
     }
     self::flush_rewrite_rules(md5(serialize($check)), 'piklist_taxonomy_rules_flushed');
 }
Example #14
0
 /**
  * relate_field
  * Determine the default object id to relate to a field.
  *
  * @param array $field The field object.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function relate_field($field)
 {
     global $wpdb;
     if (!isset($field['relate']) || !isset($field['relate']['scope'])) {
         return $field;
     }
     // Get the id of what we are relating the field to
     if (!isset($field['relate']['field'])) {
         switch ($field['relate']['scope']) {
             case 'post':
             case 'post_meta':
                 $field['relate_to'] = piklist_admin::is_post();
                 break;
             case 'user':
             case 'user_meta':
                 $field['relate_to'] = piklist_admin::is_user();
                 break;
             case 'comment':
             case 'comment_meta':
                 $field['relate_to'] = piklist_admin::is_comment();
                 break;
         }
     }
     if (in_array($field['scope'], array('post_meta', 'user_meta', 'comment_meta'))) {
         $field['value'] = self::get_object_ids($field['object_id'], $field['scope'], $field['relate']['scope']);
     } else {
         $field['object_id'] = self::get_object_ids($field['object_id'], $field['scope'], $field['relate']['scope']);
     }
     return $field;
 }
function piklist_demo_post_types($post_types)
{
    $post_types['piklist_demo'] = array('labels' => piklist('post_type_labels', 'Piklist Demos'), 'title' => __('Enter a new Demo Title'), 'menu_icon' => piklist_admin::responsive_admin() == true ? plugins_url('piklist/parts/img/piklist-menu-icon.svg') : plugins_url('piklist/parts/img/piklist-icon.png'), 'page_icon' => plugins_url('piklist/parts/img/piklist-page-icon-32.png'), 'supports' => array('title', 'revisions'), 'public' => true, 'admin_body_class' => array('piklist-demonstration', 'piklist-sample'), 'has_archive' => true, 'rewrite' => array('slug' => 'piklist-demo'), 'capability_type' => 'post', 'edit_columns' => array('title' => __('Demo'), 'author' => __('Assigned to')), 'hide_meta_box' => array('slug', 'author'), 'status' => array('draft' => array('label' => 'New', 'public' => true), 'demo' => array('label' => 'Demo', 'public' => true, 'exclude_from_search' => true, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true), 'lock' => array('label' => 'Lock', 'public' => true)));
    $post_types['piklist_lite_demo'] = array('labels' => piklist('post_type_labels', 'Lite Demo'), 'title' => __('Enter a new Demo Title'), 'menu_icon' => piklist_admin::responsive_admin() == true ? plugins_url('piklist/parts/img/piklist-menu-icon.svg') : plugins_url('piklist/parts/img/piklist-menu-icon.png'), 'page_icon' => plugins_url('piklist/parts/img/piklist-page-icon-32.png'), 'show_in_menu' => 'edit.php?post_type=piklist_demo', 'supports' => array('title', 'revisions'), 'public' => true, 'has_archive' => true, 'capability_type' => 'post', 'edit_columns' => array('title' => __('Title')), 'hide_meta_box' => array('slug', 'author'));
    return $post_types;
}
Example #16
0
 /**
  * detect_post_type
  * Attempts to detect the post type given the state of the system when called.
  *
  * @return mixed The current post type or false.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function detect_post_type($post_id = null)
 {
     global $typenow, $pagenow, $post;
     $post_type = false;
     if (piklist_admin::is_post()) {
         if (is_null($post_id)) {
             if ($post) {
                 $post_id = $post->ID;
             } elseif (isset($_REQUEST['post'])) {
                 $post_id = (int) $_REQUEST['post'];
             }
         }
         $post_type = get_post_type($post_id);
         if (!$post_type) {
             if ($typenow) {
                 $post_type = $typenow;
             } elseif (isset($_REQUEST['post_type'])) {
                 $post_type = esc_attr($_REQUEST['post_type']);
             } elseif ($pagenow == 'post-new.php') {
                 $post_type = 'post';
             }
         }
     }
     return $post_type;
 }