40 \
Magento\Framework\View\
Layout\ProcessorFactory $layoutProcessorFactory,
45 $this->_layoutProcessorFactory = $layoutProcessorFactory;
46 $this->_themesFactory = $themesFactory;
47 $this->_appState = $appState;
48 parent::__construct($context,
$data);
60 $layoutUpdateParams = [
'theme' => $this->_getThemeInstance($this->getTheme())];
61 $designAbstractions = $this->_appState->emulateAreaCode(
65 $this->_addDesignAbstractionOptions($designAbstractions);
67 return parent::_beforeToHtml();
76 protected function _getThemeInstance($themeId)
79 $themeCollection = $this->_themesFactory->create();
80 return $themeCollection->getItemById($themeId);
91 return $this->_layoutProcessorFactory->create(
$arguments);
100 protected function _addDesignAbstractionOptions(array $designAbstractions)
104 foreach ($designAbstractions as $key =>
$row) {
107 array_multisort(
$label, SORT_STRING, $designAbstractions);
113 $layoutProcessor = $this->_layoutProcessorFactory->create();
114 foreach ($designAbstractions as $pageTypeName => $pageTypeInfo) {
115 if ($layoutProcessor->isPageLayoutDesignAbstraction($pageTypeInfo)) {
116 $pageLayouts[] = [
'value' => $pageTypeName,
'label' => $pageTypeInfo[
'label']];
118 $customLayouts[] = [
'value' => $pageTypeName,
'label' => $pageTypeInfo[
'label']];
addOption($value, $label, $params=[])
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]