Вход • Регистрация

Фильтрация в админке

  • 04 декабря 2019 г.
  • Здравствуйте, вопрос такой, как добавить ещё один checkbox, который будет выполнять фильтрацию по заданным условиям? То есть со своими условиями, которые будут браться с БД.
    Например хочу сделать checkbox, который будет фильтровать тех людей, у которых загружены файлы, то есть files > 0, а файлы хранятся в таблице attachments
    • 04 декабря 2019 г.
    • Указывайте модуль, это во-первых. Во-вторых, скриншот, где какая галка должна быть
  • 04 декабря 2019 г.
  • Модуль свой, самодельный, поэтому не указываю. В фильтре ещё один чекбокс, который фильтрует список, если загруженных файлов больше 0
    • 04 декабря 2019 г.
    • в файле module.admin.php определить массив variables_filter, туда добавить массив, тип function.
      Вывести в него данные через get_filter_variable_ключ_нового_значения
      Сохранить сортировку через save_filter_variable_ключ_нового_значения, используя $this->diafan->where, и не забыть про $this->diafan->get_nav
    • 04 декабря 2019 г.
    • Плюсую Степана.

      Дополнительно из советов:
      Откройте какой-нибудь простенький модуль и посмотрите там. Например, новости. Там видно, что в массиве
      Код
      public $variables_filter = array ()

      только поля, которые есть в БД текущей таблицы модуля. Добавить в массив элемент с именем поля в таблице достаточно, чтобы вывелся параметр в фильтре и система начала искать по этому полю.

      Что делать, если искать надо по другой таблице, как у Вас? Тот же метод: возьмите из коробки модуль посложнее, типа Заказы.
      modules/order/admin/order.admin.php
      Видим, например
      Код
      public $variables_filter = array (
      ...
      'text' => array(
      'type' => 'text',
      'name' => 'Искать по покупателю',
      ),

      Ниже видим функцию
      Код
      /**
      * Поиск по полю "Покупатель"
      *
      * @param array $row информация о текущем поле
      * @return mixed
      */
      public function save_filter_variable_text($row)
      { ...

      то есть, функция должна быть названа save_filter_variable_ИМЯПЕРЕМЕННОЙ
      И внутри делаете нужные запросы к нужным таблицам.

      Ну и гляньте доку https://www.diafan.ru/dokument/full-manual/developers/admin/module/#Polya-dlya-filtra

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум