Magento静态块未从布局文件中调用

时间:2013-06-19 02:12:37

标签: xml magento content-management-system magento-1.7

我已经修改了local.xml的<cms_index_index>标记,以便在主页加载时理想地从数据库中提取静态块。但是,没有拉出静态块。我创建了一个带有标识符mobile_home的静态块,它已启用。我也试过现有的工作静态块无济于事。怎么了?什么可能使这个工作?

<cms_index_index>
      <block type="cms/block" name="cms_page"><action method="setBlockId"><block_id>mobile_home</block_id></action></block>
</cms_index_index>

编辑:添加引用后,它仍然不呈现:

<cms_index_index>
        <reference name="head">
            <block type="cms/block" name="cms_page"><action method="setBlockId"><block_id>mobile_home</block_id></action></block>
        </reference>
    </cms_index_index>

1 个答案:

答案 0 :(得分:2)

正在实例化块(假设正在合并此布局XML),但需要将其添加到渲染流中。快速测试是通过output属性获取块并使其成为输出块:

<cms_index_index>
    <block type="cms/block" name="cms_page" output="toHtml">
        <action method="setBlockId">
            <block_id>mobile_home</block_id>
        </action>
     </block>
</cms_index_index>

然后,您可以将其添加到无模板块,例如content

<cms_index_index>
    <!-- or use reference syntax, up to you -->
    <block type="cms/block" name="cms_page" parent="content">
        <action method="setBlockId">
            <block_id>mobile_home</block_id>
        </action>
     </block>
</cms_index_index>

您还可以进入CMS页面的内容主体并使用块指令添加静态块(或通过小部件界面插入):

{{block type="cms/block" block_id="mobile_home"}}

{{widget type="cms/widget_block" template="cms/widget/static_block/default.phtml" block_id="5"}}