通过代码打击我检索当前的父类别和他的孩子。是否可以为当前孩子添加活动课程?
<?php
$currentCat = Mage::registry('current_category');
if ( $currentCat->getParentId() == Mage::app()->getStore()->getRootCategoryId() )
{
$loadCategory = $currentCat;
}
else
{
$loadCategory = Mage::getModel('catalog/category')->load($currentCat->getParentId());
}
$subCategories = explode(',', $loadCategory->getChildren());
foreach ( $subCategories as $subCategoryId )
{
$cat = Mage::getModel('catalog/category')->load($subCategoryId);
if($cat->getIsActive())
{
echo '<li><a href="'.$cat->getURL().'">'.$cat->getName().'</a></li>';
}
}
?>
答案 0 :(得分:1)
您已拥有当前类别,因此您可以根据要循环播放的类别的ID检查其ID。
你在哪里
echo '<li><a href="'.$cat->getURL().'">'.$cat->getName().'</a></li>';
更改它以检查ID,然后在找到时添加“活动”类
$class = '';
if ($currentCat->getId() == $cat->getId())
{
$class = ' class="active"';
}
echo '<li'.$class.'><a href="'.$cat->getURL().'">'.$cat->getName().'</a></li>';
答案 1 :(得分:0)
要将类别设置为活动,我们必须在目录层中设置当前类别。
$_categoryName=YourCategoryName;
$_category = Mage::getModel('catalog/category')->loadByAttribute('name', $_categoryName);
Mage::getSingleton('catalog/layer')->setCurrentCategory($_category);
这看起来比改变phtml过滤器的丑陋黑客好看。