Изменение стандартного вывода ноды. Добавление произвольных атрибутов к существующим полям.

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

Аватар пользователя GhostSt1 GhostSt1 27 октября 2014 в 19:46

Вечер добрый.
Заранее просьба не спешить кидать в меня камни по поводу глупого вопроса/наличия стандартного решения/плохого настроения.

И так.
На сайте я вывожу материал в котором я добавил поле "Изображение", виджет - "Мультизагрука". Далее при настройке поля я указал:

  • Показывать поле для ввода атрибута «title»

Мне нужно сделать так чтобы при выводе материала в каждом <img src="..." title="..." /> автоматически создавался произвольный атрибут, к примеру data-caption="", а значение подставлялось из title.

Заранее отбрасываем пляски с javascript'ом: перебирать все img и создавать нужные атрибуты мне не подходит по двум причинам:

  1. По рилигиозным соображениям
  2. И потому что могут быть типы материалов где это делать не нужно.

Первое что приходит в голову - изменить шаблов вывода ноды и там добавить нужный атрибут, но файл где формируется контент ноды я не нашел. В node.tpl.php лишь обертка для содержимого ноды.
Использовать какой-то модуль, который позволяет добавлять к полям материала произвольные атрибуты, но и такого я, к сожаления, не нашел.

Поэтому обращаюсь к сообществу, чтобы кто-то сведущий подсказал решение или ткнул пальцем куда копать.

Комментарии

Аватар пользователя qwinto qwinto 27 октября 2014 в 21:08

Вначале создайте стиль изображения (можно просто оставить кастомное, но лучше свое), затем такой код в темплейт темы

function THEME_preprocess_image_style(&$vars){

if($vars['style_name'] == 'ИМЯ СТИЛЯ ИЗОБРАЖЕНИЯ') {

$vars['attributes']['ЗДЕСЬ ВИД АТРИБУТА'][] = 'СВОЕ ПРИДУМАННОЕ ИМЯ(здесь можно оставить пустым, а потом темизировать через views)';
}

}