更改php生成链接的样式



我试图把一个代码放在一起显示子类别的链接。我希望当前活动的类别改变样式。我把下面的代码放在一起,但似乎不能使它正常工作。

$object = new Mage_Catalog_Block_Navigation();
$actualCategoryId = $object->getCurrentCategory()->getId();
$actualCategory = Mage::getModel('catalog/category')->load($parentid);
$subCategories = explode(',', $actualCategory->getChildren());
foreach ( $subCategories as $subCategoryId )
{
    $category = Mage::getModel('catalog/category')->load($subCategoryId);
    if ( $category->getIsActive() )
    {

 {
echo '<li><a href="'.$category->getURL().'" style="text-decoration: none;'.($magentoCurrentUrl == $category->getURL() ? 'color:#fff;' : '').'" >'.$category->getName().'</a> </li>';

}
    }
}

我希望上面的代码将链接更改为白色,如果它是活动的。但是它没有包括颜色样式。然而,如果我改变$magentoCurrentUrl == $category->getURL()$magentoCurrentUrl = $category->getURL()它将改变颜色样式为#fff,但也适用于所有的链接,而不仅仅是活动的一个。

谁能给我指一下正确的方向?

我想你会想使用3个等号:

(($magentoCurrentUrl === $category->getURL()) ? 'color:#fff;' : '')

下面的测试代码产生您正在寻找的效果。下面是我测试的代码:

<!doctype html>
<head>
</head>
<body>
    <?php
        $var1 = "http://location.php";
        $magentoCurrentUrl = "http://location.php";
        $categoryName = "Testing";
        echo '<li><a href="'.$var1.'" style="text-decoration: none;'.(($magentoCurrentUrl === $var1) ? 'color:#fff;' : '').'" >'.$categoryName.'</a> </li>';
    ?>
</body>
</html>

下面是生成的HTML:

<!doctype html>
<head>
</head>
<body>
    <li><a href="http://location.php" style="text-decoration: none;color:#fff;" >Testing</a> </li>
</body>
</html>

我所做的就是插入我自己的变量来代替你的变量和函数调用。这就是为什么我建议您使用var_dump()来确保返回的值实际上与您试图突出显示的链接相同。

相关内容

  • 没有找到相关文章

最新更新