public static function init()
 {
     self::register_meta_boxes();
     $use_multiple_user_roles = piklist::get_settings('piklist_core', 'multiple_user_roles');
     if ($use_multiple_user_roles && (!is_multisite() || $pagenow == 'user-edit.php' && is_multisite())) {
         add_action('profile_update', array('piklist_user', 'multiple_roles'));
         add_action('user_register', array('piklist_user', 'multiple_roles'), 9);
         add_action('admin_footer', array('piklist_user', 'multiple_roles_field'));
         add_filter('additional_capabilities_display', array('piklist_user', 'additional_capabilities_display'));
     }
 }
 private static function register_add_on($add_on, $file, $path, $plugin = false)
 {
     if (file_exists($file)) {
         $active_add_ons = piklist::get_settings('piklist_core_addons', 'add-ons');
         $data = get_plugin_data($file);
         $data['plugin'] = $plugin;
         self::$available_add_ons[$add_on] = $data;
         if (in_array($add_on, is_array($active_add_ons) ? $active_add_ons : array($active_add_ons))) {
             include_once $file;
             $class_name = str_replace(piklist::$prefix, 'piklist_', piklist::slug($add_on));
             if (class_exists($class_name) && method_exists($class_name, '_construct') && !is_subclass_of($class_name, 'WP_Widget')) {
                 call_user_func(array($class_name, '_construct'));
             }
             piklist::$paths[$add_on] = $path . (!$plugin ? '/' . $add_on : '');
         }
     }
 }
示例#3
0
 /**
  * part_process
  * Dashboard specific processing on whether to allow core dashboard widgets.
  *
  * @param array $part being validated
  *
  * @return array The part object being processed.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function part_process($part)
 {
     if ($part['id'] == 'dashboard_right_now') {
         return piklist::get_settings('piklist_core', 'dashboard_at_a_glance') ? $part : null;
     }
     return $part;
 }
示例#4
0
 /**
  * assets_localize
  * Add data to the local piklist variable
  *
  * @param array $localize The data being passed to the piklist javascript object.
  *
  * @return array Current data.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function assets_localize($localize)
 {
     $localize['validate_check'] = !self::errors() && self::$checked;
     $localize['validate'] = piklist::get_settings('piklist_core', 'form_validate_js') ? true : false;
     return $localize;
 }
示例#5
0
 /**
  * assets_localize
  * Add data to the local piklist variable
  *
  * @return array Current data.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function assets_localize($localize)
 {
     $localize['shortcodes'] = array();
     foreach (self::$shortcodes as $shortcode => $data) {
         unset($data['extend'], $data['extend_method'], $data['part']);
         $localize['shortcodes'][$shortcode] = $data['data'];
     }
     $shortcodes = piklist::get_settings('piklist_core', 'shortcode_ui');
     if ($shortcodes) {
         foreach ($shortcodes as $data) {
             $shortcode = $data['tag'];
             $options = is_array($data['options']) ? $data['options'] : array($data['options']);
             $preview = in_array('preview', $options);
             if (!empty($shortcode) && isset(self::$shortcodes[$shortcode])) {
                 self::$shortcodes[$shortcode]['data']['preview'] = $preview;
                 $localize['shortcodes'][$shortcode]['preview'] = $preview;
             } else {
                 $localize['shortcodes'][$shortcode] = array('name' => piklist::humanize($shortcode), 'description' => __('Click on this box to edit the shortcode properties.', 'piklist'), 'shortcode' => $shortcode, 'icon' => 'dashicons-cloud', 'preview' => $preview);
             }
         }
     }
     return $localize;
 }
示例#6
0
 /**
  * get_meta_sql
  * Seperate meta queries instead of using a table JOIN. https://core.trac.wordpress.org/ticket/30044
  *
  * @param array $sql The current constructed sql queries.
  * @param object $query The query object.
  * @param string $type The type for the meta query.
  * @param string $primary_table The primary table for the query.
  * @param string $primary_id_column The name of the primary id column.
  * @param string $context The context of the query.
  * @param string $parent_relation The relation between parent queries.
  * @param int $depth The current depth of the query.
  *
  * @return array Updated sql for the meta query.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function get_meta_sql($sql, $query, $type, $primary_table, $primary_id_column, $context, $parent_relation = null, $depth = 0)
 {
     /**
      * piklist_get_meta_sql
      * 
      * @since 1.0
      */
     if (piklist::get_settings('piklist_core', 'meta_queries') !== 'true' || !apply_filters('piklist_get_meta_sql', true, $sql, $query, $type, $primary_table, $primary_id_column, $context, $parent_relation, $depth)) {
         return $sql;
     }
     self::$primary_type = $type;
     self::$primary_table = $primary_table;
     self::$primary_id_column = $primary_id_column;
     self::$meta_table = substr($primary_table, 0, strlen($primary_table) - 1) . 'meta';
     self::$meta_id_column = self::$primary_type . '_id';
     self::$meta_order_field = array();
     if (is_null($parent_relation)) {
         $parent_relation = get_query_var('meta_relation') ? strtoupper(get_query_var('meta_relation')) : 'AND';
     }
     return self::get_sql_for_query($query, 0, $parent_relation);
 }