Как правильней (друпал-way) изменить вывод

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

Аватар пользователя Kur Kur 31 марта 2011 в 16:12

Подумал над тем как будет более "по правильному" реализовать операцию подобную:
Есть нода, у нее термины таксономии, идут например от 3-х словарей.
А мне нужно например выводить все термины только одного из словарей(случайно выбирается скриптом)
Вижу два пути:
1) На уровне темы в функции препроцесса ноды формирую свою переменную $terms2 для шаблона
Плюс - довольно легко локализуется данное изменение
Минус - а)зависит от темы; б)все равно движком формируется переменная $terms которая не используется

2)В неком модуле настройки сайта(своем), с большим весом в hook_nodeapi и операции 'alter' переделываю $node->taxonomy
Плюс - а)не зависит от темы; б)не формир. неиспользуемая переменная
Минус - сложней локализуется источник изменения.

Так вот - какой из подходов более правильный по идеологии друпал?
Используется ли обычно такой модуль настройки на сайтах для тонкой настройки системы(хуки_алтер тех же форм и т.д.)? Если да - то как его лучше именовать, может стандарт какой есть? Как вообще такие изменения проще находить на сайте если не знаешь какой модуль изменил?
Спасибо.

Комментарии

Аватар пользователя Ильич Рамирес Санчес Ильич Рамирес Санчес 31 марта 2011 в 16:46

"Kur" wrote:
1) На уровне темы в функции препроцесса ноды формирую свою переменную $terms2 для шаблона

очень даже вариант.
"Kur" wrote:
Минус - а)зависит от темы; б)все равно движком формируется переменная $terms которая не используется

минус сохраница полюбому - переменная будет генериться дважды если вы ее перекроете. правда лишних запросов там в БД быть не дложно - функции кешируют чсть данных в памяти
"Kur" wrote:
2)В неком модуле настройки сайта(своем), с большим весом в hook_nodeapi и операции 'alter' переделываю $node->taxonomy

вы получите большой минус Smile
данные ноды будут гоняться неверные и косяк где нить да всплывет. лучше "ровнять" на выводе Smile
hook_nodeapi + view
большой плюс в том что сможете сделать конфигурируемым то самое скрытие - модуль же Smile

либо preprocess функции в самой теме

Аватар пользователя Kur Kur 31 марта 2011 в 17:38

"Ильич Рамирес Санчес" wrote:
данные ноды будут гоняться неверные

в смысле не на load а на view? Не вижу в принципе разницы, т.к. в taxonomy_nodeapi ничего не делается на операции view. Именно модулем переменную вторую не надо будет формировать тогда. Плюс как бы логика в ядре и модулях, а тема уже выводит.

Но что то смотрю что нечасто встретишь чтобы так в модуле вывод меняли, больше в теме занимаются. Предполагают наверное: один сайт - одна тема.

А если запрос из БД потребуется, из функции препроцесса - в принципе кошерно?