1

我正在尝试做的概念很简单,但我对 php 和 joomla 框架并不擅长。目前主菜单项是这样生成的:

<li class="item-101 current active">
  <a class="hide-text" href="#some-link">Home</a>
</li>

我想要实现的是主菜单项中插入一个<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 大气压

我想有可能做一些类似“如果这个菜单项是主页链接然后在标签中添加这个代码<a>”但我真的不知道该怎么做,我的 php 不够强大:P

注意:
我这样做是为了实现一个简单的主页图标而不是简单的主页菜单项。
正如类语法所暗示的那样,我正在使用twitter bootstrap css-framework,但我已经实现了Icomoon字体集(如在 joomla 3.0 中)而不是tbs Glyph-icons sprites 图像。
不幸的是,使用基于字体的图标,文本规则也适用于图标,这就是我试图在<a>标签内插入自定义元素的原因,以便我可以覆盖hide-text隐藏主图标的类。

感谢您的任何建议!

4

2 回答 2

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 循环下方并试一试,它应该看起来像这样:

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';
    }

祝你好运 ;)

于 2012-10-25T17:18:49.623 回答
0

我也一直在关注本指南(感谢 Gruber 和 Mark Vink),但使用的是 glyphicons 而不是 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

ETC...

于 2015-08-25T12:58:12.440 回答