DB API в drupal позволяет стоить, наверное, почти любые запросы, какие только можно составить на чистом sql. Приведенный ниже сниппет кода демонстрирует вывод публикаций, у которых отсутствуют переводы контента.
Для начала требуется получить полный список языков переводов.
|
|
$langcodes = \Drupal::languageManager()->getLanguages(); $langcodesList = array_keys($langcodes); |
Кол-во элементов массива $langcodesList — это все требуемые языки.
Теперь выберем публикации, у которых число записей в node_field_data меньше, чем требуемое число языков. Здесь понадобится группировка и условие having:
|
|
$query = \Drupal::database()->select('node', 'n'); $query->addField('n', 'nid'); $query->addExpression('COUNT(*)', 'count'); $query->join('node_field_data', 'nfd', 'nfd.nid = n.nid'); $query->groupBy('n.nid'); $query->having('count < :cnt', [':cnt' => sizeof($langcodesList)]); $entries = $query->execute()->fetchAll(\PDO::FETCH_ASSOC); |
С помощью devel выведем:
Результат будет выглядеть так: по каждой ноде получим nid и кол-во языков (у меня в примере их 4, поэтому нода всего с двумя языками попала в выдачу).
Drupal 9/10
Данная запись опубликована в 21.08.2023 16:21 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Май 11, 2023 г.
См. основной материал для введения.
Контроллер должен вернуть Json набор пар значений value - label. Ранее в модуле мы уже объявили связь для маршрутизации с нашим контроллером в файле custom_blocks.routing.yml.
Теперь реализуем код.
/src/Controller/ProductSearchAutoCompleteController.php ...
Читать
Октябрь 17, 2024 г.
Особенно полезно, когда вы использовали проект как шаблон для другого сайта и надо почистить данные. Друпал хоть и показывает статистику использования файлов, но удалять файлы не позволяет из реестра /admin/content/files.
Напишем небольшой скрипт, ...
Читать
Сентябрь 13, 2023 г.
Весьма распространённый случай, когда в качестве exposed filter используется поле, связанное с таксономией. Так вы получаете набор опций в фильтре для своего представления, которое доступно пользователю.
Также весьма часто некоторые дополнительные ...
Читать
Сентябрь 5, 2025 г.
Иногда в Drupal возникает ситуация: вы удаляете поле с типов сущностей (bundle), но оно не исчезает полностью из системы. UI говорит, что поле «используется», хотя на самом деле ни одна сущность его не использует. В этом случае поле остаётся в конфигурации ...
Читать