Drupal - 在li中添加自定义html到菜单ul?

时间:2011-03-22 21:08:09

标签: drupal drupal-6 drupal-theming

有没有办法编写一些html(就像你在一个块中一样),并将html显示为菜单项?

我的情况是,我想要一些不是链接的文字说“关注我们:”,然后我想要2张图片,这些图片都是twitter和facebook的链接。

菜单html无法执行此操作,因为它需要您编写的任何html作为链接的一部分,并且是该菜单项的相同链接。 http://drupal.org/project/menu_html

我真的希望我添加的html位于菜单列表中。 感谢

UPDATE 代码在评论中不能很好地工作,所以我在这里添加它。这个链接似乎最接近你的建议:

http://api.drupal.org/api/drupal/includes--menu.inc/function/theme_menu_item/6

所以我把它添加到我的template.php:

function localhost_petitpim_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
  $class = ($menu ? 'expanded' : ($has_children ? 'collapsed' : 'leaf'));
  if (!empty($extra_class)) {
    $class .= ' ' . $extra_class;
  }
  if ($in_active_trail) {
    $class .= 'active-trail myactive';
  }
  return '<li class="' . $class . '">' . $link . $menu . "</li>\n";
}

我所做的就是添加一类'myactive',这样我就能看出它是否有效。我的主题名称是'localhost_petitpim'。我刷新了缓存。我的主题设置为“在每个页面上重建主题注册表”。我看不到新的课程被应用了。我做错了什么吗? 感谢

2 个答案:

答案 0 :(得分:0)

不是一个好的解决方案,但它确实有效。

  1. 在菜单中添加两个虚拟菜单。
  2. 通过在theme_menu_link文件中实施phptemplate_menu_link来覆盖template.php方法。
  3. 在您的虚拟条目的phptemplate_menu_link过滤器内,并用您喜欢的任何HTML代码替换它们。

答案 1 :(得分:0)

您只需在tpl.php文件中对文本和链接图像进行硬编码即可。 只需在菜单后面的tpl.php中输入带有所需代码的html块。在菜单和周围创造新的包装如果主题的当前html结构不支持此解决方案,则阻止。块应该向右浮动或以内联方式显示,具体取决于主题的HTML + CSS。

希望这有帮助。