从drupal自定义菜单中删除文本

时间:2009-09-04 11:29:10

标签: php drupal-6

我正在尝试在drupal中设置自定义菜单。

我已经成功地设计了显示背景图像,但问题是菜单项标题仍然显示。所以我得到了一个漂亮的图像,并在其上面进行了布局。

是否有模板功能可用于格式化自定义菜单并从超链接中删除文本部分?

我在我的主要链接上做了类似的事情(见下文),但我可以帮忙找出如何在自定义菜单上执行此操作。

function primary_links_add_icons() {
  $links = menu_primary_links();
  $level_tmp = explode('-', key($links));
  $level = $level_tmp[0];
  $output = "<ul class=\"links-$level\">\n";   
  if ($links) {
    foreach ($links as $link) {
        $link = l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment']);
        $cssid = str_replace(' ', '_', strip_tags($link));
        $link = preg_replace('#(<a.*?>).*?(</a>)#', '$1$2', $link);
        $output .= '<li id="'.$cssid.'">' . $link .'</li>';
    };
    $output .= '</ul>';
  }
  return $output;
}

然后在page.tpl.php

中调用
print primary_links_add_icons();

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

theme_menu_tree将是template.php本身解决此问题的方法。你的功能与你上面的功能相同。文档位于http://api.drupal.org/api/function/theme_menu_tree

但是,我建议你使用CSS来做你正在做的事情。如果文本被完全删除(通过php),那么你将依赖于用户的浏览器来正确显示图像和CSS并使导航成为可能。

您可以考虑同时包含图像和文本,但是如果未正确加载CSS,则会使文本部分display: none更加优雅地降级。