Magento中Block的应用
来源:互联网 发布:php 调用js 编辑:程序博客网 时间:2024/04/30 04:30
template之于block犹如jsp之于javabean.
如果你在本机的虚拟目录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>
<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,不出意外你应该可以看到下面的结果
来试试吧,希望从这篇文档中你不仅仅学到了block基本应用,还能理解Magento执行一个网页的过程,以及layout文件可能如何切换(在<reference name="root">指定)的方法
- Magento中Block的应用
- magento中static block的使用
- magento block 程序中获取各种url的方法
- Magento的block重写规则
- Magento Block的缓存机制
- Magento Block的缓存机制
- magento -- 在magento中如何调用static block?
- magento Block
- 在magento中如何调用static block
- 在magento中如何调用static block?
- magento -- magento 左右列block的定位问题
- magento------在block对应的phtml文件中加载子block的另外一种简洁快速的方法
- 重新排布magento block的位置
- magento -- 前台新建block的小技巧
- Magento Block的三种显示方式
- 重写magento的model, block 和controller
- 给Magento常用的Block添加缓存
- Magento Block获取各种URL的方法
- oracle日志归档模式改变
- JAVA中int转String类型效率比较
- 初探magento模板系统
- 主题:Oracle中Null与空字符串''''的区别
- 【搜索】【RQNOJ】数的计算
- Magento中Block的应用
- Magento运行出现错误的解决方法
- Fatal error: Maximum execution time of 60 seconds exceeded in
- Magento后台添加产品首页显示不了的解决方法
- Servlet多线程机制
- magneto 1.4中产品不在前台显示的四大因素
- Magento中如何调用SQL语句
- 双硬盘装Linux+WinXP的曲折经过
- Bestseller products in Magento