Один из способов разрешить html в заголовках определённых блоков:
/**
* Preprocess vars for block.tpl.php.
*/
function THEMENAME_preprocess_block(&$vars) {
static $blocks_with_html_subject = array(
'webform:client-block-3',
'block:2',
);
if (in_array($vars['block']->module . ':' . $vars['block']->delta, $blocks_with_html_subject)) {
$vars['block']->subject = $vars['block']->title;
}
}
В $blocks_with_html_subject
указываются блоки в формате имя_модуля:дельта
Если лень самостоятельно указывать блоки, то можно разрешить html заголовки для всех блоков, позаботившись при этом о xss:
/**
* Preprocess vars for block.tpl.php.
*/
function THEMENAME_preprocess_block(&$vars) {
// Allow html title
if ($vars['block']->title != '<none>' && strpos($vars['block']->title, '<') !== FALSE) {
$vars['block']->subject = filter_xss($vars['block']->title, array('span', 'div', 'a'));
}
}
Написанное актуально для
Drupal 7
Комментарии
Заметил такой еще такой способ, как вывести HTML разметку в заголовке блока, без дополнительных модулей / хуков.
Фишка в том, если у нас блок сгенеренный вьюхой,
то в настройках "Заголовка блока" этой вьюхи можно использывать разметку, и она будет выводиться как разметка. Главное что бы в настройках самого блока не был переопределен заголовок.
Для ленивых модуль
https://www.drupal.org/project/block_class
https://www.drupal.org/project/block_class_styles
И там в настройках "Block titles format" выбрать формат ввода
Добавить комментарий