我尝试在结帐过程中添加其他登录选项。目前,您具有用户名/密码方式。我想添加一个按钮图像以通过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">
and<depends>
解决方案更加干净和易于维护。