2011-01-20 96 views
1

我有默認主菜單中的項目列表。我正在嘗試覆蓋模板,以便遍歷每個項目和自定義模板/主題整個菜單。Drupal 7和使用自定義模板的主題()

echo theme('links', array('links' => menu_navigation_links('main-menu', 0))); 

主菜單是drupal提供的默認菜單ID。主題的第一個參數是告訴它使用默認的「鏈接」模板 - 這是我的理解。我如何告訴它使用位於mytheme目錄中的MY mainmenu.tpl.php?

我試圖創建一個名爲mainmenu.tpl.php文件,並

theme('links__mainmenu.tpl.php') 

所以調用它,以提供一個備用默認的情況下,mainmenu.tpl.php鏈接應該每隔消失。我正在命名文件錯誤或什麼,我不能爲我的生活弄清楚。幫助:)

乾杯,亞歷克斯

回答

0

類基本但你的主題實現的基本主題,並且您的主題設置爲默認?

4

模塊的默認主題在hook_theme方法中定義。此功能允許您聲明主題文件(.tpl.php)以及傳遞給它們的變量。要聲明默認主題文件,請使用template字段。

function hook_theme($existing, $type, $theme, $path) { 
    return array(
    'mymodule_display' => array(  /* displayable name */ 
     'template' => 'mymodule_display', /* template file, leave off .tpl.php */ 
     'variable' => array(...),   /* associative array of vars used */ 
    ) 
); 
} 

這個link包含一個更深入的例子。

要調用模塊的默認主題,請使用theme()方法,如原始帖子中所示。例如:

<?php echo theme('mymodule_display', array(/* vars */)); 

雙下劃線用於定義備用主題,最後一個用作首選。因此,theme('links__mymodule_display', ...)意味着只有當mymodule_display不能被解除時,Drupal纔會使用Links模塊主題。