13 use Magento\Framework\Config\DataInterfaceFactory;
30 protected $attributes = [
'group',
'component',
'aclResource'];
40 private $conditionReader;
45 private $uiConfigFactory;
63 DataInterfaceFactory $uiConfigFactory,
67 $this->conditionReader = $conditionReader;
68 $this->uiConfigFactory = $uiConfigFactory;
69 $this->readerPool = $readerPool;
87 $referenceName = $this->layoutHelper->scheduleStructure(
95 [
'visibilityConditions' => $this->conditionReader->parseConditions($currentElement)]
97 $scheduledStructure->setStructureElementData($referenceName, [
'attributes' =>
$attributes]);
100 $config = $this->uiConfigFactory->create([
'componentName' => $referenceName])->get($referenceName);
101 $this->getLayoutElementsFromUiConfiguration([$referenceName =>
$config], $elements);
102 foreach ($elements as $layoutElement) {
103 $layoutElement = simplexml_load_string(
120 private function getLayoutElementsFromUiConfiguration(array
$config, array &$elements = [])
123 if (isset(
$data[
'arguments'][
'block'][
'layout'])) {
124 $elements[] =
$data[
'arguments'][
'block'][
'layout'];
126 if (isset(
$data[
'children']) && !empty(
$data[
'children'])) {
127 $this->getLayoutElementsFromUiConfiguration(
$data[
'children'], $elements);
141 foreach ($this->attributes as $attributeName) {
__construct(Helper $helper, Condition $conditionReader, DataInterfaceFactory $uiConfigFactory, ReaderPool $readerPool)
interpret(Context $readerContext, Element $currentElement)
getAttributes(Element $element)