现在的位置: 首页 > 综合 > 正文

Magento中Block的应用,学好Magento必备

2018年02月07日 ⁄ 综合 ⁄ 共 2293字 ⁄ 字号 评论关闭

如果你在本机的虚拟目录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代码

  1. <customer_account_create>
  2. <!– Mage_Customer –>
  3. <remove name=”right”/>
  4. <remove name=”left”/>
  5. <reference name=”root”>
  6. <action method=”setTemplate”>
  7. <template>/page/1column.phtml</template>
  8. </action>
  9. </reference>
  10. <reference name=”content”>
  11. <block type=”customer/form_register” name=”customer_form_register” template=”customer/form/register.phtml”/>
  12. </reference>
  13. </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代码

  1. class Mage_Customer_Block_Form_Register1 extends Mage_Directory_Block_Data{
  2. public function getHello(){
  3. return “Hello Block”;
  4. }
  5. }
  6. 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代码

  1. <?php echo $this->getHello(); ?>
  2. <?php echo $this->getHello(); ?>

复制代码

3. 修改

customer.xml

配置 Xml代码

  1. <block type=”customer/form_register” name=”customer_form_register” template=”customer/form/register.phtml”/>
  2. <block type=”customer/form_register” name=”customer_form_register” template=”customer/form/register.phtml”/>

复制代码

Xml代码

  1. <block type=”customer/form_register1″ name=”customer_form_register1″ template=”customer/form/register1.phtml”/>
  2. <block type=”customer/form_register1″ name=”customer_form_register1″ template=”customer/form/register1.phtml”/>

复制代码

重新访问该url,不出意外你应该可以看到下面的结果

抱歉!评论已关闭.