সাধারণত এটি <action />
ট্যাগ দিয়ে করা উচিত :
<referenceContainer name="content">
<action method="unsetChild" ifconfig="dashboard/settings/remove">
<argument xsi:type="string">dashboard</argument>
</action>
</referenceContainer>
সম্পাদনা:
কেবল সমস্যাটি আনসেটচিল্ড কেবলমাত্র ওরফে গ্রহণ করে। আপনি ব্লকের নাম ব্যবহার করতে পারবেন না।
অন্যান্য সমাধান: অপসারণ = "সত্য" এর সাথে ifconfig ব্যবহার করতে সক্ষম হতে আবার ম্যাগন্টো ফ্রেমওয়ার্কটি পুনরায় লিখুন
1- আপনার নিজস্ব মডিউল তৈরি করুন।
2- ম্যাজেন্টো ফ্রেমওয়ার্ককে ওভাররাইড করতে একটি নতুন ফাইল যুক্ত করুন: (যেমন /Vendor/Module/Override/Magento/Framework/View/Layout/Reader/Block.php
:)
namespace Vendor\Module\Override\Magento\Framework\View\Layout\Reader;
use Magento\Framework\App;
use Magento\Framework\Data\Argument\InterpreterInterface;
use Magento\Framework\View\Layout;
/**
* Block structure reader
*/
class Block extends \Magento\Framework\View\Layout\Reader\Block
{
/**
* @var \Magento\Framework\App\ScopeResolverInterface
*/
protected $scopeResolver;
/**
* @var \Magento\Framework\App\Config\ScopeConfigInterface
*/
protected $scopeConfig;
/**
* Constructor
*
* @param Layout\ScheduledStructure\Helper $helper
* @param Layout\Argument\Parser $argumentParser
* @param Layout\ReaderPool $readerPool
* @param InterpreterInterface $argumentInterpreter
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
* @param \Magento\Framework\App\ScopeResolverInterface $scopeResolver
* @param string|null $scopeType
*/
public function __construct(
Layout\ScheduledStructure\Helper $helper,
Layout\Argument\Parser $argumentParser,
Layout\ReaderPool $readerPool,
InterpreterInterface $argumentInterpreter,
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
\Magento\Framework\App\ScopeResolverInterface $scopeResolver,
$scopeType = null
) {
parent::__construct($helper,
$argumentParser,
$readerPool,
$argumentInterpreter,
$scopeType
);
$this->scopeConfig = $scopeConfig;
$this->scopeResolver = $scopeResolver;
}
protected function scheduleReference(
Layout\ScheduledStructure $scheduledStructure,
Layout\Element $currentElement
) {
$elementName = $currentElement->getAttribute('name');
$elementRemove = filter_var($currentElement->getAttribute('remove'), FILTER_VALIDATE_BOOLEAN);
if ($elementRemove) {
$configPath = (string)$currentElement->getAttribute('ifconfig');
if (empty($configPath)
|| $this->scopeConfig->isSetFlag($configPath, $this->scopeType, $this->scopeResolver->getScope())
) {
$scheduledStructure->setElementToRemoveList($elementName);
}
} else {
$data = $scheduledStructure->getStructureElementData($elementName, []);
$data['attributes'] = $this->mergeBlockAttributes($data, $currentElement);
$this->updateScheduledData($currentElement, $data);
$this->evaluateArguments($currentElement, $data);
$scheduledStructure->setStructureElementData($elementName, $data);
}
}
}
3- ম্যাজেন্টো ফাইলকে ওভাররাইড করতে di.xML ফাইল যুক্ত করুন:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\Framework\View\Layout\Reader\Block"
type="Vendor\Module\Override\Magento\Framework\View\Layout\Reader\Block" />
</config>
4- এখন আপনি সরানোর সাথে মিলিত বিন্যাসে ifconfig ব্যবহার করতে পারেন:
<referenceBlock name="content" remove="true" ifconfig="path/to/myconfig" />
এই উদাহরণটি ব্লকের জন্য, তবে আপনি যদি / ম্যাজেন্টো / ফ্রেমওয়ার্ক / ভিউ / লেআউট / রিডার / কনটেইনার.পিপি এর পদ্ধতি ধারক রেফারেন্স ()টিকে ওভাররাইড করেন তবে আপনি ধারকটির জন্যও একই কাজ করতে পারেন