/** * Constructor. * */ public function __construct($manager, $id, $args = array()) { //let the parent educate us parent::__construct($manager, $id, $args); $this->contexts = hu_get_contexts_list(); $_default_locations = hu_get_builtin_widget_zones_location(); //generates the locations for json $locations = array(); foreach ($_default_locations as $_id => $data) { $_k = key($data); $locations[$_k] = $data[$_k]; } $this->locations = $locations; //generates the default widget zone for json $default_zones = array(); foreach (hu_get_default_widget_zones() as $_zone_id => $_data) { //get the default location $_loc = isset($_default_locations[$_zone_id]) ? key($_default_locations[$_zone_id]) : ''; $default_zones[] = array('id' => $_data['id'], 'title' => $_data['name'], 'contexts' => array('_all_'), 'locations' => array($_loc), 'is_builtin' => true, 'description' => $_data['description']); } $this->default_zones = $default_zones; //print the pre add view content add_action('customize_controls_print_footer_scripts', array($this, 'hu_print_pre_add_view_template'), 1); //print template for built-in models like primary, secondary, footer-1, etc... add_action('customize_controls_print_footer_scripts', array($this, 'hu_print_built_in_templates'), 1); }
function hu_is_builtin_widget_zone($id) { return array_key_exists($id, hu_get_builtin_widget_zones_location()); }
function hu_generate_new_sidebar_options($__options) { //generates the default widget zone options $_default_locations = hu_get_builtin_widget_zones_location(); $builtin_zones = array(); foreach (hu_get_default_widget_zones() as $_zone_id => $_data) { $_locs = hu_get_old_locations($_zone_id, $__options); if (empty($_locs) && isset($_default_locations[$_zone_id])) { $_locs[] = key($_default_locations[$_zone_id]); } $_contexts = hu_get_old_contexts($_zone_id, $__options); if (empty($_contexts) && isset($_default_locations[$_zone_id])) { $_contexts[] = '_all_'; } $builtin_zones[] = array('id' => $_data['id'], 'title' => $_data['name'], 'contexts' => $_contexts, 'locations' => $_locs, 'is_builtin' => true, 'description' => $_data['description']); } //generates the custom widget zone options $_old_custom_zone_opt = isset($__options['sidebar-areas']) ? $__options['sidebar-areas'] : array(); $custom_zones = array(); if (!empty($_old_custom_zone_opt)) { //array( 'title' => string, 'id' => string ) foreach ($_old_custom_zone_opt as $_zone) { if (!isset($_zone['id'])) { continue; } $_zone_id = $_zone['id']; //get the default location $_locs = hu_get_old_locations($_zone_id, $__options); $_contexts = hu_get_old_contexts($_zone_id, $__options); $custom_zones[] = array('id' => $_zone['id'], 'title' => $_zone['title'], 'contexts' => $_contexts, 'locations' => $_locs); } //foreach } //if //make sure the previous "rules" for sidebars and respected $_new_sb_areas_opts = hu_clean_old_sidebar_options(array_merge($builtin_zones, $custom_zones), $__options); $__options['sidebar-areas'] = $_new_sb_areas_opts; return $__options; }