我正在使用Magento Porto主题,需要左侧类别导航(category_nav.html)才能在子子类别页面上显示。我设法让它显示在子子类别页面上,但无法弄清楚如何通过那里。
这是我目前的代码:
<?php
$_categories = Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('level', 2)
->addAttributeToFilter('is_active', 1);
?>
<?php $_count = is_array($_categories)?count($_categories):$_categories->count(); ?>
<?php
function cmpCatPosition($a, $b) {
if ($a->position == $b->position)
return 0;
return ($a->position > $b->position) ? 1 : -1;
}
function getChildrenCategoriesHtml($_category){
$children = explode( ",", $_category->getChildren() );
//usort($children, 'cmpCatPosition');
$content = '';
$content .= '<li class="';
if(!$children[0])
$content .= 'has-no-children';
else
$content .= 'has-children';
$content .= '">';
$content .= '<a href="'.$_category->getUrl().'" ';
$content .= '>'.$_category->getName().'</a>';
if($children[0]){
$content .= '<a href="javascript:void(0)" class="plus"><i class="icon-plus-squared"></i></a>';
$content .= '<ul>';
foreach($children as $child){
$_subcat = Mage::getModel( 'catalog/category' )->load( $child );
$content .= getChildrenCategoriesHtml($_subcat);
}
$content .= '</ul>';
}
$content .= '</li>';
return $content;
}
?>
<?php if($_count): ?>
<div class="block block-category-nav">
<div class="block-title">
<strong><span><?php echo Mage::registry('current_category')->getName(); ?></span></strong>
</div>
<div class="block-content">
<ul class="category-list">
<?php foreach ($_categories as $_category): ?>
<?php
if($_category->getIsActive()){
echo getChildrenCategoriesHtml($_category);
}
?>
<?php endforeach ?>
</ul>
</div>
</div>
答案 0 :(得分:0)
我制作的代码实际上有效。我只是错过了在后端添加“Is Anchor - &gt; Yes”。
有一个代码可以在全球范围内完成,但是我希望控制什么是节目,什么不显示,因此在锚点上选择是/否可以解决问题。
这是(毕竟把我的头发拉到试图使它工作)不是一个编程问题。