Небольшой сниппет (snippet) по удалению сущностей nodequeue из кода. Может быть полезно при миграции данных.
Удобно оперировать с машинным именем нод-кью, но функция удаления требует ID, потому код обычно обретает следующие формы:
|
|
$nq = ['nq_name1', 'nq_name2', ... , 'nq_nameN']; foreach ($nq as $qname) { $Q = nodequeue_load_queue_by_name($qname); if (!empty($Q)) { nodequeue_delete($Q->qid); } } |
Возможно попутно что то требуется сделать с нодами, которые хранятся в удаляемых nodequeue. Для этого казалось бы правильным имплементировать в модуле хук — hook_nodequeue_delete($qid), но хук вызывается уже после удаления данных.
А потому мы грузим вновь объект nodequeue, читаем список node и выполняем с ними нужные операции:
|
|
$nodeQ = nodequeue_load_queue_by_name('nodeq_name'); $nodes = nodequeue_load_nodes($nodeQ->qid, NULL, NULL, NULL, FALSE); if (!empty($nodes)) { foreach($nodes as $item) { // $item->nid - это node->nid // TODO ... } } |
Drupal 7
Данная запись опубликована в 28.05.2021 12:52 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Апрель 6, 2021 г.
У меня эта задача возникла при работе с формами, где формы содержат поля '#entity' и '#entity_type'. Нужно было найти универсальный способ прочитать ID объекта, т.к. для каждого объекта имя этого поля может отличаться (для node - nid, для file - fid и ...
Читать
Январь 4, 2019 г.
Конструирование запросов через Drupal DB API необходимо для поддержки совместимости кода для разных источников данных.
Друпал предоставляет и более прямые средства для написания запросов вроде db_query, и никто не может запретить вам применить функционал ...
Читать
Февраль 7, 2019 г.
Если вы решили вывести блок, реализованный в каком либо модуле, программно, то следующие примеры кода помогут вам.
Используя block API
Запрашиваем данные блока через API, готовим массив для последующего рендеринга:
[crayon-6946cb310fc26201938961/] ...
Читать
Апрель 14, 2022 г.
В bootstrap корневой пункт меню с подпунктами (dropdown menu) не является активной ссылкой и лишь служит кнопкой для развертывания подпунктов. Тем временем ...
Читать