Magento 2 - ifconfig nel layout xml


16

Sto lavorando con Magento 2.

Posso usare l'attributo ifconfig nel codice di blocco e funziona bene.

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

Ma ho provato ad usarlo per spostare, non ha funzionato.

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

Qualcuno sa come usarlo per lo spostamento?


L'hai cercato? Lo vedo nel lettore di blocchi , ma niente in movimento . Non pensare di si.
nevvermind,

C'è un altro modo per farlo senza usare ifconfig?
Mike,

Risposte:


6

Da quello che ho capito non puoi usare ifconfigin movimento. Nella classe Magento\Framework\View\Layout\Reader\Block.phpc'è un controllo per l'attributo ifconfig:

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

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

Tuttavia, il blocco di spostamento non controlla effettivamente l' ifconfigattributo:

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

In Theroy non dovresti aver bisogno dell'ifconfig in movimento se nel blocco è già presente un ifconfig poiché il blocco non verrà reso e quindi non spostato.

Spero che abbia un senso.


Esiste un'estensione con funzionalità avanzate di ifconfig come 1.x?
Mike,

Ehi, @Dmitry, non credo ce ne sia uno di cui non sono a conoscenza. Per cosa hai bisogno di ifconfig?
rob3000,

ad es .: <action method = "setTemplate" ifconfig = "config_path / group / field" condition = "one_column"> <template> page / 1column.phtml </template> </action> intendevo "ifconfig" e "condition"
Mike,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.