10.11 主题函数建议
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们向template.php文件中添加以下代码:
function snt_menu_tree__main_menu($variables) {
我们向template.php文件中添加以下代码:
function snt_menu_tree__main_menu($variables) {
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们这里顺带讲解一下hook_theme和theme_hook之间的区别。在Drupal7下,所有的主题函数,又被称为主题钩子函数,比如
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们回到sites\all\themes\snt文件夹下,在这里面创建文件template.php,这里的template.php,就相当于模块的.module文件,它对于Drupal的主题是非常重要的。我们在template.php文件中,可以做很多事情,比如:
1) 自定义函数,可以放到这里,然后在模板文件中调用,这样模板文件中,就不用放置太多的PHP逻辑代码。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
打开Drupal核心的includes文件夹,在里面找到menu.inc文件,打开这个文件,在这里面可以找到函数theme_menu_tree和theme_menu_link,这两个主题函数用来控制菜单和菜单链接的HTML输出。我们需要对这两个函数进行覆写。
首先来看theme_menu_tree,代码如下:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们在sites\all\themes\snt\templates\override下面创建一个文件夹block,将sites\all\themes\snt\templates里面的block.tpl.php复制过来。我们打开block.tpl.php,在注释里面找到函数template_preprocess_block,通过Google搜索这个函数,点击打开api.drupal.org上面的链接,找到该函数的代码,我们看这一部分:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们的目标就是覆写Drupal的输出,使其与美工所给的输出保持一致。我们首先来看最外面的
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
现在导航到区块管理界面admin/structure/block,找到主菜单区块,我们将它放到Navigation区域,然后将原来的nav区块的区域设置为None,这样我们就使用了主菜单做我们的导航了。调整完了以后,记得点击下面的保存区块按钮。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们导航到admin/structure/menu,在这里找到主菜单,进入它的菜单链接列表页面admin/structure/menu/manage/main-menu。