我需要在Magento中自定义Navigation.php的帮助。我正在使用Superfish创建顶级导航栏,如果没有选择其他选项卡,则始终打开第一个选项卡(此Superfish导航栏示例具有第二个选项卡作为默认设置:http://users.tpg.com.au/j_birch/plugins/superfish/#sample4)Magento Top Nav:使用PHP向第一类添加CSS类
但是,由于Magento使用PHP生成顶级菜单,我需要使用PHP插入CSS类sfHover。
这是Magento的使用的CSS类插入顶部导航链接代码:
$classes = array();
$classes[] = 'level' . $level;
$classes[] = 'nav-' . $this->_getItemPosition($level);
if ($this->isCategoryActive($category)) {
$classes[] = 'active';
}
$linkClass = '';
if ($isOutermost && $outermostItemClass) {
$classes[] = $outermostItemClass;
$linkClass = ' class="'.$outermostItemClass.'"';
}
if ($isFirst) {
$classes[] = 'first';
}
if ($isLast) {
$classes[] = 'last';
}
if ($hasActiveChildren) {
$classes[] = 'parent';
}
这是Magento的使用,以确定在顶部导航每个类别的职位代码:
protected function _getItemPosition($level)
{
if ($level == 0) {
$zeroLevelPosition = isset($this->_itemLevelPositions[$level]) ? $this->_itemLevelPositions[$level] + 1 : 1;
$this->_itemLevelPositions = array();
$this->_itemLevelPositions[$level] = $zeroLevelPosition;
} elseif (isset($this->_itemLevelPositions[$level])) {
$this->_itemLevelPositions[$level]++;
} else {
$this->_itemLevelPositions[$level] = 1;
}
$position = array();
for($i = 0; $i <= $level; $i++) {
if (isset($this->_itemLevelPositions[$i])) {
$position[] = $this->_itemLevelPositions[$i];
}
}
return implode('-', $position);
}
我试过以下添加我的CSS类:
if ($this->_getItemPosition($level) == "1") {
$classes[] = 'sfHover';
}
和
if ($position == "1") {
$classes[] = 'sfHover';
}
但他们都没有工作,无论是与三个等号===或单引号。
有没有人比我有更多的Magento/PHP知识知道我能做什么?提前致谢!
更新:Superfish脚本去掉sfHover类。需要将“主动”类添加到Navigation.php中。
我可以在手动编码导航下面的代码做在top.phtml:
<?php $_anyActive = false; foreach ($this->getStoreCategories() as $_category) { $_anyActive = $_anyActive || $this->isCategoryActive($_category); } ?>
<li class="level0 nav-1 level-top first parent <?php echo !$_anyActive ? 'active' : '' ?>">
但我不知道如何集成了从Navigation.php ...
代码
1.该导航高度缓存,因此请确保在进行更改后清除缓存。 2.当你var_dump($ position)时会发生什么; – 2012-03-07 18:45:45
1.每次我对文件进行更改时,我一直在清除缓存。 2.我会尝试var_dump。我以前从来没有做过。谢谢! – mercyt 2012-03-07 19:11:24
更新:尝试做一个var_dump,它返回的是“null”。我不确定我是否正确使用它,但尝试了两种不同的方法,但仍然无法正常工作。 – mercyt 2012-03-07 19:26:40