Подтвердить что ты не робот

Drupal 7: Изменение выходного меню HTML?

Я пытаюсь изменить вывод HTML в теме Drupal 7, которую я создаю.

В принципе, вместо <li> s, содержащее просто равную <a> s с текстом, я хочу добавить некоторый дополнительный HTML внутри <a> .

Я знаю, что можно изменить 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. Я не могу понять, как создать фактическую функцию переопределения. Может кто-нибудь указать мне в правильном направлении, пожалуйста?

4b9b3361

Ответ 1

Что бы вы сделали, это реализовать крючок для изменения вывода, а не напрямую изменять файл theme.inc.

Например, принятый ответ на этой странице: Drupal Override Custom Template


И как правило, когда вы хотите изменить вывод чего-либо, реализовать hook (в модуле или в template.php активной темы) или используйте шаблон с предопределенным именем файла, если такой случай существует (когда шаблон уже не существует, вы также может изменить список предложений шаблонов с помощью модуля или темы).