magento的block里面有丰富的标签,但是magento公司没有出来详细的介绍,只有一些基本的描述
具体的时候,还是得通过实践自己摸索,下面是我找到的一些区别
block中remove和unsetChild这2个标签在xml中的区别:如下
对于某个block,我们想要其他的页面都有,而这个页面没有,我们会选择在当前页面移除这个block
我们会想到选择用2个标签,unsetchild和remove
他们的原理是这样的:
unsetCild是在当前block下移除这个block,但是block还是加载执行的,只是和当前的block没有从属关系了
而remove,是删除这个block的加载,无论这个block在那个block之下,或者这个页面加载这个block N次,只要一个remove,全部清空
在具体的操作中,还是要注意一些的,譬如如下:
在我的一片文章中写过,block的写法有很多中,可以写在layout的xml文件中,也可以在模块的block中写,也可以通过controller中写,譬如:如下,在 block中写入如下:
$layout->getBlock('catalog.topnav')->setTemplate('webandpeople/custommenu/top.phtml');
这个是custom menu插件中得一块代码,如果使用<remove name="top.men">就会报错!
因为使用remove,结构就是根本不加载block,所以模块执行的找不到这个block了,就会报错。
知道这些东西,会找错,辨错,以上我描述不是很清楚,可能只可意会,不可言传吧,或者境界未到,呵呵,只能写这么多,只要明白magento的初始化过程,理解上面的内容应该不难
是否,自己以后出点模块制作的视频呀,有时间一定做一些!