Сложные представления (views) требуют понимания того, что в итоге получилось, какой запрос сформировался в результате магии и такой то матери в конструкторе View UI.
Итак, как получить SQL запрос, который формируется во views drupal?
В этом нам поможет hook_views_pre_execute().
Внутри реализации стоит ограничить вывод только контекстом интересующего нас представления. Это можно сделать по имени views.
|
function YOUR_MODULE_NAME_views_pre_execute(&$view) { if ($view->name == 'YOUR_MACHINE_VIEWS_NAME') { drupal_set_message((string) ($view->build_info['query']) ); } } |
Так вы получите представление о запросе, но он будет содержать вставки вроде :placeholder_1 и т.п, т.е. являться шаблоном запроса, а не готовой SQL строкой.
Как получить сразу SQL?
Подключите модуль devel. Этот сервисный модуль предоставляет множество функций для форматирования и вывода отладочной информации. Нам понадобится функция — dpq().
|
function YOUR_MODULE_NAME_views_pre_execute(&$view) { if ($view->name == 'YOUR_MACHINE_VIEWS_NAME') { dpq($view->build_info['query']); } } |
Теперь мы получим готовый mySQL запрос.
модуль views
Написать комментарий
Данная запись опубликована в 19.10.2017 13:32 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Август 31, 2023 г.
Метод работает не только с ролями, но и любой другой логикой, которую вы в силах реализовать в коде.
Нам понадобится hook_views_pre_render, где мы выполним проверку и отключим не нужное нам поле представления.
[crayon-67e4c8b16e994870262110/] ...
Читать
Октябрь 24, 2017 г.
Модуль View, Drupal 7. Задача: в контексте публикации (находясь на странице публикации) вывести с помощью модуля views публикации, связанные с текущей ...
Читать