Example #1
0
 /**
  * Add necessary options
  *
  * @return \Magento\Framework\View\Element\AbstractBlock
  */
 protected function _beforeToHtml()
 {
     if (!$this->getOptions()) {
         $layoutMergeParams = ['theme' => $this->_getThemeInstance($this->getTheme())];
         /** @var $layoutProcessor \Magento\Framework\View\Layout\ProcessorInterface */
         $layoutProcessor = $this->_layoutProcessorFactory->create($layoutMergeParams);
         $layoutProcessor->addPageHandles([$this->getLayoutHandle()]);
         $layoutProcessor->addPageHandles(['default']);
         $layoutProcessor->load();
         $pageLayoutProcessor = $this->_layoutProcessorFactory->create($layoutMergeParams);
         $pageLayoutProcessor->addHandle($layoutProcessor->getPageLayout());
         $pageLayoutProcessor->load();
         $containers = array_merge($pageLayoutProcessor->getContainers(), $layoutProcessor->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('', __('-- Please Select --'));
         foreach ($containers as $containerName => $containerLabel) {
             $this->addOption($containerName, $containerLabel);
         }
     }
     return parent::_beforeToHtml();
 }
Example #2
0
 /**
  * Add necessary options
  *
  * @return \Magento\Framework\View\Element\AbstractBlock
  */
 protected function _beforeToHtml()
 {
     if (!$this->getOptions()) {
         $this->addOption('', __('-- Please Select --'));
         $pageTypes = $this->_config->getPageTypes();
         $this->_addPageTypeOptions($pageTypes);
     }
     return parent::_beforeToHtml();
 }
Example #3
0
 /**
  * Add necessary options
  *
  * @return \Magento\Framework\View\Element\AbstractBlock
  */
 protected function _beforeToHtml()
 {
     if (!$this->getOptions()) {
         $this->addOption('', __('-- Please Select --'));
         $layoutUpdateParams = array('theme' => $this->_getThemeInstance($this->getTheme()));
         $designAbstractions = $this->_appState->emulateAreaCode('frontend', array($this->_getLayoutProcessor($layoutUpdateParams), 'getAllDesignAbstractions'));
         $this->_addDesignAbstractionOptions($designAbstractions);
     }
     return parent::_beforeToHtml();
 }