使用Magento获取当前顶级类别

时间:2010-06-25 18:35:01

标签: magento

如何获取当前(活动)顶级类别及其子类别?

我不想要根类别,只需要最高级别的类别及其所有子类别。

例如,如果我在女性类别中:

Women 
- Apparel 
-- Shirts 
-- Pants 
- Accessories 
-- Handbags 
-- Jewelry

即使我在看衬衫,我也希望类别树保持不变。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

准确回答您的准确问题“如何获取当前类别及其子类别”:

要检索当前类别:

$_currentCategory = $this->getCurrentCategory();

检索其子类别:

$_categories = $this->getCurrentChildCategories();

以上是在目录/导航块中工作。

现在,为了得到你正在谈论的渲染,我认为一个使用CSS的简单导航块可以解决问题。

  1. 创建一个导航块,假设在左栏中:

  2. 在模板目录结构中创建模板文件。在我们的例子中: /template/catalog/navigation/thetemplate.phtml

  3. 使用此代码绘制整个类别/子类别结构,无需修改代码的麻烦(参见帖子末尾的[1] ....)

  4. 检查生成的代码/ CSS,您将看到所有必需的CSS指针(levelX,active ...)允许您显示或隐藏类别树的各个部分,从而仅显示您喜欢的部分

  5. 结论:CSS足以完成你想做的事情:)

    [1]代码:

    <?php $_menu = ''?>
    <?php foreach ($this->getStoreCategories() as $_category): ?>
    <?php $_menu .= $this->drawItem($_category) ?>
    <?php endforeach ?>
    <?php if ($_menu): ?>
    <div class="THECSS-CONTAINER">
    <ul id="THECSS">
    <?php echo $_menu; ?>
    </ul>
    </div>
    <?php endif; ?>