Drupal flag модуль — некоторые элементы API

Очередная шпаргалка по Drupal, рассматриваем функции API модуля flag, для вызова их из кода программы PHP.

Вы можете найти много материалов, посвященных настройке плагина flag, работе с ним из админки, но совсем мало — описанию функций API.

Примеры кода даны для Drupal 7, версия плагина Flag 3.7, версия API — 3.

Получить флаги установленные пользователем

Ищем флаги конкретного пользователя, для конкретного объекта или группы объектов.

Пример выбора флагов для конкретной публикации, установленных текущим пользователем:

Если пользователь не авторизирован, то drupal различает их по коду сессии, т.е. разные анонимы могут выставлять свои флаги.

Вывод флага в шаблон

Так как вывод флага сопряжен с учетом разных нюансов (сменой его статуса, проверками прав и т.п.), то рендерить вручную флаги довольно тяжко. Для этой цели в API есть функция:

Указывать тип сущности не требуется, т.к. флаг привязывается к конкретному типу, достаточно указать только entity_id.

Установить/сбросить флаг

Если логика вашей программы требует установить или сбросить флаг, то воспользуйтесь функцией:

Параметр $action может принимать два значения — ‘flag’ или ‘unflag’. Если учетка (account) не указана, то будет использован текущий пользователь.

Устанавливаем некий флаг «marker» от лица текущего пользователя:

и сбрасываем этот флаг:

Написать комментарий

Мало букафф? Читайте есчо !

Техника полировки

Март 2, 2014 г.

Запустили сайт - каталог по технике, связанной с полировкой. Не знал, что существует столько оборудования для полировки. Магазинная часть базируется на ...

Читать

И о других проблемах таксономии в Drupal 6

Август 26, 2013 г.

Кроме отсутствия гибкого управления (явно не хватает ряда hook-ов), о чем я говорил ранее, таксономия в 6-м Drupal еще и делает по два запроса на каждый node_load, а не хранится в кеше контента cache_content (это хорошо показывает devel). При ...

Читать

 

Комментарии к «Drupal flag модуль — некоторые элементы API»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: