有没有办法在导航级别1 lis的末尾包含一个'Shop all (parent category)'
链接,而无需通过添加另一个名为"购买所有..."的类别来执行此操作
例如:
Tops:
T-Shirts
Tanks
Jackets
Shop All Tops <- Dynamically add this which links to the Tops parent category.
top.phtml 仅包含
<?php $_menu = $this->renderCategoriesMenuHtml(0,'level-top') ?>
<?php if($_menu): ?>
<div class="nav-container">
<ul id="nav">
<?php echo $_menu ?>
</ul>
</div>
<?php endif ?>
在 echo $_menu 之后添加一个<li>
,将其添加到 level0 的末尾。renderCategoriesMenuHtml 函数位于一个 Navigation.php 文件中,该文件只是所有函数。
基本上我想找到父类别,将其存储在变量中并在 level1 列表项的末尾回显它(和链接),但不知道是否有 .phtml 文件允许我这样做。
不幸的是,使用默认模板可以自定义导航菜单几乎无能为力。最好的办法是重写模板以满足您的需求,放弃:
$this->renderCategoriesMenuHtml()
取而代之的是,在每个类别级别上运行一些 foreach 循环。
我通过将top.phtml中的所有内容替换为以下内容得到了我想要的结果。它为 level0 和 level1 保留相同的类,并在锚标记内保留跨度的结构,以便保留任何以前的样式。
<?php $_helper = Mage::helper('catalog/category') ?>
<?php $_categories = $_helper->getStoreCategories() ?>
<?php $currentCategory = Mage::registry('current_category') ?>
<?php if (count($_categories) > 0): ?>
<div class="nav-container">
<ul id="nav">
<?php foreach($_categories as $_category): ?>
<li class="level0 level-top first parent">
<a href="<?php echo $_helper->getCategoryUrl($_category) ?>">
</span> <?php echo $_category->getName() ?></span>
</a>
<?php $_category = Mage::getModel('catalog/category')->load($_category->getId()) ?>
<?php $_subcategories = $_category->getChildrenCategories() ?>
<?php if (count($_subcategories) > 0): ?>
<ul>
<?php foreach($_subcategories as $_subcategory): ?>
<li class="level1">
<a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>">
<span><?php echo $_subcategory->getName() ?></span>
</a>
</li>
<?php endforeach; ?>
<li><a href="<?php echo $_helper->getCategoryUrl($_category) ?>"><span>Shop all <?php echo $_category->getName() ?></span></a></li>
</ul>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>