如果你在本机的虚拟目录magento
下建立了Magento
那么访问:
引用
http://localhost/magento/index.php
/customer/account/create/
将进入用户
注册界面。
下面就从URL
尝试分析Magento调用该页面
的过程
1. URL中的customer表明当前访问的模块
是customer
,自动定位到:app/code/core/Mage/Customer
2. URL中的account
表明当前访问的控制器文件
为AccountController.php
app/code/core/Mage/Customer/controllers/AccountController.php
3.URL中的create表明当前访问的php方法是createAction(),该方法在文件
app/code/core/Mage/Customer/controllers/AccountController.php
4.
createAction()装载目录/app/design/frontend/default/default/layout/下名字和模块名相同的
layout文件,名字为customer.xml。然后寻找名字为<customer_account_create>的标签,
Xml代码
- <customer_account_create>
- <!– 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_register” name=”customer_form_register” template=”customer/form/register.phtml”/>
- </reference>
- </customer_account_create>
复制代码
<reference name=”root”> 用来说明你要使用的布局文件。这个顺带提起,不是本文讨论的范畴。
<reference name=”content”>下的block就是你定义的block
上面的block是默认定义,block类文件可以由customer/form_register推测出来:
app/code/core/Mage/Customer/Block
/Form/Register.php
template
属性
推导出相应的
模板
文件为
app/design/frontend/default/default/template/customer/form/register.phtml
template
之于block犹如jsp之于javabean. 通过这样的配置block和template就联系起来了。可以在template文件中使用$this来访问block类的方法。
下面我们实现一个新的block应用
1. 定义一个
新的block
文件:
app/code/core/Mage/Customer/Block/Form/Register1.php
Java代码
- class Mage_Customer_Block_Form_Register1 extends Mage_Directory_Block_Data{
- public function getHello(){
- return “Hello Block”;
- }
- }
- class Mage_Customer_Block_Form_Register1 extends
Mage_Directory_Block_Data{ public function getHello(){ return
“Hello Block”; }}
复制代码
2. 定义template文件:
app/design/frontend/default/default/template/customer/form/register1.phtml
Html代码
- <?php echo $this->getHello(); ?>
- <?php echo $this->getHello(); ?>
复制代码
3. 修改
customer.xml
配置 Xml代码
- <block type=”customer/form_register” name=”customer_form_register” template=”customer/form/register.phtml”/>
- <block type=”customer/form_register” name=”customer_form_register” template=”customer/form/register.phtml”/>
复制代码
Xml代码
- <block type=”customer/form_register1″ name=”customer_form_register1″ template=”customer/form/register1.phtml”/>
- <block type=”customer/form_register1″ name=”customer_form_register1″ template=”customer/form/register1.phtml”/>
复制代码
重新访问该url,不出意外你应该可以看到下面的结果