0

我正在尝试在 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();

谢谢你的帮助!

4

1 回答 1

1

theme_menu_tree将是解决这个问题的方法template.php。您的功能的内容与您上面的功能相同。文档位于http://api.drupal.org/api/function/theme_menu_tree

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

您可能会考虑同时包含图像和文本,但制作文本部分display: none以便在 CSS 未正确加载时更优雅地降级。

于 2009-09-04T11:58:55.823 回答