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?


¿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.


¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.