จริงๆแล้ว 'ติดต่อเรา' และ 'คำสั่งซื้อและผลตอบแทน' ไม่ใช่หน้า CMS พวกเขาเป็นหน้าจริงจากโมดูลที่แยกต่างหาก พวกเขาเป็นเหมือนหน้า 'เข้าสู่ระบบ' หรือ 'ลงทะเบียน' มากกว่าหน้า CMS ในการสร้างหน้าเช่นนี้คุณสามารถสร้างโมดูลอย่างง่าย ๆ ด้วยคอนโทรลเลอร์หนึ่งบล็อกและหนึ่งเทมเพลต เรียกส่วนขยาย Easylife_Customform สำหรับสิ่งนี้คุณจะต้องใช้ไฟล์ต่อไปนี้
app/etc/modules/Easylife_Customform.xml
- ไฟล์ประกาศโมดูล
<?xml version="1.0"?>
<config>
<modules>
<Easylife_Customform>
<active>true</active>
<codePool>local</codePool>
</Easylife_Customform>
</modules>
</config>
app/code/local/Easylife/Customform/etc/config.xml
- ไฟล์กำหนดค่า
<?xml version="1.0"?>
<config>
<modules>
<Easylife_Customform>
<version>0.0.1</version>
</Easylife_Customform>
</modules>
<global>
<blocks>
<customform><!-- block alias -->
<class>Easylife_Customform_Block</class>
</customform>
</blocks>
<helpers>
<customform><!-- helper alias -->
<class>Easylife_Customform_Helper</class>
</customform>
</helpers>
</global>
<frontend>
<routers>
<customform>
<use>standard</use>
<args>
<module>Easylife_Customform</module>
<frontName>customform</frontName><!-- url key for module -->
</args>
</customform>
</routers>
<layout>
<updates>
<easylife_customform>
<file>easylife_customform.xml</file><!-- frontend layout file -->
</easylife_customform>
</updates>
</layout>
<translate>
<modules>
<Easylife_Customform>
<files>
<default>Easylife_Customform.csv</default><!-- translation file (not mandatory) -->
</files>
</Easylife_Customform>
</modules>
</translate>
</frontend>
</config>
app/design/frontend/base/default/layout/easylife_customform.xml
- ไฟล์เค้าโครงส่วนหน้า
<?xml version="1.0"?>
<layout>
<customform_index_index translate="label" module="customform">
<label>Custom form</label>
<reference name="root">
<action method="setTemplate"><template>page/2columns-right.phtml</template></action><!-- can be different -->
</reference>
<reference name="content">
<block type="core/template" name="customform" template="easylife_customform/form.phtml" /><!-- content of page -->
</reference>
</customform_index_index>
</layout>
app/code/local/Easylife/Customform/Helper/Data.php
- ผู้ช่วยโมดูลเริ่มต้น
<?php
class Easylife_Customform_Helper_Data extends Mage_Core_Helper_Abstract{
}
app/design/frontend/base/default/template/easylife_customform/form.phtml
- html ที่แท้จริงสำหรับฟอร์ม - ทำให้หน้าตานี้เหมือนที่คุณต้องการ
<form action="<?php echo $this->getUrl('customform/index/send')?>">
<input type="text" name="name" />
<input type="submit" />
</form>
app/code/local/Easylife/Customform/controllers/IndexController.php
- ตัวควบคุมโมดูล
<?php
class Easylife_Customform_IndexController extends Mage_Core_Controller_Front_Action{
public function indexAction(){ //this will display the form
$this->loadLayout();
$this->_initLayoutMessages('core/session'); //this will allow flash messages
$this->renderLayout();
}
public function sendAction(){ //handles the form submit
$post = $this->getRequest()->getPost();
//do something with the posted data
Mage::getSingleton('core/session')->addSuccess($this->__('Your message was sent'));//add success message.
$this->_redirect('*/*');//will redirect to form page
}
}
นี้ควรจะเป็น ล้างแคชและคุณควรจะสามารถเข้าถึงแบบฟอร์มที่mysite.com/customform
ฉันหวังว่าฉันเขียนรหัสได้อย่างถูกต้องและไม่พลาดอะไร