我想要做的事情就像概念一样简单,但我对php和joomla框架并不是那么好。 目前, home 菜单项的生成方式如下:
<li class="item-101 current active">
<a class="hide-text" href="#some-link">Home</a>
</li>
我想要实现的是在 home 菜单项中插入<i>
元素,像这样:
<li class="item-101 current active">
<a class="hide-text" href="#some-link"><i class="icon-home"></i>Home</a>
</li>
我怎样才能做到这一点?我正在使用Joomla! 2.5 atm
我想有可能做类似“如果这个菜单项是主页链接然后在<a>
标签内添加此代码”,但我真的不知道该怎么做,我的php不强够了:P
注意:
我这样做是为了实现一个简单的主页图标而不是litteral home 菜单项。
正如类语法可以建议的那样,我正在使用 twitter bootstrap css-framework,但我已经实现了 Icomoon 字体集(如在joomla中) 3.0)而不是 tbs Glyph-icons sprite图像。
不幸的是,使用基于字体的图标,文本规则也应用于图标,这就是我试图在<a>
标签内插入自定义元素的原因,这样我就可以覆盖隐藏主页图标的hide-text
类。
感谢您的任何建议!
答案 0 :(得分:5)
查看菜单模块的模板文件。
/modules/mod_menu/tmpl/default.php
模板为菜单模块构建HTML。
我刚检查了它在Joomla 2.5中是如何工作的,而在/modules/mod_menu/tmpl/default.php模板中,列表是构建的。如果您只想添加主页链接,则必须添加一些代码。像这样:
if($item->home == '1'){ $item->title = '<i class="icon-home"></i>' . $item->title; };
在foreach循环下插入这个并且有一个go,它应该看起来像这样:
foreach ($list as $i => &$item) :
// THIS ADDS THE <i> to only the HOME LINK
if($item->home == '1'){ $item->title = '<i class="icon-home"></i>' . $item->title; };
$class = 'item-'.$item->id;
if ($item->id == $active_id) {
$class .= ' current';
}
祝你好运;)
答案 1 :(得分:0)
我也一直关注这个指南,(感谢Gruber和Mark Vink)但是使用字形而不是IcoMoon。我发现上面的例子中存在语法错误。版本帽为我工作是
foreach ($list as $i => &$item) {
if($item->home == '1')$item->title = '<span class="glyphicon glyphicon-home" aria-hidden="true"></span>' .$item->title;
$class = 'item-' . $item->id
等...