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 ブートストラップcss フレームワークを使用していますが、 tbs Glyph-iconsスプライト画像 の代わりに (joomla 3.0 のように) Icomoonフォント セットを実装しました。残念ながら、フォントベースのアイコンを使用すると、アイコンにもテキスト ルールが適用されます。そのため、ホーム アイコンを非表示にするクラスをオーバーライドできるように、タグ内にカスタム要素を挿入しようとしています。

<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 に答える