如何使子类别的类别不可链接

时间:2011-05-14 06:43:45

标签: magento

应该是一个简单的问题。但是我在Magento中有一个具有子类别的类别列表。我希望将我的类别与subs作为标题,而不是该类别的可点击链接。例如:

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 ?>

非常感谢任何帮助。 感谢

1 个答案:

答案 0 :(得分:1)

好的,这是一个hacky解决方案,但它对我有用。首先创建一个本地副本:

app&gt;代码&gt;核心&gt;法师&gt;目录&gt;块&gt; Navigation.php

或者,如果您知道如何配置模块,请扩展课程并以正确的方式进行。

寻找名为 _renderCategoryMenuItemHtml 的功能。

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

$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>

有了这个:

 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>';

    }

正如我所说,制作一个这样的模块将是更好的选择,但就快速修复而言,这将完美无缺。