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» от лица текущего пользователя:

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

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

Пишем карту сайта под Drupal 7

Июль 23, 2016 г.

Нужна ли HTML карта сайта или нет - это науке не известно. Как минимум она нужна SEO - специалистам. :) В простейшем случае, карта сайта - это портянка урлов всех публикаций, т.н. плоский список. Иерархическая карта (в виде дерева) обычно базирует ...

Читать

Программное создание публикации в Drupal 7

Апрель 15, 2017 г.

Еще одна шпаргалка по Drupal 7. Мы создадим публикацию из PHP, добавим пользовательские поля и даже загрузим файл (изображение) в поле соответствующего типа. Сначала мы создадим структуру публикации (объект node).  Нам понадобится указать данные, ...

Читать

Как зацепиться за редактор формы параграфа (paragraph)

Январь 25, 2022 г.

В Drupal 8 есть хорошая зацепка ко всей форме параграфа - hook_field_widget_WIDGET_TYPE_form_alter , а в семерке можно зацепляться за отдельные поля формы - hook_field_widget_form_alter. Рассмотрим примеры реализации этих зацепок. Drupal 7 ...

Читать

Кеширование JSON ответа в Drupal

Июль 6, 2023 г.

У нас есть контроллер, который выдаёт json ответ. Добавим кеширование. Начнем с определения контроллера. Пусть сконфигурирован следующий mymodule.routing.yml: [crayon-6a1ac5f58b62e228915833/] Это значит, что у нас создан класс PublicApi в ...

Читать
 

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

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



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