Теги в элементах меню

Главные вкладки

Аватар пользователя airam airam 13 октября 2010 в 4:27

Мне нужно вставить теги в пункте меню, что бы он выглядел как

  • Пункт
    меню
  • Вставляю теги в заголовок страницы, но друпал упорно убирает оттуда теги..
    Где находится функция, которая обрабатывает меню перед выводом?

    пользуюсь модулем Menu_block

    Комментарии

    Аватар пользователя airam airam 13 октября 2010 в 4:59

    все.. охота на приведений закончилась..
    ответ - надо теги вставлять не в заголовок страницы, а в заголовок пункта меню..

    но для столкнувшихся с подобной проблемой в ссылках меню дам совет..

    что бы в ссылках меню обрабатывался html надо в файле common.inc найти
    function l($text, $path, $options = array())
    и там исправить

    $options += array(
    'attributes' => array(),
    'html' => FALSE,
    );
    на

    $options += array(
    'attributes' => array(),
    'html' => TRUE,
    );

    Аватар пользователя theСанитар theСанитар 13 октября 2010 в 20:27

    Всем, кто случайно мо;ет прочитать: не надо трогать common.inc и вообще руками лазить в ядро Wink

    А то, чего хочет топикстартер делается в функциях темизации Wink

    Аватар пользователя wolfphantom wolfphantom 20 января 2012 в 13:44

    Вставьте следующее в template.php и можно будет использовать тег br в пункте меню. (И незабудте очистить кэш)
    Проверено на Drupal 7 работает, для шестой версии скорее всего не будет работать.

    /**
    * Override theme_menu_link() to add line breaks in menu items
    * that have a <br> or <br/> or <br />  placed in them.
    */

    function YOURTHEME_menu_link(array $variables) {
      $element = $variables['element'];
      $sub_menu = '';

      if ($element['#below']) {
        $sub_menu = drupal_render($element['#below']);
      }
      $output = l($element['#title'], $element['#href'], $element['#localized_options']);

      // Replace text line breaks with html line breaks.
      $output = str_replace("&lt;br&gt;", "<br/>", $output);
      $output = str_replace("&lt;br/&gt;", "<br/>", $output);
      $output = str_replace("&lt;br /&gt;", "<br/>", $output);
     
      return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
    }