Drupal 7: изменение меню вывода HTML?

Я пытаюсь изменить вывод HTML в создаваемой мной теме Drupal 7.

По сути, вместо

  • , содержащих только простые с текстом, я хочу включить дополнительный HTML в .

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

    Другие вопросы по тегам