Drupal 7:修改菜单HTML输出?

时间:2011-03-04 03:25:04

标签: drupal-7 drupal-themes

我正在尝试修改我正在创建的Drupal 7主题中的HTML输出。

基本上,而不是< li> s仅包含普通的< a> s with text,我想在<中包含一些额外的HTML。 a>。

我知道可以修改Drupal中菜单创建的HTML。我可以在page.tpl.php中看到以下调用:

<?php print theme('links__system_main_menu', array(
      'links' => $main_menu,
      'attributes' => array(
        'id' => 'main-menu',
        'class' => array('links', 'clearfix'),
      ),
      'heading' => array(
        'text' => t(''),
        'level' => 'h2',
        'class' => array('element-invisible'),
      ),
    )); ?>

显然调用了主题函数,它创建了输出。修改输出的一种方法是修改theme.inc中的theme_links函数,对吧?

http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_links

我也知道你可以在template.php中放一个钩子来覆盖创建HTML的函数。我无法弄清楚如何创建实际的覆盖功能。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:18)

你要做的是实现一个钩子来修改输出,而不是直接修改“theme.inc”文件。

例如,此页面上接受的答案:Drupal Override Custom Menu Template


作为一般规则,当您想要修改某些内容的输出时,可以implement a hook(在模块中或活动主题的template.php中)或使用template with a predefined file name时存在一个案例(当没有模板存在时,您也可以使用模块或主题modify the list of template suggestions。)