Как: использовать параметры GET в условных фильтрах Drupal Views

  1. пример
  2. Как
  3. Технические детали
  4. Почему я люблю это

Это что-то вроде обломка: открытые фильтры Views используют параметры GET для передачи аргументов, а условные фильтры Views используют аргументы основного пути.

Иногда вы хотите использовать открытые значения фильтра для разных дисплеев или пролистать параметры GET из не-функциональности просмотра.

пример

На Galaxie На сайте у нас есть вид с открытыми фильтрами, по которым можно переключаться по определенной категории техники. Каждая страница, которая появляется, имеет блок, который описывает категорию, которую вы просматриваете.

Этот блок является представлением с условным фильтром, который получает категорию из параметра GET в URL.

Как

Есть несколько плохих способов сделать это, с которыми я беспокойно играл в других проектах:

  • Используйте «Предоставить значение по умолчанию», но выберите «PHP Code» и получите аргумент таким образом
  • Измените значение в одном из хуков build-execute-render видов

Обе эти опции не могут быть использованы повторно, и первая из них заканчивается кодом в базе данных. Очевидно, должен быть лучший путь.

get_arguments Модуль является естественным результатом. Он добавляет новую опцию в раскрывающееся меню «Указать значение по умолчанию», которая позволяет указать параметр GET, который будет использоваться для значения, из которого вы хотите выполнить фильтрацию.

Технические детали

Это очень простой модуль. Файл .module просто сообщает Views, что использует API. .Views.inc вызывает hook_views_plugins () и определяет плагин «аргумент по умолчанию». Тогда есть просто класс с тремя маленькими методами:

  1. option_definition: сообщить Views, что есть поле формы конфигурации
  2. options_form: создать элемент формы для определенной опции
  3. get_argument: взять переданные данные и вернуть либо значение, либо FALSE.

Это все, что нужно.

Почему я люблю это

Сегментирование контента на блоки делает создание сайтов намного проще. Если клиент хочет переместить этот блок вниз страницы, его легко перетаскивать. Это также устраняет необходимость в модулях на грязные ощущения, таких как views_field_view.

Интеллектуальное использование условных фильтров и настроек отображения блоков позволяет настроить содержимое сайта так, чтобы оно отображалось именно там, где вы хотите, и при этом обеспечивает хорошую производительность. И часто это даже не требует фантазии контекста или панелей или чего-то еще, кроме ядра.

Ищете сайты построенные способом Drupal? Связаться с нами.

Связаться с нами

Ищете сайты построенные способом Drupal?