magento在页面左侧边栏上显示类别

时间:2011-12-05 22:17:33

标签: magento categories

我无法设法在页面上显示左侧的类别。 我选择了Design - layout to 3 columns下的页面, 右侧显示很好但左侧没有任何东西。 magento的新手,所以我不确定在模板中我必须寻找的文件。 它安装了一个自定义模板,所以我到目前为止:

app/design/frontend/default/f001/template/

但现在不确定是否要查看目录或paeg文件夹

4 个答案:

答案 0 :(得分:13)

转到布局Xml文件夹..

  

Blockquote /app/design/frontend/default/default/layout/catalog.xml

打开此Xml文件并粘贴此代码。

<reference name="left">
            <block type="catalog/navigation" name="catalog.leftnav" template="catalog/navigation/left_nav.phtml" />
</reference>

进一步打开此文件..

/app/design/frontend/default/default/template/catalog/navigation/left_nav.phtml

粘贴此代码:

 <?php
$obj = new Mage_Catalog_Block_Navigation();
$store_cats = $obj->getStoreCategories();
$current_cat    = $obj->getCurrentCategory();
$current_cat    = (is_object($current_cat) ? $current_cat->getName() : '');

foreach ($store_cats as $cat) {
    if ($cat->getName() == $current_cat) {
        echo '<li class="current"><a href="'.$this->getCategoryUrl($cat).'">'.$cat->getName()."</a>\n<ul>\n";
        foreach ($obj->getCurrentChildCategories() as $subcat) {
            echo '<li><a href="'.$this->getCategoryUrl($subcat).'">'.$subcat->getName()."</a></li>\n";
        }
        echo "</ul>\n</li>\n";
    } else {
        echo '<li><a href="'.$this->getCategoryUrl($cat).'">'.$cat->getName()."</a></li>\n";
    }
}
?>

答案 1 :(得分:1)

转到布局文件夹 即。

app/design/frontend/default/f001/layout/

打开任何xml文件,例如catalog.xml和标签

<default>

</default>

粘贴此代码

<reference name="left">
        <block type="catalog/navigation" name="left_categories_nav" before="-" template="catalog/navigation/left.phtml"/>
    </reference>
像这样

<default>
    <reference name="left">
        <block type="catalog/navigation" name="left_categories_nav" before="-" template="catalog/navigation/left.phtml"/>
    </reference>
</default>

但请务必在第79行注释此块。

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

答案 2 :(得分:0)

要将类别从右侧边栏移动到左侧边栏,您需要执行以下操作:

(1)打开app / design / frontend / default / f001 / layout /并找到一个名为local.xml的文件 - 如果它不存在,请创建它。

将以下内容粘贴并保存。

<?xml version="1.0" encoding="UTF-8"?>
<layout>
<default>
<!-- Left Categories Begin-->
   <reference name="left">
        <block type="catalog/navigation" name="catalog.leftnav" before="-" template="catalog/navigation/left.phtml"/>
    </reference>
<!-- Left Categories End-->
</default>
</layout>

(2)打开app / design / frontend / default / f001 / layout / catalog.xml

在“类别默认布局”中,查找类似的内容并将此行注释掉(如此) -

<!-- <reference name="right">
        <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>
    </reference> -->

假设您使用的是3列,这将阻止类别在两个侧边栏上显示。

您可能已经猜到,参考名称是指每个侧边栏。您需要确保“left”的引用名称包含左侧类别,并确保右侧没有(在布局中控制,而不是模板文件)。

答案 3 :(得分:0)

Add this in left static block
<p>Left side bar {{block type="core/template" template="catalog/navigation/left.phtml"}}</p>

add left.phtml in yourtemplatename/template/catalog/navigation/left.phtml
<?php
$obj = new Mage_Catalog_Block_Navigation();
$store_cats = $obj->getStoreCategories();
$current_cat    = $obj->getCurrentCategory();
$current_cat    = (is_object($current_cat) ? $current_cat->getName() : '');

foreach ($store_cats as $cat) {
    if ($cat->getName() == $current_cat) {
        echo '<li class="current"><a href="'.$this->getCategoryUrl($cat).'">'.$cat->getName()."</a>\n<ul>\n";
        foreach ($obj->getCurrentChildCategories() as $subcat) {
            echo '<li><a href="'.$this->getCategoryUrl($subcat).'">'.$subcat->getName()."</a></li>\n";
        }
        echo "</ul>\n</li>\n";
    } else {
        echo '<li><a href="'.$this->getCategoryUrl($cat).'">'.$cat->getName()."</a></li>\n";
    }
}
?>