0

通过代码打击,我检索了当前的父类别和他的孩子。是否可以为当前孩子添加一个活动课程?

<?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>';
        }
     }
?>
4

2 回答 2

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>';
于 2012-10-03T22:13:26.073 回答
0

要将类别设置为活动类别,我们必须在目录层中设置当前类别。

$_categoryName=YourCategoryName;

$_category = Mage::getModel('catalog/category')->loadByAttribute('name', $_categoryName);
Mage::getSingleton('catalog/layer')->setCurrentCategory($_category);

这看起来比改变 phtml 过滤器的丑陋黑客要好。

于 2013-09-13T14:37:14.803 回答