在magento网站上,我们有一个菜单,我们希望始终显示父节点下面的所有产品,假设我们已经有了
根
- 类别1
- 类别2
----子类别2-1
----子类别2-2
点击第2类时,我们希望看到所有产品分配到第2类,第2-1类和第2-2类。单击Root时,它应显示商店的所有产品。但是,当从商店的其他部分中选择category1时,我们希望有一个默认行为。
通常情况下,我们只会将产品分配给不同类别 - 但由于我们只想在网站的一个部分上使用此行为,因此我不确定如何处理此问题。
有什么想法吗?
提前致谢。
答案 0 :(得分:0)
您可以使用类别的“锚点”属性来实现此目的,此设置控制Magento如何从应用的类别下方的类别“卷起”产品,并且这样做也为分层导航控件设置了范围(如果你正在使用它们。)
要按照描述进行操作,您需要在父级下的每个子类别上勾选/取消选中“Is Anchor”框。
转到目录>管理Catagories>选择一个类别>显示设置>是锚吗? (蜱)
要获得您需要设置“Is Anchor”框后的行为,如下所示:
Root - tick
- category 1 - untick
- category 2 - tick
-- foreach child of category 2 - tick
然后重新索引与相关的任何类别。
答案 1 :(得分:-1)
显示顶级和所有子类别:
$collection= Mage::helper('catalog/category');
$categories = $collection->getStoreCategories();
$currentCategory = Mage::registry('current_category');
<ul>
<?php foreach($categories as $category): ?>
<li><a href="<?php echo $collection->getCategoryUrl($category) ?>">
<?php echo $category->getName() ?>
</a>
<?php $category = Mage::getModel('catalog/category')->load($category->getId()) ?>
<?php $subCategory = $category->getChildrenCategories() ?>
<?php if(count($subCategory > 0)): ?>
<ul>
<?php foreach($subCategory as $_subCategory):) ?>
<li>
<a href="<?php echo $collection->getCategoryUrl($_subCategory) ?>">
<?php echo $_subCategory->getName() ?>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>