【问题标题】:Magento creating CMS blocks from xml blockMagento 从 xml 块创建 CMS 块
【发布时间】:2014-08-08 04:48:12
【问题描述】:
<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> 

【问题讨论】:

  • 这不是 cms 阻止它调用类别 layernvation
  • 如果我的知识是正确的,不可能通过布局xml创建cms页面。布局 xml 用于对齐不同类型的已经存在的块作为我们的设计结构。在这种情况下,应该先通过管理员创建一个 cms 页面,然后再将其用于布局 XML
  • 我采用了第一个参考块并从中制作了上面显示的静态块,并通过 php echo createBlock 在 CMS 页面 store.phtml 上正常加载...任务正在尝试获取下一个一块编码成一个静态块,这样我就可以控制它在页面上的插入位置。

标签: magento


【解决方案1】:

很遗憾,您无法满足您的需求。
这就是为什么。当使用 {{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}} 生成的块不会添加到布局中,因此它们不能在其他块中引用。

【讨论】:

    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多