taxonomy_select_nodes + сортировка по количеству флагов в модуле Flag

Столкнулся с распространенной задачей — в drupal необходимо сделать выборку идентификаторов нод в определенном «термине» таксономии. Это сделать легко с помощью функции taxonomy_select_nodes. Однако, параллельно установлен модуль Flag, который позволяет пользователям ставить флаги (заносить в фавориты, поднимать рейтинг) для различных сущностей, в частности для нод. На сайте заказчика с помощью модуля Flag была сделана возможно повышать рейтинг для контента, а затем в некоторых категориях необходимо было выводить список этого контента, отсортированного по количеству флажков (уровню рейтинга). taxonomy_select_nodes предоставляет возможность сортировки только по ограниченному числу полей. Для решения задачи можно было воспользоваться модулем Views, отношениями (views) и тогда в сортировку можно было бы включать количество флажков у материала, но мне не удобно менять шаблоны для Views, поэтому решил модифицировать функцию taxonomy_select_nodes.

Просто добавляем в template.php в папке шаблона функцию:

В функции добавился параметр fid — идентификатор флага. И в параметры сортировки добавлена сортировка по количеству флажков у материала. В саму функцию добавлен join таблицы БД, где, собственно, и находятся данные по количеству флагов.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*
*