添加<;span>;Drupal中每个主要项周围的标记
我希望我在Drupal中的主要链接在代码中看起来像这样:添加<;span>;Drupal中每个主要项周围的标记,drupal,Drupal,我希望我在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> 因此,我可以将span与a分开设置样式 (我知道这听起
<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>
因此,我可以将span
与a
分开设置样式
(我知道这听起来有点奇怪,但这与IE缺乏边界半径支持以及无法设置2幅背景图像有关。)
那么你知道我在哪里以及如何让Drupal在我所有的主链接中插入这些标记吗?我猜,在你的
页面.tpl.php
的某个地方,你有这样的东西来显示主菜单:
print theme('links', $primary_links, array('class' => 'links primary-links'));
一种解决方案(可能不是最干净的,但应该可行)是迭代$primary\u links
的元素,对于每个元素:
- 激活HTML模式
- 用
和
foreach ($primary_links as & $link) {
$link['html'] = true;
$link['title'] = '<span>' . $link['title'] . '</span>';
}
foreach($primary\u links as&$link){
$link['html']=true;
$link['title']='.$link['title'].';
}
然后,您可以像现在一样调用theme
这样,您就可以在链接的文本周围获得
标记,而不必将它们注入
标记的标题
属性中
如果你的菜单中有更多的级别,你将不得不向下迭代;要么使用两个叠瓦循环,要么使用某种递归(如果您不知道菜单的深度)。
(我会让你从中得到乐趣;我所说的应该足以让你开始;-))
作为旁注,这可能也可以在
template.php
中完成。。。也许是个更好的地方;但我会让你决定你喜欢哪种解决方案
玩得开心 这应该有帮助
向下滚动到此注释以获得最终解决方案。html输出有一些问题在那里得到了解决。记录在案,最后我只是使用了,并在相关对话框中以
菜单项1
的形式输入了菜单项
事实上,我在其中一个菜单项中扩展了菜单项
,因为它已经扩展,并且已经设置了背景图像。它现在有3个
至少我的标签上的曲线角现在在IE中工作。另一次IE因为不能正确支持CSS而占用了5/6个小时 这真的很接近-谢谢你给我指出了正确的方向。最后我不得不编辑
$primary\u links\u tree
,尽管我的主题是用它来制作菜单,而不仅仅是$primary\u links
。非常接近,足以被接受为答案,我想:)不客气:-)关于变量的名称,好的:我从garland默认主题中选取了一个,我也没想过说这可能需要一些调整^^^事实证明这比我预期的要困难得多,因为$primary\u links\u tree
在page.tpl.php
中调用时已经预先呈现了,primary\u links\u tree
,我似乎无法追溯到足够远的地方,以便像你所说的那样插入它……关于$primary\u links\u tree太糟糕了:-(谢谢,但再次强调,这与$primary\u links
有关,而不是$primary\u links\u tree
,它作为ul
输出,来自完全不同的地方。