我试图把一个代码放在一起显示子类别的链接。我希望当前活动的类别改变样式。我把下面的代码放在一起,但似乎不能使它正常工作。
$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()来确保返回的值实际上与您试图突出显示的链接相同。