2011-01-07 33 views
5

Tôi đang cố gắng kết hợp biểu mẫu đăng nhập và tạo biểu mẫu tài khoản trong Magento vào một trang. Lý do là tôi chỉ nghĩ rằng càng ít trang càng tốt. Tôi thấy Magento khó hiểu và có sự hiểu biết hạn chế về cách bố trí và hệ thống mẫu của nó. Tôi đã quyết định cách dễ nhất để thực hiện việc này là chỉ cần thêm biểu mẫu đăng nhập vào trang tài khoản đăng ký. Tôi tìm thấy biểu mẫu đăng nhập và đăng ký biểu mẫu trong login.phtml và register.phtml trong template/customer/form /.Đăng nhập và đăng ký Magento một trang

Tôi chỉ cần sao chép mã PHTML từ login.phtml vào tệp register.phtml trong cùng một thư mục. Đây là những gì tôi đã kết thúc với:

http://pastebin.com/fpkeBsxc

Sau khi tôi điền vào email và mật khẩu của tài khoản và bấm đăng nhập, lợi nhuận trang với lỗi xác nhận đề cập đến hình thức tài khoản đăng ký rống lên nó. Về cơ bản, tôi không chắc chắn nếu điều này là bởi vì cách tiếp cận của tôi là hoàn toàn ngu ngốc/sai và tôi không thể chỉ sao chép và dán mã như thế này, hoặc đây là một vấn đề html đơn giản mà tôi không thể nhìn thấy? Tôi nghĩ rằng có thể là sai đường, như hình thức đăng ký hoạt động. Tôi sẽ đăng một ảnh chụp màn hình của điều này trong một bình luận, nó sẽ không cho phép tôi dán nhiều hơn một liên kết. Cảm ơn lời khuyên nào.

+0

http://img137.imageshack.us/img137/2458/49833894.png – HeinekenBluess

Trả lời

2

Bạn nên làm điều đó hơi khác nhau:

  1. làm quen với cách bố trí Magento và làm thế nào nó hoạt động
  2. tài liệu tham khảo sử dụng bố trí bao gồm cả hình thức tồn tại trong một mẫu
  3. cho phép họ gửi đến họ bộ điều khiển hiện tại
+0

Đi phải đồng ý. Thật không may, nó không phải là dễ dàng như kết hợp một vài tập tin phtml. – Nic

7

Trong customer.xml trong chủ đề, bạn có thể di chuyển khối đăng ký tài khoản vào trong trang đăng nhập.

<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

Điều này đã giúp tôi rất nhiều, cảm ơn bạn! – djdy

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> 

của thành viên này u có thể đặt html nơi làm u muốn đặt trong khách hàng/form/login.phtml

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

Để kết hợp các hình thức đăng ký của khách hàng với các mẫu đăng nhập mặc định của Magento, chỉ cần lưu ý các bước sau:
1. Tạo tệp mini.register.phtml
Trước tiên, bạn cần phải tạo tệp mẫu mới: app/design/frontend/[your-interface]/[your-theme]/template/customer/form/mini.register.phtml
Và sao chép nội dung của tệp đăng ký mặc định: app/design/frontend/base/default/template/customer/form/register.phtml vào mini.register.phtml và tùy chỉnh theo yêu cầu của bạn.

2. Bao gồm mini.register.phtml trong login.phtml
bản sao đầu tiên file: app/design/frontend/base/default/template/customer/form/login.phtml đến chủ đề hiện tại của bạn như:

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

Và bây giờ bạn cần phải sửa đổi các đăng nhập mới. phtml để bạn có thể bao gồm nội dung của mini.register.phtml.
Đối với điều này, bạn phải sử dụng mã xml sau trong tập tin xml bố trí của bạn (tốt nhất là trong app/design/frontend/[your-interface]/[your-theme]/layout/local.xml) như:

<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> 

Bây giờ bạn có thể chỉ đơn giản bao gồm các mini.register.phtml trong đăng nhập mới của bạn.phtml tệp dưới dạng:

<?php echo $this->getChildHtml('customer_form_register2'); ?> 
  1. Bạn đã hoàn tất. Bây giờ xóa bộ nhớ cache và tải lại trang đăng nhập của khách hàng: http://your-mage-store/customer/account/login
+0

Cảm ơn bạn đã đăng câu trả lời! Vui lòng đảm bảo đọc kỹ [FAQ on Self-Promotion] (http://stackoverflow.com/faq#promotion). Cũng lưu ý rằng nó là * bắt buộc * mà bạn đăng tuyên bố từ chối trách nhiệm mỗi lần bạn liên kết đến trang web/sản phẩm của riêng bạn. –

Các vấn đề liên quan