Example #1
0
 /**
  * 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();
 }
Example #2
0
 /**
  * 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();
 }