예제 #1
0
 public static function register_notices_callback($arguments)
 {
     $screen = get_current_screen();
     extract($arguments);
     $file = $path . '/parts/' . $folder . '/' . $part;
     $data = get_file_data($file, apply_filters('piklist_get_file_data', array('notice_id' => 'Notice ID', 'notice_type' => 'Notice Type', 'capability' => 'Capability', 'role' => 'Role', 'page' => 'Page'), 'notice'));
     $data = apply_filters('piklist_add_part', $data, 'notice');
     $dismissed = explode(',', (string) get_user_meta(get_current_user_id(), 'dismissed_piklist_notices', true));
     if (!empty($dismissed[0]) && in_array($data['notice_id'], $dismissed)) {
         return;
     }
     $page = str_replace(' ', '', $data['page']);
     $pages = $page ? explode(',', $page) : false;
     if ($screen->id == $page || empty($page) || in_array($screen->id, $pages)) {
         if ($data['capability'] && !current_user_can($data['capability']) || $data['role'] && !piklist_user::current_user_role($data['role'])) {
             return false;
         } else {
             $content = array('content' => trim(piklist::render($file, null, true)));
             if (isset($data)) {
                 $data = array_merge($data, $content);
                 self::$notices[] = $data;
             }
         }
     }
 }
 public static function register_workflows_callback($arguments)
 {
     global $pagenow;
     extract($arguments);
     $data = get_file_data($path . '/parts/' . $folder . '/' . $part, apply_filters('piklist_get_file_data', array('name' => 'Title', 'description' => 'Description', 'capability' => 'Capability', 'order' => 'Order', 'flow' => 'Flow', 'page' => 'Page', 'post_type' => 'Post Type', 'taxonomy' => 'Taxonomy', 'role' => 'Role', 'redirect' => 'Redirect', 'header' => 'Header', 'disable' => 'Disable', 'position' => 'Position', 'default' => 'Default'), 'workflows'));
     $data = apply_filters('piklist_add_part', $data, 'workflows');
     if (!isset($data['flow'])) {
         return null;
     }
     if ((!isset($data['capability']) || empty($data['capability']) || $data['capability'] && current_user_can(strtolower($data['capability']))) && (!isset($data['role']) || empty($data['role']) || piklist_user::current_user_role($data['role']))) {
         if (!empty($data['page'])) {
             $data['page'] = strstr($data['page'], ',') ? piklist::explode(',', $data['page']) : array($data['page']);
         }
         $data['page_slug'] = piklist::slug($data['name']);
         $data['flow_slug'] = piklist::slug($data['flow']);
         if (!$data['header']) {
             $data = self::is_active($data);
         }
         if (in_array($pagenow, array('admin.php', 'users.php', 'plugins.php', 'options-general.php')) && $data['position'] == 'title') {
             $data['position'] = 'header';
         }
         $workflow = array('config' => $data, 'part' => $path . '/parts/' . $folder . '/' . $part);
         if (!isset(self::$workflows[$data['flow']])) {
             self::$workflows[$data['flow']] = array();
         }
         if ($data['header'] == 'true') {
             array_unshift(self::$workflows[$data['flow']], $workflow);
         } elseif (!empty($data['order'])) {
             self::$workflows[$data['flow']][$data['order']] = $workflow;
         } else {
             array_push(self::$workflows[$data['flow']], $workflow);
         }
     }
 }
 public static function register_meta_boxes_callback($arguments)
 {
     extract($arguments);
     $current_user = wp_get_current_user();
     $data = get_file_data($path . '/parts/' . $folder . '/' . $part, apply_filters('piklist_get_file_data', array('name' => 'Title', 'description' => 'Description', 'capability' => 'Capability', 'order' => 'Order', 'role' => 'Role', 'new' => 'New'), 'users'));
     $data = apply_filters('piklist_add_part', $data, 'users');
     $data = array_filter($data);
     $meta_box = array('id' => piklist::slug($data['name']), 'config' => $data, 'part' => $path . '/parts/' . $folder . '/' . $part);
     if ((!isset($data['capability']) || $data['capability'] && current_user_can(strtolower($data['capability']))) && (!isset($data['role']) || piklist_user::current_user_role($data['role'])) && (!isset($data['new']) || $data['new'] && (isset($pagenow) && $pagenow != 'user-new.php'))) {
         if (isset($order)) {
             self::$meta_boxes[$order] = $meta_box;
         } else {
             array_push(self::$meta_boxes, $meta_box);
         }
     }
 }
 public static function register_help_tabs_callback($arguments)
 {
     $screen = get_current_screen();
     extract($arguments);
     $file = $path . '/parts/' . $folder . '/' . $part;
     $data = get_file_data($file, apply_filters('piklist_get_file_data', array('title' => 'Title', 'capability' => 'Capability', 'role' => 'Role', 'page' => 'Page', 'sidebar' => 'Sidebar'), 'help'));
     $data = apply_filters('piklist_add_part', $data, 'help');
     $pages = isset($data['page']) ? explode(',', $data['page']) : false;
     if (($screen->id == $data['page'] || empty($data['page']) || in_array($screen->id, $pages)) && (isset($data['capability']) && current_user_can($data['capability']) || isset($data['role']) && piklist_user::current_user_role($data['role']))) {
         if ($data['sidebar'] == 'true') {
             get_current_screen()->set_help_sidebar(piklist::render($file, null, true));
         } else {
             get_current_screen()->add_help_tab(array('id' => piklist::dashes($add_on . '-' . $part), 'title' => $data['title'], 'content' => piklist::render($file, null, true)));
         }
     }
 }
 public static function register_dashboard_widgets_callback($arguments)
 {
     global $current_screen;
     extract($arguments);
     $file = $path . '/parts/' . $folder . '/' . $part;
     $data = get_file_data($file, apply_filters('piklist_get_file_data', array('title' => 'Title', 'capability' => 'Capability', 'role' => 'Role', 'id' => 'ID', 'network' => 'Network'), 'dashboard'));
     $data = apply_filters('piklist_add_part', $data, 'dashboard');
     if ($data['network'] == 'only' && $current_screen->id != 'dashboard-network') {
         return;
     }
     if ((empty($data['network']) || $data['network'] == 'false') && (isset($current_screen) && $current_screen->id == 'dashboard-network')) {
         return;
     }
     if (isset($data['capability']) && current_user_can($data['capability']) || isset($data['role']) && piklist_user::current_user_role($data['role'])) {
         $id = empty($data['id']) ? piklist::dashes($add_on . '-' . $part) : $data['id'];
         self::$widgets[$id] = array('id' => $id, 'file' => $file, 'data' => $data);
         wp_add_dashboard_widget($id, self::$widgets[$id]['data']['title'], array('piklist_dashboard', 'render_widget'));
     }
 }
 public static function register_pointers_callback($arguments)
 {
     $screen = get_current_screen();
     extract($arguments);
     $file = $path . '/parts/' . $folder . '/' . $part;
     $data = get_file_data($file, apply_filters('piklist_get_file_data', array('title' => 'Title', 'pointer_id' => 'Pointer ID', 'capability' => 'Capability', 'role' => 'Role', 'page' => 'Page', 'anchor' => 'Anchor ID', 'edge' => 'Edge', 'align' => 'Align'), 'pointer'));
     $data = apply_filters('piklist_add_part', $data, 'pointer');
     $dismissed = explode(',', (string) get_user_meta(get_current_user_id(), 'dismissed_wp_pointers', true));
     if (in_array($data['pointer_id'], $dismissed)) {
         return;
     }
     $pages = isset($data['page']) ? explode(',', $data['page']) : false;
     if ($screen->id == $data['page'] || empty($data['page']) || in_array($screen->id, $pages)) {
         if ($data['capability'] && !current_user_can($data['capability']) || $data['role'] && !piklist_user::current_user_role($data['role'])) {
             return false;
         } else {
             $content = array('content' => trim(piklist::render($file, null, true)));
             $data = array_merge($data, $content);
             self::$pointers[] = $data;
         }
     }
 }
 public static function register_meta_boxes_callback($arguments)
 {
     extract($arguments);
     $data = get_file_data($path . '/parts/' . $folder . '/' . $part, apply_filters('piklist_get_file_data', array('name' => 'Title', 'description' => 'Description', 'capability' => 'Capability', 'role' => 'Role', 'order' => 'Order', 'taxonomy' => 'Taxonomy', 'new' => 'New'), 'terms'));
     $data = apply_filters('piklist_add_part', $data, 'terms');
     $taxonomies = empty($data['taxonomy']) ? get_taxonomies() : explode(',', $data['taxonomy']);
     foreach ($taxonomies as $taxonomy) {
         $data['taxonomy'] = trim($taxonomy);
         if ((!isset($data['capability']) || empty($data['capability']) || $data['capability'] && current_user_can(strtolower($data['capability']))) && (!isset($data['role']) || empty($data['role']) || piklist_user::current_user_role($data['role']))) {
             if (!isset(self::$meta_boxes[$data['taxonomy']])) {
                 self::$meta_boxes[$data['taxonomy']] = array();
                 add_action($data['taxonomy'] . '_edit_form_fields', array('piklist_taxonomy', 'meta_box'), 10, 2);
                 add_action('edited_' . $data['taxonomy'], array('piklist_taxonomy', 'process_form'), 10, 2);
             }
             $meta_box = array('config' => $data, 'part' => $path . '/parts/' . $folder . '/' . $part);
             if (isset($order)) {
                 self::$meta_boxes[$data['taxonomy']][$order] = $meta_box;
             } else {
                 array_push(self::$meta_boxes[$data['taxonomy']], $meta_box);
             }
         }
     }
 }
예제 #8
0
 /**
  * validate_part_parameter
  * Check to see if the paramter passes validation.
  *
  * @param string $parts The parameter name.
  * @param mixes $parts The parameter value.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function validate_part_parameter($parameter, $value)
 {
     global $post, $pagenow, $current_screen;
     switch ($parameter) {
         case 'capability':
             return piklist_user::current_user_can($value);
             break;
         case 'role':
             return piklist_user::current_user_role($value);
             break;
         case 'logged_in':
             return $value == 'true' ? is_user_logged_in() : true;
             break;
         case 'post_type':
             return $post && in_array($post->post_type, $value) || !$post;
             break;
         case 'status':
         case 'post_status':
             return $post && in_array($post->post_status, $value) || !$post;
             break;
         case 'new':
             return $value == 'true' ? $pagenow == 'post-new.php' : true;
             break;
         case 'page':
             $current = array($pagenow);
             if (!empty($current_screen->id)) {
                 array_push($current, $current_screen->id);
             }
             if (!empty($_REQUEST['page'])) {
                 array_push($current, $_REQUEST['page']);
             }
             return array_intersect($value, $current);
             break;
         case 'id':
             return $post && in_array($post->ID, $value);
             break;
         case 'template':
             $page_template = $post->post_status == 'auto-draft' ? 'default' : strtolower(str_replace('.php', '', get_post_meta($post->ID, '_wp_page_template', true)));
             return in_array($page_template, $value);
             break;
         case 'post_format':
             $format = get_post_format($post->ID);
             $format = empty($format) ? 'standard' : $format;
             return in_array($format, $value);
             break;
         case 'network':
             if (isset($current_screen) && $current_screen->id == 'dashboard-network') {
                 return $value || $value == 'only';
             } elseif (isset($current_screen) && $current_screen->id == 'dashboard') {
                 return $value === true;
             }
             break;
         default:
             /**
              * piklist_validate_part_parameter
              * Add custom part parameters to check.
              *
              * @param $parameter Parameter to check.
              * @param $value Value to compare.
              *
              * @since 1.0
              */
             return apply_filters('piklist_validate_part_parameter', true, $parameter, $value);
             break;
     }
 }
 public static function render_field($field, $return = false)
 {
     $current_user = wp_get_current_user();
     $field = wp_parse_args($field, array('field' => false, 'type' => 'text', 'label' => false, 'description' => false, 'prefix' => true, 'scope' => null, 'value' => null, 'capability' => false, 'role' => false, 'logged_in' => false, 'add_more' => false, 'sortable' => false, 'choices' => false, 'list' => true, 'position' => false, 'template' => self::get_template(), 'wrapper' => false, 'columns' => null, 'embed' => false, 'editable' => true, 'child_field' => false, 'label_position' => 'before', 'conditions' => false, 'options' => false, 'on_post_status' => false, 'on_comment_status' => false, 'display' => false, 'group_field' => false, 'required' => false, 'index' => null, 'multiple' => false, 'errors' => false, 'attributes' => array('class' => array(), 'title' => false, 'alt' => false, 'tabindex' => false, 'columns' => null, 'value' => false), 'tax_query' => array('include_children' => true, 'field' => 'term_id', 'operator' => 'IN'), 'meta_query' => array('compare' => '=', 'type' => 'CHAR')));
     // Should this field be rendered?
     if ($field['embed'] && !$return || $field['capability'] && !current_user_can($field['capability']) || !isset($field['field']) || $field['logged_in'] && !is_user_logged_in() || $field['role'] && !piklist_user::current_user_role($field['role'])) {
         return false;
     }
     // Set default scopes based on enviroment
     if (is_null($field['scope'])) {
         if (self::is_post()) {
             $field['scope'] = 'post_meta';
         } elseif (self::is_media()) {
             $field['scope'] = 'post_meta';
         } elseif (self::is_term()) {
             $field['scope'] = 'term_meta';
         } elseif (self::is_user()) {
             $field['scope'] = 'user_meta';
         }
     }
     // Set Defaults
     array_push(self::$fields_defaults, $field);
     // Determine if its a multiple type field
     if (in_array($field['type'], self::$field_list_types['multiple_fields']) || is_array($field['attributes']) && in_array('multiple', $field['attributes'])) {
         $field['multiple'] = true;
     }
     if ($field['type'] == 'html' && !isset($field['field'])) {
         $field['field'] = piklist::unique_id();
     }
     // Manage Classes
     if (isset($field['attributes']['class'])) {
         $field['attributes']['class'] = !is_array($field['attributes']['class']) ? explode(' ', $field['attributes']['class']) : $field['attributes']['class'];
     } else {
         $field['attributes']['class'] = array();
     }
     array_push($field['attributes']['class'], piklist_form::get_field_id($field['field'], $field['scope'], false, $field['prefix']));
     // Set Wrapper
     $wrapper = array('id' => $field['type'] == 'map' ? null : self::get_field_wrapper_id($field), 'class' => array());
     // Set Columns
     if (is_numeric($field['columns']) && !$field['child_field']) {
         array_push($wrapper['class'], 'piklist-field-type-group piklist-field-column-' . $field['columns']);
     }
     if (isset($field['attributes']['columns']) && is_numeric($field['attributes']['columns'])) {
         array_push($field['attributes']['class'], 'piklist-field-column-' . $field['attributes']['columns']);
         unset($field['attributes']['columns']);
     }
     if (isset($field['attributes']['wrapper_class'])) {
         array_push($wrapper['class'], $field['attributes']['wrapper_class']);
     }
     // Check Statuses
     $status_types = apply_filters('piklist_status_types', array('post'));
     foreach ($status_types as $type) {
         $status = $field['on_' . $type . '_status'];
         if (!empty($status)) {
             $object = !empty(self::$save_ids) ? get_post(self::$save_ids[$type], ARRAY_A) : (array) $GLOBALS[$type];
             if ((is_admin() && isset($GLOBALS[$type]) || !empty(self::$save_ids)) && isset($object['post_type'])) {
                 $status_list = piklist_cpt::get_post_statuses($object['post_type']);
                 foreach (array('field', 'value', 'hide') as $status_display) {
                     if (isset($status[$status_display])) {
                         $status[$status_display] = is_array($status[$status_display]) ? $status[$status_display] : array($status[$status_display]);
                         foreach ($status[$status_display] as $_status) {
                             if (strstr($_status, '--')) {
                                 $status_range = explode('--', $_status);
                                 $status_range_start = array_search($status_range[0], $status_list);
                                 $status_range_end = array_search($status_range[1], $status_list);
                                 if (is_numeric($status_range_start) && is_numeric($status_range_end)) {
                                     $status_slice = array();
                                     for ($i = $status_range_start; $i <= $status_range_end; $i++) {
                                         array_push($status_slice, $status_list[$i]);
                                     }
                                     array_splice($status[$status_display], array_search($_status, $status[$status_display]), 1, $status_slice);
                                 }
                             }
                         }
                     }
                 }
             }
             if (isset($status['hide']) && isset($object[$type . '_status']) && piklist::check_in($status['hide'], $object[$type . '_status'] ? $object[$type . '_status'] : array('draft'))) {
                 return false;
             } elseif (isset($status['value']) && isset($object[$type . '_status']) && piklist::check_in($status['value'], $object[$type . '_status'] ? $object[$type . '_status'] : array('draft'))) {
                 $field['display'] = true;
             }
         }
     }
     // Get errors
     $field['errors'] = piklist_validate::get_errors($field['field'], $field['scope']);
     // Get field value
     if (!$field['group_field']) {
         if (piklist_validate::errors()) {
             $stored_value = piklist_validate::get_request_value($field['field'], $field['scope']);
         }
         if (!isset($stored_value)) {
             if (self::is_widget()) {
                 $stored_value = isset(piklist_widget::widget()->instance[$field['field']]) ? maybe_unserialize(piklist_widget::widget()->instance[$field['field']]) : $field['value'];
             } else {
                 $stored_value = self::get_field_value($field['scope'], $field, $field['scope'], piklist_form::get_field_object_id($field), false);
             }
         }
         if (!isset($stored_value) && !isset($field['attributes']['placeholder']) && !$field['multiple']) {
             $field['attributes']['placeholder'] = htmlspecialchars($field['value']);
         } elseif (isset($stored_value) || is_array($stored_value) && empty($stored_value)) {
             $field['value'] = $stored_value;
         }
     }
     // Check for nested fields
     if ($field['description']) {
         $field['description'] = self::render_nested_field($field, $field['description']);
     }
     if (is_array($field['choices']) && !in_array($field['type'], array('select', 'multiselect'))) {
         foreach ($field['choices'] as &$choice) {
             $choice = self::render_nested_field($field, $choice);
         }
     }
     if ($field['conditions']) {
         if ($field['display'] && empty($field['value']) && $field['type'] != 'group') {
             return false;
         }
         foreach ($field['conditions'] as &$condition) {
             if (is_array($condition)) {
                 $condition['scope'] = isset($condition['scope']) ? $condition['scope'] : $field['scope'];
                 $condition['id'] = piklist_form::get_field_id($condition['field'], $condition['scope'], false, $field['prefix']);
                 $condition['name'] = piklist_form::get_field_name($condition['field'], $condition['scope'], false, $field['prefix']);
                 $condition['reset'] = isset($condition['reset']) ? $condition['reset'] : true;
                 if (!isset($condition['type']) || empty($condition['type'])) {
                     $condition['type'] = 'toggle';
                 }
                 if (!in_array('piklist-field-condition', $field['attributes']['class'])) {
                     if (!in_array('piklist-field-condition', $wrapper['class'])) {
                         array_push($wrapper['class'], 'piklist-field-condition');
                     }
                     if (!in_array('piklist-field-condition-' . $condition['type'], $wrapper['class'])) {
                         array_push($wrapper['class'], 'piklist-field-condition-' . $condition['type']);
                     }
                 }
             }
         }
     }
     // Set the field template
     if ($field['group_field'] && self::get_template() == $field['template'] && (strstr(self::$templates[$field['template']]['template'], '</tr>') || $field['template'] == 'default')) {
         $field['child_field'] = true;
         $field['template'] = 'field';
     } elseif ($field['type'] == 'hidden' || $field['embed']) {
         $field['template'] = 'field';
     }
     $field['wrapper'] = preg_replace(array('/ {2,}/', '/<!--.*?-->|\\t|(?:\\r?\\n[ \\t]*)+/s'), array(' ', ''), sprintf(self::$templates[$field['template']]['template'], $wrapper['id'], implode(' ', $wrapper['class'])));
     $field = apply_filters('piklist_pre_render_field', $field);
     self::$field_rendering = $field;
     self::$fields_rendered[$field['scope']][$field['field']] = $field;
     $field_to_render = self::template_tag_fetch('field_wrapper', $field['wrapper']);
     $rendered_field = do_shortcode($field_to_render);
     switch ($field['position']) {
         case 'start':
             $rendered_field = piklist_form::template_tag_fetch('field_wrapper', $field['wrapper'], 'start') . $rendered_field;
             break;
         case 'end':
             $rendered_field .= piklist_form::template_tag_fetch('field_wrapper', $field['wrapper'], 'end');
             break;
         case 'wrap':
             $rendered_field = piklist_form::template_tag_fetch('field_wrapper', $field['wrapper'], 'start') . $rendered_field . piklist_form::template_tag_fetch('field_wrapper', $field['wrapper'], 'end');
             break;
     }
     $rendered_field = apply_filters('piklist_post_render_field', $rendered_field, $field);
     self::$field_rendering = null;
     // Return the field as requested
     if ($return) {
         return $rendered_field;
     } else {
         echo $rendered_field;
     }
 }
예제 #10
0
 /**
  * validate_field_parameter
  * Check to see if the field parameter passes validation.
  *
  * @param string $parts The parameter name.
  * @param mixes $parts The parameter value.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function validate_field_parameter($parameter, $value)
 {
     global $post, $pagenow, $current_screen;
     switch ($parameter) {
         case 'capability':
             return piklist_user::current_user_can($value);
             break;
         case 'role':
             return piklist_user::current_user_role($value);
             break;
         case 'logged_in':
             return $value === true ? is_user_logged_in() : true;
             break;
         default:
             /**
              * piklist_validate_field_parameter
              * Add custom part parameters to check.
              *
              * @param $parameter Parameter to check.
              * @param $value Value to compare.
              *
              * @since 1.0
              */
             return apply_filters('piklist_validate_field_parameter', true, $parameter, $value);
             break;
     }
 }
 public static function register_meta_boxes_callback($arguments)
 {
     global $post, $pagenow;
     extract($arguments);
     $current_user = wp_get_current_user();
     $data = get_file_data($path . '/parts/' . $folder . '/' . $part, apply_filters('piklist_get_file_data', array('name' => 'Title', 'context' => 'Context', 'description' => 'Description', 'capability' => 'Capability', 'role' => 'Role', 'priority' => 'Priority', 'order' => 'Order', 'type' => 'Post Type', 'lock' => 'Lock', 'collapse' => 'Collapse', 'status' => 'Status', 'new' => 'New', 'id' => 'ID', 'div' => 'DIV', 'template' => 'Template', 'box' => 'Meta Box'), 'meta-boxes'));
     $data = apply_filters('piklist_add_part', $data, 'meta-boxes');
     $types = empty($data['type']) ? get_post_types() : explode(',', $data['type']);
     foreach ($types as $type) {
         $type = trim($type);
         $statuses = !empty($data['status']) ? explode(',', $data['status']) : false;
         $ids = !empty($data['id']) ? explode(',', $data['id']) : false;
         $name = !empty($data['name']) ? $data['name'] : 'piklist_meta_' . piklist::slug($part);
         if (post_type_exists($type) && (!$data['capability'] || $data['capability'] && current_user_can(strtolower($data['capability']))) && (!$data['role'] || $data['role'] && piklist_user::current_user_role($data['role'])) && (!$data['status'] || $data['status'] && in_array($post->post_status, $statuses)) && (!$data['new'] || $data['new'] && $pagenow != 'post-new.php') && (!$data['id'] || $data['id'] && in_array($post->ID, $ids)) && (!$data['template'] || $data['template'] && $data['template'] == pathinfo(get_page_template_slug($post->ID), PATHINFO_FILENAME))) {
             $id = !empty($data['div']) ? $data['div'] : 'piklist_meta_' . piklist::slug($part);
             $textdomain = isset(piklist_add_on::$available_add_ons[$add_on]) && isset(piklist_add_on::$available_add_ons[$add_on]['TextDomain']) ? piklist_add_on::$available_add_ons[$add_on]['TextDomain'] : null;
             add_meta_box($id, !empty($textdomain) ? __($name, $textdomain) : $name, array('piklist_cpt', 'meta_box'), $type, !empty($data['context']) ? $data['context'] : 'normal', !empty($data['priority']) ? $data['priority'] : 'low', array('part' => $part, 'add_on' => $add_on, 'order' => $data['order'] ? $data['order'] : null, 'config' => $data));
             if (isset($data['box']) && strtolower($data['box']) == 'false') {
                 add_filter("postbox_classes_{$type}_{$id}", array('piklist_cpt', 'lock_meta_boxes'));
                 add_filter("postbox_classes_{$type}_{$id}", array('piklist_cpt', 'no_meta_boxes'));
                 if ($name == 'piklist_meta_' . piklist::slug($part)) {
                     add_filter("postbox_classes_{$type}_{$id}", array('piklist_cpt', 'no_title_meta_boxes'));
                 }
             } else {
                 if (isset($data['lock']) && strtolower($data['lock']) == 'true') {
                     add_filter("postbox_classes_{$type}_{$id}", array('piklist_cpt', 'lock_meta_boxes'));
                 }
                 if (isset($data['collapse']) && strtolower($data['collapse']) == 'true') {
                     add_filter("postbox_classes_{$type}_{$id}", array('piklist_cpt', 'collapse_meta_boxes'));
                 }
             }
             add_filter("postbox_classes_{$type}_{$id}", array('piklist_cpt', 'default_classes'));
         }
     }
 }