/** * 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(); }
/** * 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(); }
/** * 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(); }