添加侧栏到主页布局?

时间:2012-11-06 01:54:15

标签: php magento

我已更新我的page.xml文件,以便在左栏中包含类别模板,如下所示:

<page_one_column_home translate="label">
    <label>All One-Column Home Layout Pages</label>
    <reference name="root">
        <action method="setTemplate"><template>page/1column-home.phtml</template></action>
        <!-- Mark root page block that template is applied -->
        <action method="setIsHandle"><applied>1</applied></action>
    </reference>
    ...
</page_one_column_home>

添加了以下代码:

    <reference name="left">
        <block type="catalog/navigation" name="category.sidebar" as="categorySidebar" template="catalog/navigation/left.phtml"/>
    </reference>

我还更新了主页模板文件,以打印“左”列中生成的HTML:

<?php echo $this->getChildHtml('left'); ?>

然而这不起作用;结果是主页布局的左栏中没有打印任何内容。

2 个答案:

答案 0 :(得分:1)

无需修改自己的基本模板。

转到

Magento CMS -> pages -> home

更改设计标签,根据需要选择布局2列 - 左侧或3列。

然后您可以使用左侧导航,但可能需要进行一些更改。如果你检查left.phtml它会检查是否有任何当前类别,如果没有它将不会显示。

您可以制作该模板的副本,例如:

copy catalog/navigation/left.phtml to catalog/navigation/left-home.phtml

然后你可以改变:

<?php if (!Mage::registry('current_category')) return ?>
<?php $_categories = $this->getCurrentChildCategories() ?>

到此:

<?php //if (!Mage::registry('current_category')) return ?>
<?php $_categories = $this->getStoreCategories() ?>

这将使左侧导航显示所有顶级类别。

然后将其添加到您的CMS中 - &gt;页面 - &gt; home layuout更新XML。

<reference name="left">
    <block type="catalog/navigation" name="catalog.leftnav"  as="categorySidebar" after="currency"     template="catalog/navigation/left-home.phtml"/>
    </block>
</reference>

答案 1 :(得分:0)

请试试这个

<default>
    <reference name="left">
    <block type="catalog/navigation" name="catalog.leftnav"  as="categorySidebar" after="currency"     template="catalog/navigation/left.phtml"/>
    </block>
    </reference>
    </default>

同样清除magento缓存