渲染主菜单在page.tpl.php中,使用template.php的覆盖 -- routes 领域 和 theming 领域 drupal 相关 的问题

Render main menu in page.tpl.php, with override from template.php


4
vote

问题

中文

在Drupal 7中,我正在尝试在主菜单中添加 99887662 标记中的 <span> 标记,但它只适用于"导航" 但是,这是一个块的菜单,我正在尝试在page.tpl.php

中渲染它

我现在一直在寻找一段时间,似乎无法努力工作。 我试图遵循如何插入&lt; span&gt; &lt; / span&gt;在&lt; a&gt内部的标记。 &lt; / a&gt;在我的主菜单上标记

这是 page.tpl.php

的片段
    <nav id="main-menu" class="navigation span8">     <?php print theme('links__system_main_menu', array(       'links' => $main_menu,       'attributes' => array(         'id' => 'main-menu-links',         'class' => array('links', 'clearfix'),       ),       'heading' => array(         'text' => t('Main menu'),         'level' => 'h2',         'class' => array('element-invisible'),       ),      )); ?>   </nav> <!-- /#main-menu -->   

template.php

  function THEMENAME_menu_link(array $variables) {   $element = $variables['element'];   $sub_menu = '';  //$element['#attributes']['class'][] = 'menu-' . $element['#original_link']['mlid'];  $get_title= $element['#title']; $element['#title']='<span>' . $get_title .' </span>';  $element['#localized_options'] += array(     'attributes' => array(),      'html' => TRUE,   );    if ($element['#below']) {     $sub_menu = drupal_render($element['#below']);   }   $output = l($element['#title'], $element['#href'], $element['#localized_options']);   return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li> "; }   
英文原文

In Drupal 7, I'm trying to add a <span> tag inside the <a> tag of an item in the Main Menu, but it only works for the 'Navigation' menu which is a block, however, I am trying render it within page.tpl.php

I've been searching this up for a while now and can't seem to get it to work. I was attempting to follow the information from How do I insert a <span> </span> tag inside the <a> </a> tag on my main menu

Here's a snippet from page.tpl.php

  <nav id="main-menu" class="navigation span8">     <?php print theme('links__system_main_menu', array(       'links' => $main_menu,       'attributes' => array(         'id' => 'main-menu-links',         'class' => array('links', 'clearfix'),       ),       'heading' => array(         'text' => t('Main menu'),         'level' => 'h2',         'class' => array('element-invisible'),       ),      )); ?>   </nav> <!-- /#main-menu --> 

and from template.php

function THEMENAME_menu_link(array $variables) {   $element = $variables['element'];   $sub_menu = '';  //$element['#attributes']['class'][] = 'menu-' . $element['#original_link']['mlid'];  $get_title= $element['#title']; $element['#title']='<span>' . $get_title .' </span>';  $element['#localized_options'] += array(     'attributes' => array(),      'html' => TRUE,   );    if ($element['#below']) {     $sub_menu = drupal_render($element['#below']);   }   $output = l($element['#title'], $element['#href'], $element['#localized_options']);   return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n"; } 
     

回答列表

6
 
vote
vote
最佳答案
 

您需要覆盖的函数是 theme_links()和要执行此操作,只需使用 mytheme_links__system_main_menu 作为函数名称。要添加跨度标记,您可以修改以 if (isset($link['href']))

的部分修改部分
  if (isset($link['href'])) {   // Pass in $link as $options, they share the same keys.   $link['html'] = TRUE;   $output .= l('<span>'. check_plain($link['title']) .'</span>', $link['href'], $link); }   
 

The function you need to override is theme_links() and to do that just for the main menu you can use mytheme_links__system_main_menu as the function name. To add span tags you can then modify the part that starts with if (isset($link['href'])):

if (isset($link['href'])) {   // Pass in $link as $options, they share the same keys.   $link['html'] = TRUE;   $output .= l('<span>'. check_plain($link['title']) .'</span>', $link['href'], $link); } 
 
 
0
 
vote

您可以尝试主题_menu_link__main_menu(数组$变量)

  function THEMENAME_menu_link__main_menu(array $variables) {   $element = $variables['element'];   $sub_menu = '';  //$element['#attributes']['class'][] = 'menu-' . $element['#original_link']['mlid'];  $get_title= $element['#title']; $element['#title']='<span>' . $get_title .' </span>';  $element['#localized_options'] += array(     'attributes' => array(),      'html' => TRUE,   );    if ($element['#below']) {     $sub_menu = drupal_render($element['#below']);   }   $output = l($element['#title'], $element['#href'], $element['#localized_options']);   return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li> "; }   
 

You could try THEME_menu_link__main_menu(array $variables)

function THEMENAME_menu_link__main_menu(array $variables) {   $element = $variables['element'];   $sub_menu = '';  //$element['#attributes']['class'][] = 'menu-' . $element['#original_link']['mlid'];  $get_title= $element['#title']; $element['#title']='<span>' . $get_title .' </span>';  $element['#localized_options'] += array(     'attributes' => array(),      'html' => TRUE,   );    if ($element['#below']) {     $sub_menu = drupal_render($element['#below']);   }   $output = l($element['#title'], $element['#href'], $element['#localized_options']);   return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n"; } 
 
 

相关问题

3  L()在菜单中没有正确调用  ( L is not being called correctly in menu inc ) 
我一直在收到此错误消息: php致命错误:orvar/www.ruv.is/pressflow/includes/common.inc在线1588中的不受支持的操作数类型 所以我做了一个回溯,这就是它返回的东西: 大批 ( '文件'=&gt; 'pressflow /包含/ menu.in...

1  识别项目数组中的菜单项级别?  ( Identifying the level of menu items in the item array ) 
我在3级层次结构中有一个近300个术语的D7菜单。我想使用代码生成它们,而不是在UI中的一次生成一个。我正在使用这本书'pro drupal开发'和menus和menus的drupal api文档来尝试这一点,但我对如何建立三层的结构。 创建菜单项似乎是相当简单的,实现钩菜单和创建项目阵列,其中值分配给"标题" ,"...

1  “预期参考为参考,值为”菜单页面回调中的错误“  ( Parameter expected to be reference value given error in menu page callback ) 
我有一个自定义模块,通过菜单项添加耦合动作链接: function monographs_menu() { $items['node/%node/clone_comment'] = array( 'access callback' => 'clone_access_cloning', 'acc...

1  编辑Links__System_Main_Menu中链接显示的顺序  ( Edit the order of link appearances in links system main menu ) 
我通过drupal 7 web界面设置了设置链接,但我正在尝试通过代码更改链接显示的顺序。例如,目前我有: ABOUT US CONTACT US HOME THE PRODUCT 订单显然不正确,但我找不到一种方法来编辑PHP代码以编辑这些链接的外表的...

2  在Nody Body中创建选项卡[已关闭]  ( Create tabs inside nody body ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

1  用户页面上的选项卡不会显示出来  ( Tab on user page doesnt show up ) 
我不知道我做错了什么,但原因是用户页面上的标签不会出现! 我有三个选项卡,我将自己放在自定义模块中,它们ok ..但现在尝试使用我没有工作的原理。 以下是我的代码!任何建议? $items=array(); $items['user/%user/mysite-news'] = array( 'title'...

3  在Drupal网站中编程自定义重定向  ( Programming a custom redirect in a drupal site ) 
我想知道设置Drupal重定向过程的最佳选择是看当前一天的当前时间,然后根据此信息将用户重定向到页面? 因为在Drupal之前我不得不这样做,我正在寻找关于如何与用户从菜单项开始操作的一个或两个建议。 一个想法是我有的是我可以创建一个页面,它是php内容并确定那里的重定向,但我不确定如何在该位置代码。 也,我不确定我...

2  显示菜单项作为第二级更深入。 (显示为扩展实际上不会展开菜单项)  ( Display menu items deeper as second level show as expanded doesnt actually ex ) 
我有一个菜单,需要深度3级。最后一级从未出现过。所有菜单项都设置为"显示为扩展" 。但如果去看李某物品的HTML,可以看到 <li class="collapsed" >menuitemname </li> 此问题发生在Bartik以及 b2nature (网站应该去的那个) 请记住,我真的确实确定在菜单配置下...

0  在块中创建动态链接  ( Create dynamic links in block ) 
如何创建具有多个动态链接的块?如果URL是 http://www.domain.com/series/bomberman-jetters/node/add/gallery/82 则依赖于您查看的节点来变化82。 另一个链接 http://www.domain.com/series/bomberman-jetters...

1  将现有路径添加到Admin菜单中的链接是什么?  ( What would be the correct way of adding a link to existing path into admin menu ) 
将链接添加到菜单的正确方法是什么?我正在使用Drupal 7和Admin菜单模块。我想添加一个链接到内容菜单项,所以它将是 内容 内容 添加内容 评论 我创建了一个自定义模块,在我放入的菜单挂钩中: $items['admin/content/add'] = null; 然后在menu_alte...

2  在hook_menu中加载特定的引导模式  ( Loading specific bootstrap mode in hook menu ) 
有一种方法可以为hook_menu URL定义特定的引导模式(MENU_CALLBACK)? 我只是希望请求返回给我一个简单的查询在json中,我不需要在全模式下加载Drupal Bootstrap,损坏响应性能。 谢谢! ...

0  麻烦制作动态链接  ( Trouble making dynamics links ) 
我有两个我想要放入块的动态链接,例如, http://example.com/series/bomberman-jetters/node/add / Gallery / 82 ("系列" 是内容类型,"Bomberman jetters" 是节点标题), http://example.com/series/bomb...

6  下拉菜单虚拟链接  ( Dropdown menu dummy link ) 
我的菜单项我有一个,我想制作它,以便只能点击子链接,父级不是。有没有办法制作父母一种"钝眼链接" 只是为了为菜单设置层次结构? ...

16  Drupal 7中的高级菜单主题  ( Advanced menu theming in drupal 7 ) 
我已经在网上巡航,它根本并不明显主题定制菜单。我看了几个小时,尚未找到一个单个帖子,说明过程从开始完成,创建菜单并自定义其输出。似乎这是一个多阶段的过程: 通过drupal界面创建菜单。 在 template.php 文件中创建主题函数,以主题输出。 通过将其作为变量添加到模板文件(某种方式)将此菜单暴露给模板文件...

1  ack_menu()项甚至在MENU_LINKS和MENU_ROUTER表中都存在于主要链接中  ( Hook menu item is not showing in primary links even it exist in menu links and ) 
我在我的模块中使用 hook_menu() 在主链接中定义了一个菜单项。 我刷新了缓存并刷新了模块页面,但项目未在主链接中显示。 我检查了Menu_Links和Menu_Router表,并将项目定义为它们。 function mymodule_menu() { $items['newuser'] = arr...

2  钩菜单()和menu_link_save()之间的关系是什么?  ( What is the relationship between hook menu and menu link save ) 
我正在尝试使用d7中的代码创建菜单(查看我的相关问题)并发现这两个Drupal API函数对于$ Item变量具有不同的数组。我的意图是创建一个三级菜单层次结构,但是所有相关路径都是相同的格式 99887664 ,因此我可以使用视图来改进内容。在钩菜单中,父母使用路径名定义(例如, 99887665 )。在MENU_...

1  Drupal菜单回调创建节点权限  ( Drupal menu callback create node permissions ) 
我正在创建一个小菜单,其中我想在是身份验证的用户时访问菜单项。 所以我让我允许经过身份验证的用户创建类型"捐赠" 的节点,但我将如何在菜单中制定它的Acces参数? $items['donate/%'] = array( 'title' => 'Donate', 'page callback' =...

3  创建字母的寻呼机  ( Create alphabetical pager ) 
我想列出与本网站的字母标题的所有帖子: 如何使用视图使用drupal 7来执行此操作? ...

1  面板的上下文未激活自定义菜单项  ( Context for panel not activating for custom menu item ) 
我正在从我在模块中创建的自定义菜单项加载组节点。我创建了自定义菜单项的原因是因为我想要使用与与节点关联的不同的路径。 我有一个带有选择规则的面板,设置为所有组节点。自定义菜单项工作并加载组节点,但是,面板未被激活。我认为这与我加载来自我的hook_menu函数的方式是有关的,这阻止了上下文被激活。我使用的代码是: ...

1  主菜单的上下文链接  ( Contextual links for main menu ) 
Hello Drupal爱好者, 任何想法为什么在我的主题中我看不到左菜单的上下文链接的齿轮图标?启用了模块,我看到它们有关面板中使用的视图和块。但在左侧菜单中,主要导航在线,它们不会显示。切换回默认主题 - 它们是,切换到我的主题 - 消失。 任何帮助? ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.