HTML \ богатый текст в заголовке узла Drupal? - PullRequest
5 голосов
/ 08 октября 2009

Мне нужно, чтобы заголовки узлов отображали текстовое форматирование.

Насколько я понимаю, поле заголовка Drupal - просто текст, оно не допускает HTML или любой другой формат ввода. Это правда? Есть ли способ переопределить это или другое решение?

Я работаю с Drupal 6.

Ответы [ 3 ]

6 голосов
/ 08 октября 2009

Вы можете довольно легко сделать это в своей теме, есть разные способы сделать это. Самое простое, вероятно, сделать это в вашем template.php

/* this function generates the variables that are available in your node.tpl,
 * you should already have this in your template.php, but if not create it
 */
function mytheme_preprocess_node(&$vars) {
    // It's important to run some kind of filter on the title so users can't
    // use fx script tags to inject js or do nasty things.
    $vars['title'] = filter_xss($vars['node']->title);
}

Что происходит в функции, так это в том, что она перезаписывает значение по умолчанию для $ title в файле node.tpl, который содержит переменную, используемую для заголовка. Обычно он помещается в тег h1 или h2, поэтому вам следует об этом знать. Фильтр_xss используется только для разрешения основных HTML-тегов, поэтому для защиты сайта вы можете посмотреть на эту функцию здесь . Это некоторые другие функции фильтра, такие как check_markup и filter_xss_admin, но вы можете задать второй параметр для filter_xss, который представляет собой массив разрешенных тегов, поэтому, если значение по умолчанию недостаточно, вы можете просто изменить его в соответствии со своими потребностями.

0 голосов
/ 20 октября 2015

Расширение модуля, упомянутого wiifm, для D7 теперь есть также: https://drupal.org/project/html_title_trash

Позволяет использовать больше тегов, а также работает с заголовками блоков, а не только с заголовками узлов.

0 голосов
/ 10 мая 2013

Используйте функцию mytheme_preprocess_page для D7.

...