我正在尝试修改我正在创建的Drupal7主题中的HTML输出。
基本上,我希望在中包含一些额外的HTML,而不是只包含文本的< 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'),
),
)); ?>
它显然调用了主题函数,该函数创建输出。修改输出的一种方法是修改theme.inc中的theme_links函数,对吗?
http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_links
我还知道您可以在template.php中放置一个钩子来覆盖创建超文本标记语言的函数。我不知道如何创建实际的覆盖函数。请谁给我指个方向好吗?
发布于 2011-03-05 08:40:23
您要做的是实现一个钩子来修改输出,而不是直接修改"theme.inc“文件。
例如,此页面上接受的答案:Drupal Override Custom Menu Template
作为一般规则,当您想要修改某些东西的输出时,无论是implement a hook (在模块中还是在活动主题的template.php中),或者在存在这样的情况时使用template with a predefined file name (当不存在模板时,您也可以使用模块或主题进行modify the list of template suggestions )。
https://stackoverflow.com/questions/5189307
复制相似问题