2009-12-09 33 views
2

我在Drupal中構建網站,我只想在使用我創建的視圖的 頁面上顯示次要鏈接。我嘗試在views-view.tpl.php中使用$ secondary_links變量 ,但變量爲空。我怎樣才能做到這一點?僅在視圖中顯示次要鏈接

回答

0

您是否從主題設置中激活了輔助鏈接?這將是:

http://example.com/admin/build/themes/settings/name_of_your_theme

我相信一旦你激活的選項,變量將被填充。

編輯:思考秒多,我也評論說,我不知道,如果第一和第二鏈路傳遞到視圖模板。我相信這些文件將被傳遞給page.tpl.php文件。如果我是正確的,並且出於某種原因,您希望將該變量添加到傳遞給視圖模板的變量,那麼您將不得不使用預處理函數,如解釋here

編輯#2:事實上,如果您只需要在特定視圖模板中使用二級菜單,另一種方法是從模板中簡單呼叫menu_secondary_links()。這並不是最優雅的解決方案,因爲它放置了一個應該屬於其他位置的主題元素,但是視圖中的菜單是核心功能還是樣式元素,由您來決定。

HTH!

+0

你好。是的,你是正確的,因爲看起來我只能在page.tpl.php中使用$ secondary_links變量,但我只想在我的視圖中使用它。我想我可能不得不使用預處理功能,但是因爲我對此很陌生,所以我認爲我會確保沒有更簡單的選項。 – screenm0nkey 2009-12-09 15:37:28

+0

我更新了我的答案,提示了一種更簡單的方法來獲取菜單在模板中。 – mac 2009-12-09 15:41:15

+0

嗨,Mac,你的第二個答案工作得很好。起初,我不知道如何讓menu_secondary_links()打印出來,然後我意識到我可以使用'print theme()'函數來使它工作。它顯示很棒。 非常感謝你的確。 – screenm0nkey 2009-12-09 16:20:34

1

輔助鏈接正如mac正確寫入只在page.tpl.php中可用,但如果我正確理解你,最好的解決方案是沒有獲得輔助鏈接到你的視圖。

隨着你的主題,次要鏈接將很可能被打印出他們應該在哪裏,無論顯示什麼,無論是你的意見,節點,頭版等等。視圖被顯示,你呈現的一切,包裹在頁面模板中,控制菜單的位置,區域和其他有趣的東西。

現在,如果你不想改變這個,菜單的位置,他們的樣式和這些東西,你不應該在你的視圖模板中打印二級菜單,你不應該做任何事情它根本就沒有。

解決方法很簡單
它使用的東西,MAC提及,但以不同的方式:預處理功能。這些函數用於你的template.php文件中,爲你的變量添加一些邏輯。你可以改變變量或完全刪除它們。我想要做的只是刪除主鏈接,將$primary_links的值設置爲空的文本字符串。
這將有效地刪除主鏈接,因此只顯示輔助鏈接。您也可以將輔助鏈接顯示爲主要鏈接,但這可能會導致用戶感到困惑。您只需添加一些邏輯來控制何時發生這種情況並設置好。

+0

嗨googletorp,我只想在我的視圖頁面顯示輔助導航,但Mac的建議在views.tpl.php中使用menu_secondary_links()完美工作,目前它比使用預處理函數更容易,因爲我剛剛開始使用Drupal。非常感謝您的幫助。 – screenm0nkey 2009-12-09 16:25:19

0

您可以使用下面的代碼顯示在任何視圖

function YourTheme_preprocess_views_view(&$vars) 
{ 
    $menu_sec = menu_navigation_links('menu-secondary'); 
    $vars['custom_menu'] = theme('links__menu-secondary', array('links' => $menu_sec)); 
} 

二級菜單中,你甚至可以使用其他預處理功能,這取決於你的需求。

此外,你可以打電話給.tpl。php文件使用:

<?php 
    $menu_sec = menu_navigation_links('menu-secondary'); 
    print theme('links__menu-secondary', 
     array(
      'links' => $menu_sec, 
      'attributes'=>array(
       'class' => array('nav', 'nav-pills', 'p-f-subfilter'), 
      ) 
     ) 
    ); 
?>