Получить имя поля ключа entity в Drupal 7

У меня эта задача возникла при работе с формами, где формы содержат поля ‘#entity’ и ‘#entity_type’. Нужно было найти универсальный способ прочитать ID объекта, т.к. для каждого объекта имя этого поля может отличаться (для node — nid, для file — fid и т.п.).

К нашей удаче, entity API содержит специальные методы, для получения названия primary key поля.

Применяя эти методы к значениям массива-описателя $form, которые передаются в callback функции form API, получим следующий шаблон кода:

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

Хак с Form API в Drupal 7: создаём HTML5‑поля (number, email, tel) без лишних модулей

Март 15, 2026 г.

Drupal 7 предлагает мощный Form API для построения форм. Однако при работе с HTML5‑атрибутами можно столкнуться с неожиданным ограничением: если вы попытаетесь задать тип поля number, email или tel стандартным способом, Drupal проигнорирует ваше значение ...

Читать

Добавление пунктов меню в Administration menu (admin_menu)

Апрель 8, 2020 г.

Популярный административный модуль admin_menu, собирает всё самое нужное и важное для управления сайтом. И хотя в 7 версии в ядре вы найдете модуль tool, обладающий похожим функционалом, ему не удалось заменить admin_menu. Далее, разберем код, добавляющий ...

Читать

Создание условий `или` в запросах через db API Drupal

Январь 4, 2019 г.

Конструирование запросов через Drupal DB API необходимо для поддержки совместимости кода для разных источников данных. Друпал предоставляет и более прямые средства для написания запросов вроде db_query, и никто не может запретить вам применить функционал ...

Читать

Программное создание параграфов (ParagraphsItemEntity) в Drupal

Май 24, 2019 г.

Пример кода, как программно реализовать создание параграфа (речь идет о модуле - paragraphs). Обычно параграфы создаются редакторами через админку, но иногда требуется создать новый параграф с помощью кода, например, при импорте данных, структурных ...

Читать
 

Комментарии к «Получить имя поля ключа entity в Drupal 7»

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



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