Magento 2 - ifconfig लेआउट xml में


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

किसी को पता है कि इसे स्थानांतरित करने के लिए कैसे उपयोग करना है?


क्या आपने इसकी तलाश की है? मैं इसे ब्लॉक रीडर में देखता हूं , लेकिन इस कदम में कुछ भी नहीं । लगता है कि तुम नहीं कर सकते।
नेवरमाइंड

क्या ifconfig का उपयोग किए बिना इसके लिए कोई अन्य तरीका है?
माइक

जवाबों:


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

थेरोय में आपको इस कदम पर ifconfig की आवश्यकता नहीं होनी चाहिए यदि ब्लॉक पर पहले से ही ifconfig है क्योंकि ब्लॉक रेंडर नहीं किया जाएगा और इस प्रकार स्थानांतरित नहीं किया गया है।

आशा है कि समझ में आता है।


1.x जैसी ifconfig की मजबूत विशेषता के साथ कोई विस्तार है?
माइक

अरे @Dmitry मुझे नहीं लगता कि कोई ऐसा है जो मुझे पता नहीं है। क्या आप के लिए ifconfig की जरूरत है?
रोब ३०००

उदाहरण: <क्रिया विधि = "setTemplate" ifconfig = "config_path / group / फ़ील्ड" स्थिति = "one_column"> <टेम्पलेट> पृष्ठ / 1 कॉलम /phtml </ टेम्पलेट> </ कार्रवाई> का अर्थ "ifconfig" और "स्थिति" है
माइक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.