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