Постановка задачи
В типе материала сайта на Drupal создано поле типа «Изображение» с неограниченным количеством значений. Необходимо при добавлении или обновлении ноды этого типа заполнять атрибуты alt для картинок, загруженных в поле «Изображение», заголовком ноды, если значения alt не заданы.
Решение
Для решения задачи без создания собственного модуля я использовал Rules. Вначале создал компонент «Правило» с настройками, приведенными на скриншоте:
В компоненте нам нужны два типа данных – «Содержимое» (т.е. нода, из объекта которой мы будем использовать заголовок), а также обычная строка текста для атрибута alt.
Далее в нашем компоненте-правиле задаем условие (проверяем, заполнено значение alt или нет) и действие – заполнение атрибута alt заголовком ноды:
Теперь создаем само правило назначения атрибута alt изображениям, которое будет срабатывать при сохранении материала. Собственно, все настройки правила наглядно представлены на следующем скриншоте.
Вкратце суть правила:
- Перед сохранением материала проверяем, содержит ли он поле с машинным именем field_photo.
- Если такое поле имеется, в цикле (loop) перебираем все его значения (для случая с одним значением поля цикл не нужен).
- На каждой итерации цикла запускаем компонент-правило, в котором вначале осуществляется проверка на наличие атрибута alt у изображения и в случае, если он не задан, ему присваивается значение заголовка ноды. При этом в настройках указываем соответствие данных между правилом и компонентом следующим образом:
Задача решена.