xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Разрешить html теги в заголовке определённых блоков

Опубликовано в

Один из способов разрешить 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
Похожие записи

Комментарии RSS

Заметил такой еще такой способ, как вывести HTML разметку в заголовке блока, без дополнительных модулей / хуков.
Фишка в том, если у нас блок сгенеренный вьюхой,
то в настройках "Заголовка блока" этой вьюхи можно использывать разметку, и она будет выводиться как разметка. Главное что бы в настройках самого блока не был переопределен заголовок.

И там в настройках "Block titles format" выбрать формат ввода

Здравствуйте.
У меня это не работает.
Попробовал оба варианта, но заголовок "Ля-ля-ля тополя" отображается вместе с тегами.

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании