Drupal 7: изменение меню вывода HTML?
Я пытаюсь изменить вывод HTML в создаваемой мной теме Drupal 7.
По сути, вместо
Я знаю, что можно изменить HTML, созданный меню в Drupal. Я вижу следующий вызов в 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_links в theme.inc, верно?
http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_links
Я также знаю, что вы можете поместить хук в template.php, чтобы переопределить функцию, которая создает HTML. Я не могу понять, как создать реальную функцию переопределения. Может кто-нибудь указать мне правильное направление, пожалуйста?
1 ответ
Что бы вы сделали, это реализовали ловушку для изменения вывода, а не для непосредственного изменения файла "theme.inc".
Например, принятый ответ на этой странице: Drupal Override Custom Menu Template
И как общее правило, когда вы хотите изменить вывод чего-либо, либо реализуйте ловушку (в модуле или в файле template.php активной темы), либо используйте шаблон с предопределенным именем файла, когда такой случай существует (если шаблон еще не существует, вы также можете изменить список предложений шаблонов, используя модуль или тему).