チェックアウトプロセス中に追加のログインオプションを追加しようとしました。現時点では、ユーザー名/パスワードの方法があります。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>
captchaモジュールによって行われるような別の方法を見つけました:
<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
は、ブロックのcaptchaモジュールによって作成され、checkout.onepage.login
次にブロックに対しても作成されますcheckout.onepage.billing
- Mage_Core_Model_Layout :: _ generateBlock()でブロックを生成している間、ブロックの親ブロックオブジェクトを検索します
login_github_button
。の1つを見つける代わりに、checkout.onepage.login
作成された最新の1つを見つけますcheckout.onepage.billing
。ログは1つではなく、この最後のブロックに添付されます。次に、ログインビューではなく、請求先アドレスビューにログインボタンを見つけます!!! - レイアウトcaptcha.xmlファイルにコメントすると
checkout.onepage.billing
、最初のソリューションに関する部分が 機能します。
それはまだ大丈夫ではありませんが、理由を見つけ始めます。
<reference name="form.additional.info">
および<depends>
ソリューションは、はるかにクリーンでメンテナンスが容易です。