2011-01-07 61 views
5

我試圖登錄表單在Magento結合,創建賬戶形式進入一個頁面。原因是我認爲越少越好。我發現Magento很混亂,對其佈局和模板系統的理解有限。我決定最簡單的方法是將登錄表單添加到註冊帳戶頁面。我在template/customer/form /中的login.phtml和register.phtml中找到了登錄表單和註冊表單。Magento的登錄和註冊表格一頁

我簡單複製從login.phtml的PHTML代碼到register.phtml文件是在同一目錄下。這是我結束了:

http://pastebin.com/fpkeBsxc

後,我填寫的帳戶的電子郵件地址和密碼,點擊登錄,驗證錯誤頁面返回指的是註冊的賬號形式婁它。基本上,我不確定這是因爲我的方法完全愚蠢/錯誤,我不能像這樣複製和粘貼代碼,或者這是一個簡單的html問題,我看不到?我認爲可能是錯誤的方式,因爲註冊表的作品。我會在評論中張貼這個截圖,它不會讓我粘貼多個鏈接。感謝您的任何建議。

+0

http://img137.imageshack.us/img137/2458/49833894.png – HeinekenBluess 2011-01-07 14:22:38

回答

2

你應該這樣做略有不同:

  1. 瞭解Magento的佈局,它是如何工作
  2. 使用佈局引用包括在某一模板兩種存在形式
  3. ,讓他們提出自己的現有控制器
+0

將不得不同意。不幸的是,它不像合併一對phtml文件那麼簡單。 – Nic 2011-01-07 18:05:33

7

在您的主題中的customer.xml中,您可以將帳戶註冊塊移動到登錄頁面中。

<customer_account_login translate="label"> 
    <label>Customer Account Login Form</label> 
    <!-- Mage_Customer --> 
    <remove name="right"/> 
    <remove name="left"/> 

    <reference name="root"> 
     <action method="setTemplate"><template>page/1column.phtml</template></action> 
    </reference> 
    <reference name="content"> 
     <block type="customer/form_login" name="customer_form_login" template="customer/form/login.phtml"/> 


    <block type="customer/form_register" name="customer_form_register" template="customer/form/register.phtml"> 
      <block type="page/html_wrapper" name="customer.form.register.fields.before" as="form_fields_before" translate="label"> 
       <label>Form Fields Before</label> 
      </block> 
     </block> </reference> 
</customer_account_login> 
+0

這幫了我很多,謝謝! – djdy 2011-05-25 13:43:09

6
<reference name="content">    
    <block type="customer/form_login" name="customer_form_login" template="customer/form/login.phtml"> 
     <block type="customer/form_register" name="customer_form_register" template="customer/form/register.phtml" />    
    </block> 
</reference> 

通過這款U可以把HTML哪裏ü要在客戶的地方/表格/ login.phtml

<?php echo $this->getChildHtml('customer_form_register') ?> 
2

爲了合併使用默認的登錄表單的客戶登記表的Magento,請注意以下步驟:
1.創建mini.register.phtml文件
首先,您需要創建一個新的模板文件:app/design/frontend/[your-interface]/[your-theme]/template/customer/form/mini.register.phtml
並將默認註冊文件的內容:app/design/frontend/base/default/template/customer/form/register.phtml複製到mini.register.phtml並根據您的要求進行自定義。

2.包括mini.register.phtml在login.phtml
首先將文件複製:app/design/frontend/base/default/template/customer/form/login.phtml到您當前的主題爲:

app/design/frontend/[your-interface]/[your-theme]/template/customer/form/login.phtml 

,現在你需要修改新登錄。 phtml,以便您可以包含mini.register.phtml的內容。
對於這一點,你必須使用以下XML代碼在佈局xml文件(最好是在app/design/frontend/[your-interface]/[your-theme]/layout/local.xml)爲:

<customer_account_login translate="label"> 
    <reference name="content"> 
     <action method="unsetChild"><child>customer_form_login</child></action> 
     <block type="customer/form_login" name="customer_form_login2" template="customer/form/login.phtml" > 
      <block type="customer/form_register" name="customer_form_register2" template="customer/form/mini.register.phtml"> 
       <block type="page/html_wrapper" name="customer.form.register.fields.before" as="form_fields_before" /> 
      </block> 
     </block> 
    </reference> 
    <reference name="head"> 
     <action method="setTitle" translate="title" module="customer"><title>Login or Create an Account</title></action> 
    </reference> 
</customer_account_login> 

現在,你可以簡單地在您的新登錄的mini.register.phtml。PHTML文件:

<?php echo $this->getChildHtml('customer_form_register2'); ?> 
  1. 大功告成。 現在清空緩存並重新加載客戶登錄頁面:http://your-mage-store/customer/account/login
+0

感謝您發佈您的答案!請務必仔細閱讀[自助推廣常見問題](http://stackoverflow.com/faq#promotion)。另請注意,每次鏈接到您自己的網站/產品時,您都必須*發佈免責聲明。 – 2012-11-08 05:43:11