Вывод пустой страницы, при использовании expose фильтров, если форма не заполнена

Нередко возникают вопросы, как вывести пустой результат при использовании expose фильтров, если не заданы критерии фильтрации. Сейчас мы исправим эту проблему.

Решение

  1. Добавьте новый аргумент Global: Null в нужное отображение.
  2. В настройках аргумента установите значения:
    • Action to take if argument is not present: Provide default argument
    • Default argument type: Fixed entry
    • Default argument: 1
    • Validator: PHP Code
    • PHP validate code:
      if (!empty($view->exposed_input)) {
        return TRUE;
      }
    • Action to take if argument does not validate: Display empty text

Принцип работы

  1. Когда вы открываете страницу с вашим отображением, происходит задание значения аргумента. Так как значение аргумента в url не задано, оно устанавливается из настроек в 1.
  2. Затем происходит проверка аргумента нашим php кодом, вот здесь мы и проверяем заданы ли критерии expose фильтров. Если они не заданы аргумент не проходит проверку и отображается пустой текст.

Комментарии

Нужная вещь. Правда у меня пишет фразу "По Вашему запросу ничего не найдено. Попробуйте изменить критерии запроса. " А хочется чтоб ничего не писало сразу.

версия views какая? в empty text ничего не стоит?

Версия: Views 6.x-2.11
Вроде ничего...

я имел ввиду настойки из basic settings

РЕШЕНО! Спасибо! именно этот текст там и стоял.
А может подскажите как сделать, чтобы текст "Ничего не найдено" выводился при пустом результате поиска?

понимаю, что запоздало, но всё же лучше поздно чем никогда )
Я решил следующим образом: в поле empty text указал следующий php код:

<?php  global $_SERVER ; if ($_SERVER[QUERY_STRING] != 'q=docs_search' )
{ print 'Вашему запросу не соответствует ни один документ. Измените параметры поиска.'; } ?>

где q=doc_search соответственно адрес страницы views

у меня галочки при открытие страницы пустой тест. галку ставлю... появляется. убираю... не появляется пустой текст. вопрос это работает только на первом открытие страницы?

С помощью данного примера сделал, чтобы отображалась пустая страница.
Но при этом, если пользователь нажимает на кнопку "Поиск" с пустыми полями, то отображается полный список документов.
Как сделать так, чтобы, если пользователь нажал на кнопку поиска и при этом не ввел параметры, то ему тоже бы выводился пустой экран?