Есть потребность вывести на страницу вывода ноды вычисляемые данные, если быть точнее, то родитель термина к которому относится нода. Получить то этого родителя я получил, даже вывести путем танцев с бубном получилось, а вот в переменной $content мое "поле" не появилось.
Требуется не сохранять в базе данные, а просто вывести вычисляемое поле в ноду, желательно как можно более приближенно к стандарту, т.е. чтобы друпал распознавал мое програмно добавленное поле так же как и все остальные.
Комментарии
я бы исправил темплейт для материала.."node--type.tpl.php"
Это не Drupal way
Считается, и не без оснований, что шаблон служит для размещения и разметки уже готовой информации. Заниматься ее вычислением необходимо ДО процесса вывода, т.е. во всяких hook_preprocess_page(node), hook_node_view, hook_page_alert. Так больше порядку будет.
По теме:
Берем hook_node_view
Там нам дают полноценный объект $node. Считаете/вычисляете что надо и формируете в $node->content новый элемент массива по аналогии с имеющимися полями. Усе. В шаблоне все это отрендерится автоматом - ничего даже править не надо. Если это вычисленное поле надо будет куда-то вывести отдельно на странице, то да - шаблон надо будет ковырнуть...
благодарю за комментарий!
как говорится, нам нужно больше
дереватакой информацииВопрос больше состоит в том как корректно сгенерить все дерево этого массива.
Я решал подобную задачу с помощью Computed Field, и большим плюсом по сравнению с предложенным выше здесь является то что родитель вычисляется 1 раз при сохранении ноды
Я так и сделал, но на случай если данные изменяются вариант при сохранении ноды не подойдет