<reference name="left">
<!-- Layered Navigation Block -->
<block type="catalog/layer_view" name="catalog.leftnav" template="catalog/layer/view.phtml" >
<action method="setCategoryId"><category_id>2</category_id></action>
</block>
</reference>
我能够从上面的代码
创建一个CMS块{{block type="catalog/layer_view" category_id="2" name="catalog.leftnav" template="catalog/layer/view.phtml"}}
如何从下面的XML创建CMS块...它还有更多内容。
<reference name="content">
<block type="catalog/product_list" name="home" template="catalog/product/list.phtml">
<!-- Product List View -->
<action method="setCategoryId"><category_id>2</category_id></action>
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
</block>
<action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
</block>
</reference>
答案 0 :(得分:0)
不幸的是,你不能做你需要的
这就是原因。使用{{block}}
指令magento在创建块后自动调用toHtml
并返回html(渲染块)。
该指令也不支持块内的块。
使用布局文件时,不会自动渲染块。首先解析布局文件,实例化块类,将它们指定为子块或父块,并在最后呈现所有内容。
在你的情况下,你需要这样的东西:
{{block type="catalog/product_list" template="catalog/product/list.phtml" name="home" toolbar_block_name="product_list_toolbar"}}
但这不起作用,因为名称为product_list_toolbar
的块尚不存在。
如果您尝试使用以下内容创建它:
{{block type="catalog/product_list_toolbar"....}}
仍然无法工作,因为该块只会被输出(很可能你也会得到一个错误)。
使用{{block}}
生成的块不会添加到布局中,因此无法在其他块中引用它们。