1

我在默认主菜单中有一个项目列表。我正在尝试覆盖模板,因此我可以遍历每个项目和自定义模板/主题整个菜单。

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

main-menu 是 drupal 提供的默认菜单 ID。主题的第一个参数是告诉它使用默认的“链接”模板——我明白这一点。如何告诉它使用位于 mytheme 目录中的 MY mainmenu.tpl.php?

我尝试创建一个名为mainmenu.tpl.php并调用它的文件

theme('links__mainmenu.tpl.php')

以便在mainmenu.tpl.php每个都消失的情况下提供默认链接的后备。我将文件命名错误或其他什么,我一生都无法弄清楚。帮助 :)

干杯,亚历克斯

4

2 回答 2

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 */
    )
  );
}

链接包含更深入的示例。

要调用模块的默认主题,请使用theme()原始帖子中所示的方法。就像是:

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

双下划线用于定义后备主题,首选最后一个。因此,theme('links__mymodule_display', ...)意味着 DrupalLinks只有在mymodule_display无法解析的情况下才会使用模块主题。

于 2011-01-20T18:14:30.280 回答
0

有点基本,但您的主题是否实现了基本主题,您的主题是否设置为默认主题?

于 2011-01-20T18:02:20.983 回答