как вызвать функцию(помощника) из 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, чтобы изменить ее для помощников, вы можете мне помочь, пожалуйста?

Author: Community, 2017-02-27

2 answers

Пожалуйста, перейдите по этой ссылке, http://inchoo.net/magento/custom-layout-update-handles /. Это могло бы тебе помочь. Используйте следующее, чтобы вызвать функцию из помощника внутри макета.

 <action method="setStorVar">
<var helper="module/getStoreVar" />

 1
Author: Tonmoy, 2017-02-27 11:28:49

Дескрипторы выхода клиента и входа в систему теперь удалены, поэтому ваш самый простой подход - создать собственные блоки, расширяющие те, которые вы хотите добавить, и проверить, вошел ли клиент в систему методом _toHtml() в каждом блоке. Если блок не отображается, и если он возвращает пустую строку, чтобы не отображать их.

 0
Author: Zefiryn, 2017-02-27 10:53:54