Próbuję dodać dodatkową opcję logowania podczas realizacji transakcji. W tej chwili masz sposób na nazwę użytkownika / hasło. Chcę dodać obraz przycisku, aby zalogować się za pomocą procesu OAuth (w moim przypadku Github).
Znalazłem sposób, ale nie jest to najlepszy sposób. W pliku szablonu Checkout / onepage / login.phtml znajduje się wywołanie o nazwie potomka bloku form.additional.info
.
Próbowałem w ten sposób wstawić do niego własny blok, ale to nie działało.
<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>
Znalazłem inny sposób, jak robi to moduł 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>
W takim przypadku działa, ALE captcha nie będzie wyświetlana. Jak mogę wstawić kilka bloków do form.additional.info
bloku?
Dzięki za pomoc
EDYCJA :
Znalazłem kilka powodów, dla których przycisk nie jest wyświetlany pod polami logowania podczas korzystania z form.additional.info
metody referencyjnej . Zamiast tego jest wyświetlany w widoku rozliczeniowym kasy.
- Blok
form.additional.info
jest tworzony przez moduł captcha dla bloku,checkout.onepage.login
a następnie jest również tworzony dla blokucheckout.onepage.billing
- Podczas generowania bloku w Mage_Core_Model_Layout :: _ generateBlock () przeszukuje obiekt bloku nadrzędnego bloku
login_github_button
. Zamiast znalezienia jednegocheckout.onepage.login
, znajdzie jeden z najnowszych utworzona:checkout.onepage.billing
. Blok jest dołączony do tego ostatniego zamiast logu w jednym. Następnie znajduję przycisk logowania w widoku adresu rozliczeniowego zamiast w widoku logowania !!! - Jeśli skomentuję plik captcha.xml układu, część o
checkout.onepage.billing
moim pierwszym rozwiązaniu działa.
Nadal nie jest ok, ale zaczynam szukać powodów.
<reference name="form.additional.info">
I<depends>
rozwiązanie powyżej jest znacznie czystsze i bardziej linkujących.