Don*_*mas 17 drupal-7 drupal-themes
我正在尝试修改我正在创建的Drupal 7主题中的HTML输出.
基本上,我希望在<a>中包含一些额外的HTML,而不是仅包含带有文本的简单<a>的<li>.
我知道可以修改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'),
),
)); ?>
Run Code Online (Sandbox Code Playgroud)
它显然调用了主题函数,它创建了输出.修改输出的一种方法是修改theme.inc中的theme_links函数,对吧?
http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_links
我也知道你可以在template.php中放一个钩子来覆盖创建HTML的函数.我无法弄清楚如何创建实际的覆盖功能.有人能指出我正确的方向吗?
wil*_*aks 18
你要做的是实现一个钩子来修改输出,而不是直接修改"theme.inc"文件.
例如,此页面上接受的答案:Drupal覆盖自定义菜单模板
作为一般规则,当您想要修改某些内容的输出时,要么实现一个钩子(在模块中或活动主题的template.php中),要么在存在这种情况时使用带有预定义文件名的模板(当没有模板已存在时,您还可以使用模块或主题修改模板建议列表.