public static function get_instance($wrapper_id, $data = '') { foreach (self::$_instances as $instance) { if ($instance->_wrapper_id == $wrapper_id) { return $instance; } } $wrapper_data = false; if (empty($data)) { $layout = Upfront_Output::get_layout_data(); if (!$layout) { return false; } foreach ($layout['regions'] as $region) { if (!empty($region['wrappers'])) { foreach ($region['wrappers'] as $wrapper) { if ($wrapper_id == upfront_get_property_value('wrapper_id', $wrapper)) { $wrapper_data = $wrapper; break 2; } } } } } else { if (!empty($data['wrappers'])) { foreach ($data['wrappers'] as $wrapper) { if ($wrapper_id == upfront_get_property_value('wrapper_id', $wrapper)) { $wrapper_data = $wrapper; break; } } } } if (!$wrapper_data) { return false; } self::$_instances[] = new self($wrapper_data); return end(self::$_instances); }