Saya mencoba menambahkan opsi login tambahan selama proses checkout. Saat ini, Anda memiliki cara nama pengguna / kata sandi. Saya ingin menambahkan gambar tombol untuk login melalui proses OAuth (dalam kasus saya Github).
Saya menemukan cara tetapi itu bukan cara terbaik. Ada dalam file template checkout / onepage / login.phtml, panggilan untuk mendapatkan nama anak blok form.additional.info
.
Saya mencoba memasukkan blok saya sendiri di dalamnya dengan cara ini tetapi tidak berhasil.
<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>
Saya menemukan cara yang berbeda seperti yang dilakukan oleh modul 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>
Dalam hal ini, ini berfungsi TETAPI captcha tidak akan ditampilkan. Bagaimana saya bisa memasukkan beberapa blok ke dalam form.additional.info
blok?
Terima kasih atas bantuan Anda
EDIT :
Saya menemukan beberapa alasan mengapa tombol tidak ditampilkan di bawah bidang masuk saat menggunakan form.additional.info
metode referensi . Ini ditampilkan dalam tampilan penagihan checkout.
- Blok
form.additional.info
dibuat oleh modul captcha untuk blokcheckout.onepage.login
kemudian juga dibuat untuk blokcheckout.onepage.billing
- Saat membuat blok di Mage_Core_Model_Layout :: _ generateBlock () ia mencari objek induk blok dari blok
login_github_button
. Alih-alih menemukan salah satucheckout.onepage.login
, ia menemukan salah satu yang terbaru diciptakan:checkout.onepage.billing
. Blok dilampirkan ke yang terakhir ini, bukan yang masuk. Kemudian saya menemukan tombol login saya pada tampilan alamat penagihan alih-alih tampilan login !!! - Jika saya berkomentar ke file layout captcha.xml, bagian tentang
checkout.onepage.billing
solusi pertama saya berfungsi.
Ini masih tidak baik tetapi saya mulai menemukan alasannya.
sumber
<reference name="form.additional.info">
dan<depends>
solusi di atas jauh lebih bersih dan lebih dipertahankan.captcha.xml menghasilkan blok, jadi itu bisa digunakan. Apakah Anda menambahkan
untuk memastikan, bahwa blok Anda sudah ada, ketika Anda mencoba menambahkan anak ke dalamnya?
sumber
<reference name="form.additional.info">
dan kemudian menambahkan<depends>
. Jika Anda menggunakan blok kedua<reference name="checkout.onepage.login">
dengan<depends>
itu akan menimpa blok captcha seperti yang Anda sebutkan.depends
tidak perlu dalam hal ini. Dan kita semua sepakat tentang cara menimpa blok kedua saya. Saya menemukan alasan mengapa itu tidak berhasil tetapi saya masih belum menemukan solusi yang bersih. Lihat hasil edit saya di pertanyaan.