Magento 2: я хочу добавить ifconfig в блок переопределения xml

Я пытался переопределить блок с помощью файла phtml из

поставщик \ Magento \ модуль кассового \ вид \ фронтенд \ success.phtml

в мой файл

Приложение \ код \ Пользовательские \ модуль \ вид \ фронтенд \ фотографии \ success.phtml

и XML-файл checkout_onepage_success.xml

<referenceBlock name="checkout.success">
<action method="setTemplate" ifconfig="custom_general/general/active">
<argument name="template" xsi:type="string">Custom_Module::checkout/success.phtml</argument>
</action>
</referenceBlock>

Когда у меня есть включить модуль из конфигурации, затем выполнить с моим блоком и файл phtml.

при отключении модуля выполните файл по умолчанию и заблокируйте его.

Но файл и блок по умолчанию не выполняются, когда у меня отключен модуль из конфигурации.

Пожалуйста, помогите мне и решить эту проблему

Заранее спасибо.

2

Решение

если config покажет шаблон только тогда, когда он имеет значение true, он не будет работать как условие else.

Чтобы решить вашу проблему, я предлагаю вам создать вспомогательную функцию и добавить условия в вспомогательный метод.

Что-то вроде этого:

<?php

namespace Custom\Module\Helper;

class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
protected $_request;

public function __construct
(
\Magento\Framework\App\Request\Http $request
) {
$this->_request = $request;
}

public function getTemplate()
{
if ($this->_scopeConfig->isSetFlag('custom_general/general/active')) {
$template =  'Custom_Module::checkout/success.phtml';
} else {
$template = 'Vendor_Module::checkout/success.phtml';
}

return $template;
}
}

затем включите свой блок в макет
Вместо этого

<referenceBlock name="checkout.success">
<action method="setTemplate">
<argument name="template" xsi:type="helper" helper="Custom\Module\Helper\Data::getTemplate"></argument>
</action>
</referenceBlock>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]