资源描述:
《magento布局和摸板》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、magento布局和摸板第三章–布局,块和模板我们接着研究Magento。根据我们第二章讲的MagentoMVC的架构,我们接下来应该讲模型(Model),但是我们跳过模型先来看布局和块。和一些流行的PHPMVC架构不同的是,Magento的执行控制器不直接将数据传给试图,相反的视图将直接引用模型,从模型取数据。这样的设计就导致了视图被拆分成两部分,块(Block)和模板(Template)。块是PHP对象,而模板是原始PHP文件,混合了XHTML和PHP代码(也就是把PHP作为模板语言来使用了)。每一个块
2、都和一个唯一的模板文件绑定。在模板文件phtml中,“$this”就是指该模板文件对应的快对象。让我们来看一个例子File:app/design/frontend/base/default/template/catalog/product/list.phtml你将看到如下代码getLoadedProductCollection()?>count()):?>3、sg">__('Therearenoproductsmatchingtheselection.')?>
这里“getLoadedProductCollection”方法可以在这个模板的块对象“Mage_Catalog_Block_Product_List”中找到File:app/code/core/Mage/Catalog/Block/Product/List.php...publicfunctiongetLoadedProductCollect
4、ion(){return$this->_getProductCollection();}...块的“_getProductCollection”方法会实例化模型,并读取数据然后返回给模板。嵌套块Magento把视图分离成块和模板的真正强大之处在于“getChildHtml”方法。这个方法可以让你实现在块中嵌套块的功能。顶层的块调用第二层的块,然后是第三层……这就是Magento如何输出HTML的。让我们来看一下单列的顶层模板File:app/design/frontend/base/default/temp
5、late/page/1column.phtmlgetLang()?>"lang="getLang()?>">6、his->getChildHtml('head')?>
getBodyClass()?'class="'.$this->getBodyClass().'"':''?>>getChildHtml('after_body_start')?>getChildHtml('global_notices')?>7、this->getChildHtml('header')?>getChildHtml('breadcrumbs')?>getChildHtml('global_messages')?>getChildHtml('content')?>