public static function generateUserData($force = false) { if (!$force && self::$user_sc !== false && self::$user_categories !== false) { return true; } $settings = self::getSettings(); self::$user_sc = self::$user_categories = self::$user_sorted_sc = array(); foreach (self::$sc_row as $values) { $name = $values['base']; if (!isset($settings[self::$user_role]['shortcodes']) || isset($settings[self::$user_role]['shortcodes'][$name]) && (int) $settings[self::$user_role]['shortcodes'][$name] == 1) { if ($name != 'vc_column' && (!isset($values['content_element']) || $values['content_element'] === true)) { $categories = isset($values['category']) ? $values['category'] : '_other_category_'; $values['_category_ids'] = array(); if (is_array($categories)) { foreach ($categories as $c) { if (array_search($c, self::$user_categories) === false) { self::$user_categories[] = $c; } $values['_category_ids'][] = md5($c); // array_search($category, self::$categories); } } else { if (array_search($categories, self::$user_categories) === false) { self::$user_categories[] = $categories; } $values['_category_ids'][] = md5($categories); // array_search($category, self::$categories); } } self::$user_sc[$name] = $values; self::$user_sorted_sc[] = $values; } } usort(self::$user_sorted_sc, array("WPBMap", "sort")); }
public static function generateUserData() { if (self::$user_sc !== false && self::$user_categories !== false) { return true; } $settings = self::getSettings(); self::$user_sc = self::$user_categories = array(); foreach (self::$sc as $name => $values) { if (!isset($settings[self::$user_role]['shortcodes']) || isset($settings[self::$user_role]['shortcodes'][$name]) && (int) $settings[self::$user_role]['shortcodes'][$name] == 1) { self::$user_sc[$name] = $values; if ($name != 'vc_column' && (!isset($values['content_element']) || $values['content_element'] === true)) { $category = isset($values['category']) ? $values['category'] : '_other_category_'; if (array_search($category, self::$user_categories) === false) { self::$user_categories[] = $category; } } } } }
public static function dropAllShortcodes() { if (!self::$is_init) { vc_mapper()->addActivity('mapper', 'drop_all_shortcodes', array()); return false; } foreach (self::$sc as $name => $data) { visual_composer()->removeShortCode($name); } self::$sc = array(); self::$user_sc = self::$user_categories = self::$user_sorted_sc = false; return true; }
/** * Generates list of shortcodes taking into account the access rules for shortcodes from VC Settings page. * * This method parses the list of mapped shortcodes and creates categories list for users. * * @static * * @param bool $force - force data generation even data already generated. */ protected static function generateUserData($force = false) { if (!$force && self::$user_sc !== false && self::$user_categories !== false) { return; } $settings = self::getSettings(); self::$user_sc = self::$user_categories = self::$user_sorted_sc = array(); foreach (self::$sc as $name => $values) { if (in_array($name, array('vc_column', 'vc_row', 'vc_row_inner', 'vc_column_inner')) || !isset($settings[self::$user_role]['shortcodes']) || isset($settings[self::$user_role]['shortcodes'][$name]) && (int) $settings[self::$user_role]['shortcodes'][$name] == 1) { if (!isset($values['content_element']) || $values['content_element'] === true) { $categories = isset($values['category']) ? $values['category'] : '_other_category_'; $values['_category_ids'] = array(); if (is_array($categories)) { foreach ($categories as $c) { if (array_search($c, self::$user_categories) === false) { self::$user_categories[] = $c; } $values['_category_ids'][] = md5($c); // array_search($category, self::$categories); } } else { if (array_search($categories, self::$user_categories) === false) { self::$user_categories[] = $categories; } $values['_category_ids'][] = md5($categories); // array_search($category, self::$categories); } } self::$user_sc[$name] = $values; self::$user_sorted_sc[] = $values; } } $sort = new Vc_Sort(self::$user_sorted_sc); self::$user_sorted_sc = $sort->sortByKey(); }