更改php生成链接的样式

时间:2014-05-10 18:22:07

标签: php hyperlink styles

我正在尝试将代码放在一起以显示子类别的链接。 我希望当前活动类别改变样式。我已将以下代码放在一起,但似乎无法使其正常工作。

$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-&gt; getURL() 更改为 $ magentoCurrentUrl = $ category-&gt; getURL()< / em> 它会将颜色样式更改为#fff,但也会将其应用于所有链接,而不仅仅是活动链接。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

我想你会想要使用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()来确保返回的值对于你想要突出显示的链接实际上是相同的。