Magento 2 - ifconfig ในรูปแบบ xml


16

ฉันทำงานกับวีโอไอพี 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

มีวิธีอื่นโดยไม่ใช้ ifconfig หรือไม่
Mike

คำตอบ:


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

อย่างไรก็ตามในการย้ายบล็อกไม่ได้ตรวจสอบ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 บนบล็อกอยู่แล้วเนื่องจากบล็อกจะไม่ถูกแสดงผลและไม่ย้าย

หวังว่ามันสมเหตุสมผล


มีส่วนขยายที่มีคุณสมบัติที่แข็งแกร่งของ ifconfig เช่น 1.x หรือไม่?
Mike

เฮ้ @ มิทรีฉันไม่คิดว่าจะมีหรืออันที่ฉันไม่รู้ คุณต้องการใช้ ifconfig เพื่ออะไร
rob3000

เช่น: <action method = "setTemplate" ifconfig = "config_path / group / field" condition = "one_column"> <template> หน้า / 1column.phtml </template> </action> ฉันหมายถึง "ifconfig" และ "เงื่อนไข"
Mike
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.