2

我已经更新了我的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'); ?>

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

4

2 回答 2

1

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

Magento CMS -> pages -> home

更改设计选项卡,根据需要选择布局 2columns-left 或 3-columns。

然后您可以使用左侧导航,但可能需要进行一些更改。如果您检查 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 -> 页面 -> 主页布局更新 XML。

<reference name="left">
    <block type="catalog/navigation" name="catalog.leftnav"  as="categorySidebar" after="currency"     template="catalog/navigation/left-home.phtml"/>
    </block>
</reference>
于 2012-11-06T11:18:38.670 回答
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 缓存

于 2012-11-06T05:01:13.373 回答