2009-07-29 120 views
1

我想我在Drupal主要链接看起来像这样的代码:添加围绕各主要项目<span>标签的Drupal

<a class="active" title="Go to the Foo Homepage" href="/"><span>Home</span></a> 

不是:

<a class="active" title="Go to the Foo Homepage" href="/">Home</a> 

这样我就可以再风格spana分开。

(我知道这听起来像一个稍显陌生的事情,但它与周围IE的缺乏再加上不能设置2个背景图像边界半径支持工作要做。)

所以你知道&如何让Drupal在我的所有主链接中插入这些标签?

回答

2

我猜,在某处你page.tpl.php,你有这样的事情,以显示主菜单:

print theme('links', $primary_links, array('class' => 'links primary-links')); 

一个解决方案(可能不是最干净的一个 - 但应该工作)会是迭代上的$primary_links的元素,于,每一个,:

  • 激活HTML模式
  • 包住title<span></span>

如果你的菜单只有一个级别,我想这会做:

foreach ($primary_links as & $link) { 
    $link['html'] = true; 
    $link['title'] = '<span>' . $link['title'] . '</span>'; 
} 

而且,在这之后,你可以调用theme就像你现在已经在做。

就这样,你应该得到<span>标签角落找寻链接的文本,而无需他们在<a>标签的title的属性注入。


我在菜单中有更多关卡,您将不得不向下重复;要么使用两个叠加的循环,要么使用某种递归,如果您不知道菜单的深度。
(我会让你有觉得好玩,我说应该足以让你开始;-))


一点题外话,这或许可以做某处template.php太...可能是一个更好的地方;但我会让你决定你喜欢哪种解决方案...


玩得开心!

+0

这真的很接近 - 感谢指引我朝着正确的方向。最后,我不得不编辑`$ primary_links_tree`,因为我的主题是使用它来制作菜单而不是`$ primary_links`。足够接近作为我认为的答案:) – x3ja 2009-07-30 08:59:05

+0

不客气:-)确定关于变量的名称:我从花环的默认主题,并没有考虑说它可能需要一些tunning ^^ – 2009-07-30 10:52:58

0

为了记录,最后我刚刚使用了menu_html module,并在相关对话框中输入了菜单项<span>Menu Item 1</span>

事实上,我最终在<span><span>Menu Item Expanded</span></span>之一,因为它已经扩大,并已经有一个背景图像集。它现在有3!

至少我的标签上的弯曲的角落现在在IE中工作。另一次,IE浏览器泡了5/6小时,因为它不能正确支持CSS!