Я пытаюсь добавить дополнительную опцию входа в систему в процессе оформления заказа. На данный момент у вас есть логин / пароль. Я хочу добавить изображение кнопки для входа в систему через процесс OAuth (в моем случае Github).
Я нашел способ, но это не лучший способ. В файле шаблона checkout / onepage / login.phtml есть вызов, чтобы получить дочерний блок с именем form.additional.info
.
Я попытался вставить свой блок таким образом, но это не сработало.
<checkout_onepage_index>
<reference name="form.additional.info">
<block type="core/template" name="login_github_button" as="login.github.button">
<action method="setTemplate" ifconfig="github/config/enabled">
<template>github/customer/login.phtml</template>
</action>
</block>
</reference>
</checkout_onepage_index>
Я нашел другой способ, как это делает модуль капчи:
<checkout_onepage_index>
<reference name="checkout.onepage.login">
<block type="core/text_list" name="form.additional.info">
<block type="core/template" name="login_github_button" as="login.github.button">
<action method="setTemplate" ifconfig="github/config/enabled">
<template>github/customer/login.phtml</template>
</action>
</block>
</block>
</reference>
</checkout_onepage_index>
В этом случае это работает, но капча не будет отображаться. Как я могу вставить несколько блоков в form.additional.info
блок?
Спасибо за вашу помощь
РЕДАКТИРОВАТЬ :
Я нашел несколько причин, почему кнопка не отображается под полями входа в систему при использовании справочного form.additional.info
метода. Вместо этого он отображается в виде выставления счета.
- Блок
form.additional.info
создается модулем капчи для блока,checkout.onepage.login
затем он также создается для блока.checkout.onepage.billing
- При генерации блока в Mage_Core_Model_Layout :: _ generateBlock () он ищет объект родительского блока этого блока
login_github_button
. Вместо того , чтобы найти один изcheckout.onepage.login
, он находит один из последних создано:checkout.onepage.billing
. Блок прикреплен к этому последнему, а не лог в одном. Затем я нахожу кнопку входа в систему в окне адреса выставления счета вместо окна входа в систему !!! - Если я прокомментирую файл макета captcha.xml, часть о
checkout.onepage.billing
моем первом решении работает.
Это все еще не хорошо, но я начинаю находить причины.
<reference name="form.additional.info">
И<depends>
раствор выше гораздо чище и легче поддерживать.