我偶然发现了一个相对已知的问题,但我无法找到解决方案。
我正在使用magento 1.9 CE
我找到了一些代码来显示当前类别及其子项的垂直菜单,并在主页上显示根类别,除了1个小细节外,一切正常。子类别不按后端顺序加载。与后端加载中的设置顺序相同的顺序非常重要。我已尝试过各种各样的变体,比如getCChildrenCategories,但它会产生一个blnak页面。我还找到了可以使用的菜单,但是当我访问主页时,我收到错误并且页面变成空白。
这是我目前正在使用的代码。
<section class="block-layered-nav custom-left-menu" role="navigation">
<div class="block-content">
<?php
echo "<dl id='narrow-by-list2'>";
$_category = $this->getCurrentCategory();
$subcatid = $_category->getId();
$parentCategory = Mage::getBlockSingleton('catalog/navigation')->getCurrentCategory()->parent_id;
$name = $_category->getName();
$root_category = Mage::getModel('catalog/category')->load($subcatid);
$subcategories = $root_category->getChildren();
if($subcategories != "")
{
echo "<span class='h3'>Categorie</span><ol>";
foreach(explode(',',$subcategories) as $subcategory) {
$category = Mage::getModel('catalog/category')->load($subcategory);
echo '<li><a href="'.$category->getURL() .'" title="'.$category->getName().'" />'.$category->getName().'</a></li>';
}
}
else
{
echo "<span class='h3'>Categorie</span><ol>";
$root_category = Mage::getModel('catalog/category')->load($parentCategory);
$subcategories = $root_category->getChildren();
foreach(explode(',',$subcategories) as $subcategory) {
$category = Mage::getModel('catalog/category')->load($subcategory);
echo '<li><a href="'.$category->getURL() .'" title="'.$category->getName().'" />'.$category->getName().'</a>';
}
}
echo "</ol>";
?>
</div>
</section>
非常感谢任何帮助。我所知道的是,在这段代码的某处,它没有以正确的方式调用类别,我也尝试过:
$currentCat = Mage::registry('current_category');
但这导致空白主页。
以下是dev enviremont的链接:http://dev.smoldersbv.nl/schroeven-en-bouten.html
如果将鼠标悬停在主导航栏上,则会看到不同的顺序,正确的顺序,然后在左侧菜单上。
答案 0 :(得分:0)
这是正常的$this->getCurrentCategory()
获取当前类别=您当前正在浏览的类别。
在主页上,您不在类别中,例如在任何其他cms页面上,甚至在联系我们页面上,......(还有更多)。所以当前类别中没有任何内容,这是显而易见的。
答案 1 :(得分:0)
问题解决了,
此菜单的错误请求方式无法生成后端的顺序,所以我最终使用了一个完整的不同模型。
无论如何,看着thnx。