Magento 如何使包含子类别的类别不可链接

Magento 如何使包含子类别的类别不可链接,magento,Magento,这应该是一个简单的问题。但我在Magento有一个分类列表,它有子分类。我想让我的分类下的子然后作为一个标题,而不是一个点击链接到该类别。例如: Link 1 Link 2 Link 3 (this should be a title) ---Link 1 ---Link 2 Link4 我的分类是这样的 <?php foreach ($helper->getStoreCategories() as $_category): ?> <li> <a hre

这应该是一个简单的问题。但我在Magento有一个分类列表,它有子分类。我想让我的分类下的子然后作为一个标题,而不是一个点击链接到该类别。例如:

Link 1
Link 2
Link 3 (this should be a title)
---Link 1
---Link 2
Link4
我的分类是这样的

<?php foreach ($helper->getStoreCategories() as $_category): ?>


<li> <a href="<?php echo Mage::getModel('catalog/category')->setData($_category->getData())->getUrl(); ?>" title="<?php echo $_category->getName() ?>"><?php echo $_category->getName() ?></a>

<?php foreach (Mage::getModel('catalog/category')->load($_category->getId())->getChildrenCategories() as $childCategory):?>
  <?php echo '<li class="subCats"><a href="'.$childCategory->getUrl().'">'.$childCategory->getName() .'</a></li>'; ?>
  <?php endforeach;?>

</li>

<?php endforeach ?>

  • 任何帮助都将不胜感激。
    谢谢

    好的,这是一个有点老套的解决方案,但它对我有效。首先创建以下内容的本地副本:

    app>code>core>Mage>Catalog>Block>Navigation.php

    或者,如果您知道如何配置模块,请扩展该类并以正确的方式进行操作

    查找名为\u rendercategory menuitemhtml的函数

    在页面的某个位置创建一个包含所有要排除的类别名称的数组:

    $categoryArray = array("Duplicate NCR", "Triplicate NCR", "Quadruplicate NCR");
    
    现在,只需用一个标准的if语句将标记包围起来,替换为:

    $html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.' title="'.$this->htmlEscape($category->getName()).'">';
    $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
    $html[] = '</a>';</code>
    
    $html[]=''
    
    为此:

     if(!in_array($this->htmlEscape($category->getName()), $categoryArray)) {   
    
        $html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.' title="'.$this->htmlEscape($category->getName()).'">';
    
        }
    
        $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
    
        if(!in_array($this->htmlEscape($category->getName()), $categoryArray)) {    
    
        $html[] = '</a>';
    
        }
    
    if(!in_数组($this->htmlEscape($category->getName()),$categoryArray)){
    $html[]='';
    }
    

    正如我所说,制作一个模块将是更好的选择,但就快速修复而言,这将非常有效。

    如果重命名块并编辑布局xml;,这将不会有问题。)这是我们为Magento决定在块中构建HTML所付出的代价/我叹息