/** * Add necessary options * * @return Mage_Core_Block_Abstract */ protected function _beforeToHtml() { if (!$this->getOptions()) { $this->addOption('', Mage::helper('Mage_Widget_Helper_Data')->__('-- Please Select --')); $layoutUpdateParams = array('area' => $this->getArea(), 'package' => $this->getPackage(), 'theme' => $this->getTheme()); $pageTypes = array(); $pageTypesAll = $this->_getLayoutUpdate($layoutUpdateParams)->getPageHandlesHierarchy(); foreach ($pageTypesAll as $pageTypeName => $pageTypeInfo) { $layoutUpdate = $this->_getLayoutUpdate($layoutUpdateParams); $layoutUpdate->addPageHandles(array($pageTypeName)); $layoutUpdate->load(); if (!$layoutUpdate->getContainers()) { continue; } $pageTypes[$pageTypeName] = $pageTypeInfo; } $this->_addPageTypeOptions($pageTypes); } return parent::_beforeToHtml(); }
/** * Add necessary options * * @return Mage_Core_Block_Abstract */ protected function _beforeToHtml() { if (!$this->getOptions()) { $layoutUpdateParams = array('area' => $this->getArea(), 'package' => $this->getPackage(), 'theme' => $this->getTheme()); /** @var $layoutUpdate Mage_Core_Model_Layout_Update */ $layoutUpdate = Mage::getModel('Mage_Core_Model_Layout_Update', $layoutUpdateParams); $layoutUpdate->addPageHandles(array($this->getLayoutHandle())); $layoutUpdate->load(); $containers = $layoutUpdate->getContainers(); if ($this->getAllowedContainers()) { foreach (array_keys($containers) as $containerName) { if (!in_array($containerName, $this->getAllowedContainers())) { unset($containers[$containerName]); } } } asort($containers, SORT_STRING); $this->addOption('', Mage::helper('Mage_Widget_Helper_Data')->__('-- Please Select --')); foreach ($containers as $containerName => $containerLabel) { $this->addOption($containerName, $containerLabel); } } return parent::_beforeToHtml(); }