我正在尝试将代码放在一起以显示子类别的链接。 我希望当前活动类别改变样式。我已将以下代码放在一起,但似乎无法使其正常工作。
$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,但也会将其应用于所有链接,而不仅仅是活动链接。
有人能指出我正确的方向吗?
答案 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()来确保返回的值对于你想要突出显示的链接实际上是相同的。