Я намагаюся додати додатковий варіант входу під час оформлення замовлення. На даний момент у вас є спосіб ім’я користувача / пароль. Я хочу додати зображення кнопки для входу через процес 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 :: _ generatorBlock () він здійснює пошук батьківського об'єкта блоку
login_github_button. Замість того , щоб знайти один зcheckout.onepage.login, він знаходить один з останніх створено:checkout.onepage.billing. Блок приєднаний до цього останнього замість журналу в одному. Тоді я знаходжу свою кнопку входу у представленні адреси виставлення рахунків замість перегляду входу !!! - Якщо я коментую файл captcha.xml, то файл про
checkout.onepage.billingмоє перше рішення працює.
Це все ще не нормально, але я починаю знаходити причини.
<reference name="form.additional.info">І<depends>розчин вище набагато чистіше і легше підтримувати.