как вызвать функцию(помощника) из xml в magento
Я вижу этот пост
Я хочу сделать то же самое, но с условием. Я хочу вызвать вспомогательную функцию, которая возвращает логическое значение. И в моем xml сделайте так:
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="ajax-empty" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="root">
<block class="Magento\Framework\View\Element\Template" name="customer.account.popin" template="MyVendor_Customer::form/popin_disconnected_content.phtml">
IF USER IS LOGGED IN
<block class="Magento\Framework\View\Element\Messages" name="messages"/>
<block class="Magento\Customer\Block\Form\Login\Info" name="customer.account.popin.register" template="Magento_Customer::newcustomer.phtml"/>
<block class="Magento\Customer\Block\Form\Login" name="customer.account.popin.login" template="Magento_Customer::form/login.phtml">
<block class="Magento\Persistent\Block\Form\Remember" name="remember_me" template="Magento_Persistent::remember_me.phtml" ifconfig="persistent/options/enabled" as="form_additional_info"/>
</block>
END
IF USER IS NOT LOGGED IN
<block class="Magento\Customer\Block\Form\Login\Info" name="customer.account.popin.register" template="Magento_Customer::newcustomer.phtml"/>
MORE CONTENT WILL BE ADD HERE
END
</block>
</referenceContainer>
</body>
</page>
Как я могу это сделать?
РЕДАКТИРОВАТЬ: это то, что я хочу сделать, но это с наблюдателями, и я слишком слаб с конфигурацией magento 2, чтобы изменить ее для помощников, вы можете мне помочь, пожалуйста?
2 answers
Пожалуйста, перейдите по этой ссылке, http://inchoo.net/magento/custom-layout-update-handles /. Это могло бы тебе помочь. Используйте следующее, чтобы вызвать функцию из помощника внутри макета.
<action method="setStorVar">
<var helper="module/getStoreVar" />
Дескрипторы выхода клиента и входа в систему теперь удалены, поэтому ваш самый простой подход - создать собственные блоки, расширяющие те, которые вы хотите добавить, и проверить, вошел ли клиент в систему методом _toHtml()
в каждом блоке. Если блок не отображается, и если он возвращает пустую строку, чтобы не отображать их.