Добавить вычисляемые данные в вывод ноды

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

Аватар пользователя web09 web09 30 января 2013 в 0:01

Есть потребность вывести на страницу вывода ноды вычисляемые данные, если быть точнее, то родитель термина к которому относится нода. Получить то этого родителя я получил, даже вывести путем танцев с бубном получилось, а вот в переменной $content мое "поле" не появилось.
Требуется не сохранять в базе данные, а просто вывести вычисляемое поле в ноду, желательно как можно более приближенно к стандарту, т.е. чтобы друпал распознавал мое програмно добавленное поле так же как и все остальные.

Комментарии

Аватар пользователя IPlayer IPlayer 30 января 2013 в 2:00

Это не Drupal way Smile Считается, и не без оснований, что шаблон служит для размещения и разметки уже готовой информации. Заниматься ее вычислением необходимо ДО процесса вывода, т.е. во всяких hook_preprocess_page(node), hook_node_view, hook_page_alert. Так больше порядку будет.

По теме:
Берем hook_node_view
Там нам дают полноценный объект $node. Считаете/вычисляете что надо и формируете в $node->content новый элемент массива по аналогии с имеющимися полями. Усе. В шаблоне все это отрендерится автоматом - ничего даже править не надо. Если это вычисленное поле надо будет куда-то вывести отдельно на странице, то да - шаблон надо будет ковырнуть...

Аватар пользователя MXM MXM 10 февраля 2013 в 5:55

Я решал подобную задачу с помощью Computed Field, и большим плюсом по сравнению с предложенным выше здесь является то что родитель вычисляется 1 раз при сохранении ноды

Аватар пользователя web09 web09 11 февраля 2013 в 3:07

"MXM" wrote:

Я решал подобную задачу с помощью Computed Field, и большим плюсом по сравнению с предложенным выше здесь является то что родитель вычисляется 1 раз при сохранении ноды

Я так и сделал, но на случай если данные изменяются вариант при сохранении ноды не подойдет