簡體   English   中英

Drupal主題預處理功能 - 主要鏈接

[英]Drupal theme preprocess function - primary links

我最近編寫了一個主題函數,將一個類添加到我的主要鏈接中。 然后我寫了一些css類來設置這些鏈接與自定義背景圖像的樣式。 工作得很好。 現在問題出現了,仍然顯示主鏈接的鏈接文本。 通常這不是問題,因為我只需用自定義“隱藏”類包裝。 例如:

<span class="hide"><a href="#">Link Text</a></span>

所以我的問題是如何循環主鏈接並用像我的例子一樣用<span>包裝文本? 這是我用來添加課程的主題函數。

function zkc_preprocess_page(&$vars, $hook) {

// Make a shortcut for the primary links variables
  $primary_links = $vars['primary_links'];
// Loop thru the menu, adding a new class for CSS selectors
    $i = 1;

    foreach ($primary_links as $link => $attributes){
        // Append the new class to existing classes for each menu item
        $class = $attributes['attributes']['class'] . " item-$i";
        // Add revised classes back to the primary links temp variable
        $primary_links[$link]['$attributes']['class'] = $class;
        $i++;
        } // end the foreach loop

// reset the variable to contain the new markup
$vars['primary_links'] = $primary_links;

}

jQuery是一個選項嗎?

嘗試這樣的事情:

$(document).ready(function(){
  $('#primary li a')
  .wrapInner('<span class="hide">' + '</span>');
});

編輯:

或者如果你想去Drupal,把這個人放在你的foreach循環中:

$link['title'] = '<span class="hide">' . check_plain($link['title']) . '</span>';

如果您只想隱藏鏈接文本,為什么不使用text-indent: -9999px;

用於改變菜單鏈接輸出的正確方法可以在主題層完成。 你在使用預處理鈎子的正確道路上,但還有一點。

有關更多信息,請參閱此處:

http://drupal.org/node/352924#comment-1189890

http://api.drupal.org/api/function/theme_links/6

錯字?

$primary_links[$link]['$attributes']['class'] = $class;

應該讀;

$primary_links[$link]['attributes']['class'] = $class;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM