【问题标题】:Drupal - Add custom html in li to menu ul?Drupal - 将li中的自定义html添加到菜单ul?
【发布时间】:2011-03-22 21:08:08
【问题描述】:

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

我的情况是,我想要一些不是链接的文本来表示“关注我们:”,然后我想要 2 张图片,它们都是 twitter 和 facebook 的链接。

Menu html 不能这样做,因为它要求您编写的任何 html 都是链接的一部分,并且是该菜单条目的相同链接。 http://drupal.org/project/menu_html

我真的希望我添加的 html 出现在菜单列表中。 谢谢

更新 代码在 cmets 中不能很好地工作,所以我在这里添加它。此链接似乎与您的建议最接近:

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”。我刷新了缓存。我的主题设置为“在每一页上重建主题注册表”。我看不到正在应用的新课程。我做错了什么吗? 谢谢

【问题讨论】:

    标签: drupal drupal-6 drupal-theming


    【解决方案1】:

    您可以在 tpl.php 文件中简单地对文本和链接图像进行硬编码。 只需在菜单后的 tpl.php 中放置带有所需代码的 html 块。如果您的主题的当前 html 结构不支持此解决方案,请围绕菜单和块制作新的包装器。块应根据主题的 HTML+CSS 向右浮动或内联显示。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我该怎么做?这个链接说的是同一件事吗?:computerminds.co.uk/adding-custom-markup-drupal-menu-items
      • 是的,它使用相同的主题挂钩来调整菜单项的最终 html 输出。
      • 我对此进行了一些研究,我知道它非常标准的高端 Drupal 主题,但我很困惑。有没有办法让标准代码进入覆盖,所以我可以看到我想要添加什么?它没有看到让我感到困惑的标准代码,因为我不知道 Drupal 是如何生成这些东西的。谢谢
      • 是的,这很简单,实际上是一个很好的起点。将 theme_menu_link 方法复制到您的 template.php 文件中,并将其重命名为 phptemplate_menu_link。不,您必须重置主题注册以告诉 Drupal 调用您复制的实现,请参阅drupal.org/node/337176
      • 如果您愿意,我们还提供付费 Drupal 支持。
      猜你喜欢
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2012-10-24
      • 1970-01-01
      相关资源
      最近更新 更多