欢迎各位兄弟 发布技术文章
这里的技术是共享的
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 ; ?> |