我浏览了网络,如何对自定义菜单进行主题设置一点也不明显。我已经寻找了几个小时,却没有发现任何一篇文章可以说明创建菜单和自定义其输出从头到尾的过程。看来这是一个多阶段的过程:
- 通过Drupal界面创建菜单。
- 在
template.php
文件中创建一个主题函数以对输出进行主题化。 - 通过将此菜单添加为变量,使其暴露于模板文件(以某种方式)。
theme
在模板文件中的菜单上调用该函数。
1很容易做到,我遇到的问题是2、3和4。查看默认页面模板,我发现它在变量中公开了主菜单$main_menu
。在页面的后面,您可以看到函数theme('links__system_main_menu', array('links' => $main_menu...
,这意味着它正在某处寻找一个适当命名的主题函数,并使用它来生成输出。
我知道是否将function theme_links__system_main_menu(&$variables) {...}
我的template.php文件放置在Drupal中,而不是使用该功能function theme_menu_links(&$variables) {...}
。
我不知道Drupal是如何链接使用该功能创建的自定义菜单的。例如,假设我创建了一个名为的菜单My Menu
。我可以在template.php
文件中创建以下功能,并以该菜单的输出为主题吗?function theme_links__system_my_menu(&$variables) {...}
另外,如何使该自定义菜单可用于模板文件?Drupal如何将$main_menu
变量公开给page.tpl.php?
我认为我在这里缺少的关键是如何将代表我的自定义菜单的变量嵌入模板页面。尽管在大多数情况下,创建菜单后我完全不知道该做什么。
谢谢您的帮助。
编辑:可能应该发布我在做什么。根据我对下面的BetaRide的评论,我需要将自定义HTML注入<li>
菜单项的元素中。具体来说,我要添加Twitter Bootstrap图标。