欢迎各位兄弟 发布技术文章
这里的技术是共享的
1 2 3 4 5 | <?php if (!empty($primary_links) || !empty($secondary_links)): ?> <div id="navigation"><div class="section"> <?php if (!empty($primary_links)){ print theme('links', $primary_links, array('id' => 'primary', 'class' => 'links main-menu')); } ?> </div></div> <!-- /.section, /#navigation --> <?php endif; ?> |
但是,使用这样的方法调用自定义的菜单是不行。
现在以本站为例来说明一下调用的方法:
萃图网站当前的主题名称为:cuitu_net ;创建自定义的菜单名称为:menu-utility (注:在添加菜单admin/build/menu/add时,只要在菜单标题:项输入“utility”就可以了,“menu-”是Drupal自动添加的)。
具体方法:
在当前主题的 template.php 文件添加(如果已经有这相函数,则无需再添加)一个 function cuitu_net_preprocess_page(&$vars, $hook) { }函数,然后在函数中添加如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | function cuitu_net_preprocess_page(&$vars, $hook) { //添加个自定义菜单变量 //我们对已登录和未登录用户分别进行了缓存,提高网站性能。 global $user; $menu_utility_cache = $user->uid ? cache_get("menu_utility") : cache_get("menu_utility_anon") ; if($menu_utility_cache) { $menu_utility = $menu_utility_cache->data; } else { $menu_utility = menu_navigation_links('menu-utility'); if ($user->uid) { foreach($menu_utility as $key => $item) { if ($item['href'] == 'user') { $menu_utility[$key]['title'] ='我的帐号'; } } } $attributes = array( 'id' => 'user-menu', 'class' => 'links' ); $menu_utility = theme('links',$menu_utility, $attributes); cache_set( $user->uid ? "menu_utility" : "menu_utility_anon" , $menu_utility); } $vars['menu_utility'] = $menu_utility;} |
然后在主题文件中调用 $menu_utility 变量即可,如下:
1 | <?php print $menu_utility; ?> |