将活动类添加到当前子类别

时间:2012-10-03 11:26:55

标签: php magento

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

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

2 个答案:

答案 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过滤器的丑陋黑客好看。