Ich versuche, während des Bestellvorgangs eine zusätzliche Anmeldeoption hinzuzufügen. Im Moment haben Sie den Benutzernamen / Passwort Weg. Ich möchte ein Schaltflächenbild hinzufügen, um mich über einen OAuth-Prozess anzumelden (in meinem Fall Github).
Ich habe einen Weg gefunden, aber es ist nicht der beste Weg. In der Vorlagendatei checkout / onepage / login.phtml befindet sich ein Aufruf, um ein Blockkind mit dem Namen abzurufen form.additional.info
.
Ich habe versucht, meinen eigenen Block auf diese Weise einzufügen, aber es hat nicht funktioniert.
<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>
Ich habe einen anderen Weg gefunden, wie es das Captcha-Modul macht:
<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>
In diesem Fall funktioniert es, ABER das Captcha wird nicht angezeigt. Wie kann ich mehrere Blöcke in einen form.additional.info
Block einfügen ?
Danke für Ihre Hilfe
EDIT :
Ich habe einige Gründe gefunden, warum die Schaltfläche bei Verwendung der Referenzmethode nicht unter den Anmeldefeldern angezeigt form.additional.info
wird. Es wird stattdessen in der Abrechnungsansicht der Kasse angezeigt.
- Der Block
form.additional.info
wird vom Captcha-Modul für den Block erstellt,checkout.onepage.login
dann wird er auch für den Block erstelltcheckout.onepage.billing
- Beim Generieren des Blocks in Mage_Core_Model_Layout :: _ generateBlock () wird das übergeordnete Blockobjekt des Blocks durchsucht
login_github_button
. Anstatt den einen zu findencheckout.onepage.login
, findet er einen der zuletzt erstellten :checkout.onepage.billing
. Der Block wird an diesen letzten angehängt, anstatt an den Anmeldeblock. Dann finde ich meine Login-Schaltfläche in der Rechnungsadressenansicht anstelle der Loginansicht !!! - Wenn ich in die Layoutdatei captcha.xml einkommentiere, funktioniert der Teil über
checkout.onepage.billing
meine erste Lösung.
Es ist immer noch nicht in Ordnung, aber ich fange an, die Gründe zu finden.
<reference name="form.additional.info">
und<depends>
Lösung ist viel sauberer und wartbarer.