magento中的类别树,前端有更多级别
谢谢。。。。。。。。。。。。。。但是…我有下面的代码,这是工作到第1级,而不是类别树中的更多级别。有人可以帮助我的第3级和更多。。。。。。。。。。。类别树的级别…………这意味着,如果我单击父类别,则仅该特定父类别与其子类别一起打开,其他所有类别将以关闭方式打开 喜欢 类别1 -子类别1 ----子类别1 -子类别2magento中的类别树,前端有更多级别,magento,Magento,谢谢。。。。。。。。。。。。。。但是…我有下面的代码,这是工作到第1级,而不是类别树中的更多级别。有人可以帮助我的第3级和更多。。。。。。。。。。。类别树的级别…………这意味着,如果我单击父类别,则仅该特定父类别与其子类别一起打开,其他所有类别将以关闭方式打开 喜欢 类别1 -子类别1 ----子类别1 -子类别2 <?php $obj = new Mage_Catalog_Block_Navigation(); $store_cats
<?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";
}
}
?>
类别2
-子类别1
-子类别2
<?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";
}
}
?>
解决这个问题的最简单方法是创建一个递归函数(一个调用自身的函数)
以下是您可能希望如何设置代码:
//go through all the parent catgeroies
foreach ($store_cats as $cat) {
// if it's the category we are looking for let's spit it out as an <li>
if ($cat->getName() == $current_cat) {
echo '<li class="current"><a href="'.$this->getCategoryUrl($cat).'">'.$cat->getName()."</a>\n<ul>\n";
// let's get all the subcategories no matter how deep (look at function below).
getChildCategories();
}
}
//our new sub-category getter
public function getChildCategories() {
// lets loop through all the children of the current category and spit out <li> for them
foreach ($obj->getCurrentChildCategories() as $subcat) {
echo '<li><a href="'.$this->getCategoryUrl($subcat).'">'.$subcat->getName()."</a></li>\n";
//lets call ourself again to see whether there are deeper layer to be found
getChildCategories();
}
}
这样可以避免在触底时出错。这不起作用,我收到错误:----\NetworkError:500 Internal Server error-“是否输入了if语句?如果是,则可能是我们需要用当前类别更新$obj($current\u cat)(可能是它一直在父类别var_dump上循环以查看发生了什么)仍然是相同的问题………你能为我的derectory的left.phtml文件编写完整的代码吗?--frontend/default/default/template/catalog/navigation/left.phtml……这样我就可以在magento frontend页面的左侧找到分类树…谢谢你的帮助………这里有一个问题,有你需要的代码