我正在尝试修改我正在创建的Drupal 7主题中的HTML输出.
基本上,li> s只含有一个< s与文本,我想包括一些额外的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的功能.我不知道如何创建实际的覆盖功能.有人可以指出我正确的方向吗?
解决方法
你会做的是实现一个钩子修改输出,而不是直接修改“theme.inc”文件.
例如,本页面接受的答案:Drupal Override Custom Menu Template
作为一般规则,当您想要修改某个东西的输出时,implement a hook(在一个模块中或在活动主题的template.PHP中),或者在这种情况下使用template with a predefined file name(当没有模板已经存在的时候,你也可以modify the list of template suggestions使用模块或主题).