/** * Get containers only once, and store in instance memory. */ public static function get_containers() { if (empty(self::$active_containers)) { self::$active_containers = Container::get_active_containers(); } return self::$active_containers; }
/** * Retrieve containers and sidebars for use in the JS. * * @return array $carbon_data */ public function get_json_data() { global $wp_registered_sidebars; $carbon_data = array('containers' => array(), 'sidebars' => array()); $containers = Container::get_active_containers(); foreach ($containers as $container) { $container_data = $container->to_json(true); $carbon_data['containers'][] = $container_data; } foreach ($wp_registered_sidebars as $sidebar) { // Check if we have inactive sidebars if (isset($sidebar['class']) && strpos($sidebar['class'], 'inactive-sidebar') !== false) { continue; } $carbon_data['sidebars'][] = array('name' => $sidebar['name'], 'id' => $sidebar['id']); } return $carbon_data; }