magento的block代码有很多中方式,
1
在magento后台的xml update位置可以写入xml代码,配置block的结构
2
在layout文件中写xml代码,这是一种推荐的方式,这样比较容易查找代码,易于维护
3
在模块的controllers文件里写,譬如代码:
$this->loadLayout();
$this->_setActiveMenu('blog/posts');
$this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
$this->_addContent($this->getLayout()->createBlock('blog/manage_blog_edit'))
->_addLeft($this->getLayout()->createBlock('blog/manage_blog_edit_tabs'));
$this->getLayout()->getBlock('head')->setCanLoadTinyMce(true);
代码的作用和在xml文件里面写得效果是一样的
4
下面是最简洁,最方面的写法,但是不易于维护,因为这种方式写得代码,当开启路径提示的时候是不显示的,还会给新手带来迷惑,我刚学magento的时候就相当的迷惑,就是找不到代码在那里,找了好久才找到,原来是这个实现的!
代码例子如下:
<?php echo $this->getLayout()->createBlock('catalog/product_list')->setTemplate('catalog/product/list.phtml')->toHtml() ?>
作用就和xml中配置效果一样,在初始化,加载完xml文件,他们的最终代码都是一样的
如果加载static block,可以使用
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml() ?>
效果和
<
block
type
=
"cms/block"
name
=
"
block_identifier"
>
<
action
method
=
"setBlockId"
><
block_id
>
block_identifier</
block_id
></
action
>
</
block
>