결제 과정에서 추가 로그인 옵션을 추가하려고합니다. 현재 사용자 이름 / 비밀번호가 있습니다. 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>
보안 문자 모듈에서 수행하는 것과 다른 방법을 찾았습니다.
<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
은 블록 의 보안 문자 모듈에 의해 생성 된checkout.onepage.login
다음 블록 에 대해서도 생성됩니다.checkout.onepage.billing
- Mage_Core_Model_Layout :: _ generateBlock ()에서 블록을 생성하는 동안 블록의 부모 블록 객체를 검색합니다
login_github_button
. 중 하나를 찾는 대신checkout.onepage.login
가장 최근에 생성 된 중 하나를 찾습니다checkout.onepage.billing
. 블록은 로그인하는 대신이 마지막 블록에 연결됩니다. 그런 다음 로그인보기 대신 청구서 수신 주소보기에서 로그인 버튼을 찾습니다 !!! - 레이아웃 captcha.xml 파일에 주석을 달면
checkout.onepage.billing
첫 번째 솔루션 에 대한 부분이 작동합니다.
여전히 괜찮지는 않지만 이유를 찾기 시작합니다.
<reference name="form.additional.info">
및<depends>
위의 솔루션은 훨씬 깨끗하고 유지 보수입니다.