В настоящий момент времени при опубликовании материала на сайте, вверху материала выводится "Опубликовано <Пользователь> <дата время>".
Добавил в админке обязательное поле "Подразделение".
Теперь надо решить задачу как в выводимой информации выдавать не имя пользователя, а значение поля "Подразделение" автора материала.
Прошу подсказать как это сделать.
Комментарии
Сначала в препроцессе готовим переменную с нужным значением, потом в шаблоне ноды выводим вместо submitted эту переменную
Прошу направить более подробно.
В препроцесс готовить переменную, это вот тут:
core/includes/theme.inc::function template_preprocess_field?
Шаблон ноды - это twig-файл?
создал поле (текстовое) для пользователя, метка Отдел, машинное имя field_otdel
вставил в core/includes/theme.inc::function template_preprocess_field
При обновлении страницы куча ошибок:
Видимо что-то не то делаю.
Прошу подсказать.
Нужно препроцессить не поле, а ноду, то есть использовать *_preprocess_node. Нужно из объекта ноды достать значение поля field_otdel и передать его в переменную, например $variables['field_otdel']. Чисто теоретически можно покопаться в объекте ноды прямо в шаблоне, но лучше всё таки в препроцессе.
Код нужно писать в кастомном модуле или в файле *.theme темы оформления
Затем в twig шаблоне ноды node.html.twig нужно вывести эту переменную в нужном месте
А зачем тут вообще программировать когда всё мышкой накликивается? Ненужное поле из дисплея убрал, нужное добавил - всего и делов.
Подробнее пожалуйста.
Из дисплея убрать/добавить - это где? Куда надо зайти?
Пардон, это модуль Display Suite позволяет убирать/добавлять/двигать системные поля мышкой. Без него не получится, а добавлять его на уже работающий/сверстанный сайт себе дороже выйдет. Слушайте что @ivnish говорит.
а вот с этим какая то путаница... походу разработчик когда верстал сайт, сделал это как то не стандартно (по крайне мере я не вижу файлов с названием темы что видна в админке). Я вижу несколько *.theme файлов, но это всё по темам которые не используются... блин, как можно посмотреть какой файл *.theme используется (какой то конфиг или через админку)?
А если в папке с темой (вроде нашёл) нет файла *.theme?
То его можно создать
Да похоже, что не потяну, одно дело чуть-чуть добавлять/изменять, другое дело полностью делать, причём в уже как-то работающей системе...
Ладно, спасибо, подумаю пока, копать дальше или нет. В принципе это не сильно критичная задача