< span>を追加していますDrupalの各主要アイテムの周りのタグ
-
05-07-2019 - |
質問
Drupalのプライマリリンクをコードで次のように表示したい:
<a class="active" title="Go to the Foo Homepage" href="/"><span>Home</span></a>
ではなく:
<a class="active" title="Go to the Foo Homepage" href="/">Home</a>
したがって、 a
とは別に span
のスタイルを設定できます。
(やや奇妙なことに聞こえるかもしれませんが、2つの背景画像を設定できないことと相まって、IEの境界半径サポートの欠如を回避することに関係しています。)
だから、どこで&amp; Drupalにこれらのタグをすべてのプライマリリンクに挿入させる方法
解決
page.tpl.php
のどこかに、プライマリメニューを表示する次のようなものがあると思います:
print theme('links', $primary_links, array('class' => 'links primary-links'));
1つの解決策(最もクリーンなものではないかもしれませんが、動作するはずです)は、 $ primary_links
の要素を繰り返し処理することです:
- HTMLモードを有効にする
-
&lt; span&gt;
と&lt; / span&gt;
で
title
をラップします
メニューのレベルが1つしかない場合、これはそうなると思います:
foreach ($primary_links as & $link) {
$link['html'] = true;
$link['title'] = '<span>' . $link['title'] . '</span>';
}
そして、その後、すでにやっているように theme
を呼び出すことができます。
それにより、&lt; span&gt;
タグをリンクのテキストの周りに取得し、の
タグ。 title
の属性に挿入する必要はありません。 &lt; a&gt;
メニューに複数のレベルがある場合、さらに下に反復する必要があります。 2つの重なり合ったループを使用するか、メニューの深さがわからない場合は何らかの再帰を使用します。
(それを楽しんでみましょう。私が言ったことはあなたを始めるのに十分なはずです;-))
補足として、これはおそらく template.php
のどこかで行うことができます...より良い場所かもしれません。しかし、私はあなたがどちらの解決策を好むか決めることができます...
楽しんでください!
他のヒント
これは、 http://drupal.org/node/221382
に役立つはずです。最終的な解決策については、このコメントまで下にスクロールしてください http://drupal.org/node/ 221382#comment-755469 。 html出力に問題があり、そこで解決されています。
記録のために、最後に menu_htmlモジュールを使用し、メニュー項目を次のように入力しました。関連するダイアログの&lt; span&gt;メニュー項目1&lt; / span&gt;
。
実際には、展開されて既に背景画像があったため、そのうちの1つで&lt; span&gt;&lt; span&gt; Menu Item Expanded&lt; / span&gt;&lt; / span&gt;
になりましたセット。現在3つあります!
少なくともタブの曲線コーナーはIEで動作します。 IEがCSSを適切にサポートしていないという理由だけで、IEが5/6時間浸るのはもう1回です!