Magento 2 - ifconfig no layout xml

16

Estou trabalhando com o magento 2.

Eu posso usar o atributo ifconfig no código de bloco e funciona bem.

<block class="Magento\Catalog\Block\Category\View" name="category_desc_main_column" template="category/desc_main_column.phtml" ifconfig="config_path/group/field" before="category.products"/>

Mas tentei usá-lo para mover, não funcionou.

<move element="category.image" destination="content" ifconfig="config_path/group/field" before="-"/>

Alguém sabe como usá-lo para se mover?

Mike
fonte
Você já procurou por isso? Eu vejo isso no leitor de blocos , mas nada em movimento . Não pense que você pode.
nevvermind
Existe outra maneira de fazer isso sem usar o ifconfig?
5155 Mike

Respostas:

6

Pelo que eu entendo, você não pode usar ifconfigem movimento. Na classe, Magento\Framework\View\Layout\Reader\Block.phphá uma verificação do atributo ifconfig:

$configPath = (string)$currentElement->getAttribute('ifconfig');

source:
https://github.com/magento/magento2/blob/2.3-develop/lib/internal/Magento/Framework/View/Layout/Reader/Block.php

No entanto, no bloco de movimentação, na verdade, não verifica o ifconfigatributo:

protected function scheduleMove(Layout\ScheduledStructure $scheduledStructure, Layout\Element $currentElement)
    {
        $elementName = (string)$currentElement->getAttribute('element');
        $destination = (string)$currentElement->getAttribute('destination');
        $alias = (string)$currentElement->getAttribute('as') ?: '';
        if ($elementName && $destination) {
            list($siblingName, $isAfter) = $this->beforeAfterToSibling($currentElement);
            $scheduledStructure->setElementToMove(
                $elementName,
                [$destination, $siblingName, $isAfter, $alias]
            );
        } else {
            throw new \Magento\Framework\Exception\LocalizedException(
                new \Magento\Framework\Phrase('Element name and destination must be specified.')
            );
        }
        return $this;
    }

https://github.com/magento/magento2/blob/2.3-develop/lib/internal/Magento/Framework/View/Layout/Reader/Move.php#L49

No Theroy, você não precisa do ifconfig em movimento, se já houver um ifconfig no bloco, pois o bloco não será renderizado e, portanto, não será movido.

Espero que isso faça sentido.

rob3000
fonte
Existe alguma extensão com forte recurso do ifconfig como 1.x?
Mike
Hey @Dmitry, eu não acho que exista ou que eu não conheço. Para que você precisa do ifconfig?
Rob3000 # 23/16
por exemplo: <action method = "setTemplate" ifconfig = "config_path / group / field" condition = "one_column"> <template> page / 1column.phtml </template> </action> Eu quis dizer "ifconfig" e "condition"
Mike