Magento 2 - ifconfig en diseño xml

16

Estoy trabajando con magento 2.

Puedo usar el atributo ifconfig en el código de bloque, y funciona bien.

<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"/>

Pero intenté usarlo para moverme, no funcionó.

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

¿Alguien sabe cómo usarlo para moverse?

Miguel
fuente
¿Lo has buscado? Lo veo en el lector de bloque , pero no hay nada en el movimiento . No pienses que puedes.
nevvermind
¿Hay alguna otra forma de hacerlo sin usar ifconfig?
Mike

Respuestas:

6

Por lo que entiendo, no puedes usarlo ifconfigen movimiento. En la clase Magento\Framework\View\Layout\Reader\Block.phphay una verificación para el atributo ifconfig:

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

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

Sin embargo, en el bloque de movimiento no se comprueba el 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

En Theroy no debería necesitar el ifconfig en movimiento si ya hay un ifconfig en el bloque, ya que el bloque no se representará y, por lo tanto, no se moverá.

Espero que tenga sentido.

rob3000
fuente
¿Hay alguna extensión con una función fuerte de ifconfig como 1.x?
Mike
Hola @Dmitry, no creo que haya una o una que no conozca ¿Para qué necesitas el ifconfig?
rob3000
por ejemplo: <action method = "setTemplate" ifconfig = "config_path / group / field" condition = "one_column"> <template> page / 1column.phtml </template> </action> quise decir "ifconfig" y "condition"
Mike