【问题标题】:adding id to a tag in drupal's primary menu将 id 添加到 drupal 主菜单中的标签
【发布时间】:2010-12-24 19:16:17
【问题描述】:

我想将 id 标签添加到主链接菜单.. 它应该看起来像这样:

<li><a id="home" href="#">Home</a></li>
<li><a id="about" href="#">About</a></li>
<li><a id="contact" href="#">Contact</a></li>

目前只是

<li><a href="/test/drupal/content/home">Home</a></li>
<li><a href="/test/drupal/content/about">About</a></li>
<li><a href="/test/drupal/content/contact">Contact</a></li>

把地址改成“#”可以用url别名吗?

我只想在创建主菜单时向 l() 添加属性,简而言之就是......

有什么建议吗? 我应该编辑任何文件或创建新功能来完成这项工作吗? 我正在使用 zen 主题(仅供参考) 非常感谢..

【问题讨论】:

  • 鉴于您不会使用菜单的任何功能,尚不清楚为什么要将其保留为菜单。简单地在模板文件中编写那段 HTML 不是更容易吗?
  • @mac:你的意思是把它硬编码到 template.php 文件中?我不认为这是一个好习惯..如果我以后想添加另一个菜单,我必须再次修改代码:(
  • @almac - 您正在创建的是一个没有功能的菜单,除非您正在创建一个没有功能的虚拟站点,例如模型,否则这几乎没有意义。如果是这种情况(模拟站点),那么硬编码就可以了,因为您不会将代码重用于真实站点。如果你试图创建一个 JS 驱动的菜单,那么你就完全走错了路,因为你的导航在许多系统上都会被破坏,而且你不会对不支持 js 的浏览器进行回退。有关下一步去哪里的提示,请参阅 googletorp 的答案。奖金领先:api.drupal.org/api/function/drupal_add_js/6

标签: drupal menu drupal-6


【解决方案1】:

您似乎想更改链接,因此您可以添加一些 js 选项卡。如果是这样的话:

  • 您不应该更改链接的 href 值,因为它只会破坏那些不使用 javascript 的导航。
  • 如果您的目标是添加 id 以将它们用于 js,那么您最好的选择是使用 js 添加它们。

在 Drupal 中,有一些不同的方法可以改变主菜单的输出。

  • 您可以使用 theme_menu_item_link 更改菜单的 drupal 输出,但这不会有太大帮助,因为该函数用于所有菜单项。
  • 您也可以自己在 template.php 中创建主菜单,但在这种情况下可能不值得费心。

【讨论】:

  • “您也可以自己在 template.php 中创建主菜单,但在这种情况下这可能不值得费心。”你这是什么意思?
  • 要让它工作,你需要做的是创建你自己的函数来生成主菜单。其中一些您可以使用 API 完成,但有些则需要您自己完成。所以你基本上会抛弃 Drupal 作为标准所做的事情并实现你自己的东西。这有点难看,但它可以完成工作。
  • googletorp,我没有创建主菜单,而是创建了一个块并在那里编码了我的导航链接..虽然不是一个好主意:(如果有一个模块可以做到这一点会很有帮助..
【解决方案2】:

您是否考虑过使用Menu Class 模块?您可以创建菜单类集,然后将它们分配给每个单独的菜单项。

【讨论】:

  • 布伦特,也许这并不能解决 OP 的问题,但你的发现是一个很好的发现,我一直想获得这个功能! (+1):)
【解决方案3】:

我使用Menu attributes module。效果很好!

【讨论】:

  • 请提供一些详细信息和链接。只有链接答案不会很好,并且会被否决:)
猜你喜欢
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 2018-08-23
  • 1970-01-01
相关资源
最近更新 更多