2009-07-29 126 views
1

我想我在Drupal主要鏈接看起來像這樣的代碼:添加圍繞各主要項目<span>標籤的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> 

這樣我就可以再風格spana分開。

(我知道這聽起來像一個稍顯陌生的事情,但它與周圍IE的缺乏再加上不能設置2個背景圖像邊界半徑支持工作要做。)

所以你知道&如何讓Drupal在我的所有主鏈接中插入這些標籤?

回答

2

我猜,在某處你page.tpl.php,你有這樣的事情,以顯示主菜單:

print theme('links', $primary_links, array('class' => 'links primary-links')); 

一個解決方案(可能不是最乾淨的一個 - 但應該工作)會是迭代上的$primary_links的元素,於,每一個,:

  • 激活HTML模式
  • 包住title<span></span>

如果你的菜單隻有一個級別,我想這會做:

foreach ($primary_links as & $link) { 
    $link['html'] = true; 
    $link['title'] = '<span>' . $link['title'] . '</span>'; 
} 

而且,在這之後,你可以調用theme就像你現在已經在做。

就這樣,你應該得到<span>標籤角落找尋鏈接的文本,而無需他們在<a>標籤的title的屬性注入。


我在菜單中有更多關卡,您將不得不向下重複;要麼使用兩個疊加的循環,要麼使用某種遞歸,如果您不知道菜單的深度。
(我會讓你有覺得好玩,我說應該足以讓你開始;-))


一點題外話,這或許可以做某處template.php太...可能是一個更好的地方;但我會讓你決定你喜歡哪種解決方案...


玩得開心!

+0

這真的很接近 - 感謝指引我朝着正確的方向。最後,我不得不編輯`$ primary_links_tree`,因爲我的主題是使用它來製作菜單而不是`$ primary_links`。足夠接近作爲我認爲的答案:) – x3ja 2009-07-30 08:59:05

+0

不客氣:-)確定關於變量的名稱:我從花環的默認主題,並沒有考慮說它可能需要一些tunning ^^ – 2009-07-30 10:52:58

0

爲了記錄,最後我剛剛使用了menu_html module,並在相關對話框中輸入了菜單項<span>Menu Item 1</span>

事實上,我最終在<span><span>Menu Item Expanded</span></span>之一,因爲它已經擴大,並已經有一個背景圖像集。它現在有3!

至少我的標籤上的彎曲的角落現在在IE中工作。另一次,IE瀏覽器泡了5/6小時,因爲它不能正確支持CSS!