Инструменты поиска не открыты по умолчанию


9

Мы реализуем основные инструменты поиска в нашем списке пользовательских компонентов. Когда я нажимаю на инструменты поиска, он показывает форму ниже, которая идеально подходит.

введите описание изображения здесь

Когда я нажимаю на выпадающий список и выбираю определенный статус, например, «Trashed», страница отправляется, и форма загружается только с потерянными записями, что также идеально.

После завершения загрузки страницы инструменты поиска не показывают фильтры по умолчанию. Пользователю снова нужно нажать на кнопку инструментов поиска, чтобы открыть фильтры для сброса выбранного статуса.

Как сделать так, чтобы инструменты поиска показывали фильтры по умолчанию?

Ответы:


7

Мне удалось добавить варианты, как показано ниже

JLayoutHelper::render(
  'joomla.searchtools.default', 
   array('view' => $this, 
  'options' => array('filtersHidden' =>$hidden)));

Если $ hidden установлен в 0, тогда инструменты поиска не будут скрыты. Я установил эту переменную соответствующим образом на основе выбранных значений фильтра.


3

Поля фильтра будут автоматически заполнены, если они перечислены в массиве $ config ['filter_fields'] вашей модели в конструкторе.

Например:

public function __construct ($config = array())
{
    if (empty($config['filter_fields']))
    {
        $config['filter_fields'] = array(
                'id', 'a.id',
                'title', 'a.title',
                'alias', 'a.alias',
                'checked_out', 'a.checked_out',
                'checked_out_time', 'a.checked_out_time',
                'catid', 'a.catid',
                'category_title',
                'published', 'a.published',
                'access', 'a.access',
                'access_level',
                'created', 'a.created',
                'created_by', 'a.created_by',
                'ordering', 'a.ordering',
                'featured', 'a.featured',
                'language', 'a.language',
                'hits', 'a.hits',
                'publish_up', 'a.publish_up',
                'publish_down', 'a.publish_down'
        );
    }

    parent::__construct($config);
}

Спасибо. Но это не работает. У меня есть эти поля, сконфигурированные в переменной config в конструкторе, но все же мне нужно нажать кнопку «Инструменты поиска», чтобы открыть параметры фильтра. Когда я провожу дополнительные исследования источника представления, я обнаружил, что "filtersHidden":trueв моем случае всегда устанавливается значение true.
Малайзельван

1

Я столкнулся с той же проблемой, но отследил ее до того, что есть. Это многоэтапный процесс настройки фильтров.

  1. Чтобы фильтры работали, вам нужно добавить файл filter_.xml в папку models / forms. Это занимает обычный файл Joomla XML.
  2. Вам нужно установить фильтры, как указано @Nagarjun в вашей модели
  3. По вашему мнению, вам нужно добавить эту строку в функцию отображения

    $this->activeFilters = $this->get('ActiveFilters');
    
  4. Если у вас есть docblocks, вам нужно указать его как публичную переменную :

    /**
      * List of active filters
      *
      * @var    array
      * @since  1.0
      */
    public $activeFilters = array();
    
  5. Наконец добавьте фильтры в файл шаблона:

    echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this));
    
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.