Magento 2-布局XML中的ifconfig


16

我正在与magento 2合作。

我可以在块代码中使用ifconfig属性,并且效果很好。

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

但是我试图用它来移动,但是没有用。

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

有人知道如何使用它移动吗?


你找了吗?我在阅读器中看到了它,但在移动阅读器中什么也没有看到。不要以为可以。
nevvermind 2015年

没有使用ifconfig还有其他方法吗?
迈克

Answers:


6

据我了解,您不能继续使用ifconfig。在该类中Magento\Framework\View\Layout\Reader\Block.php,检查属性ifconfig

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

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

但是,在move块上实际上并不检查ifconfig属性:

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

在Theroy中,如果块上已经有ifconfig,则不需要移动ifconfig,因为该块将不会被渲染,因此不会移动。

希望有道理。


是否有像1.x这样具有ifconfig强大功能的扩展?
迈克

嘿@Dmitry我不认为有一个我不知道的。您需要ifconfig做什么?
rob3000 '16

例如:<action method =“ setTemplate” ifconfig =“ config_path / group / field” condition =“ one_column”> <template> page / 1column.phtml </ template> </ action>我的意思是“ ifconfig”和“ condition”
迈克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.