As ferramentas de pesquisa não estão abertas por padrão

9

Estamos implementando as principais ferramentas de pesquisa em nossa exibição de lista de componentes personalizados. Quando clico nas ferramentas de pesquisa, ele mostra o formulário abaixo, perfeito.

insira a descrição da imagem aqui

Quando clico no menu suspenso e seleciono um status específico Ex.'Trashed ', a página é enviada e o formulário carregado apenas com os registros na lixeira, o que também é perfeito.

Após o carregamento da página, as ferramentas de pesquisa não exibem os filtros por padrão. O usuário novamente precisa clicar no botão de ferramentas de pesquisa para abrir os filtros e redefinir o status selecionado.

Como posso fazer as ferramentas de pesquisa mostrarem os filtros por padrão?

Malaiselvan
fonte

Respostas:

7

Eu consegui adicionar opções como abaixo

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

Se $ hidden estiver definido como 0, as ferramentas de pesquisa não serão ocultadas. Defino essa variável adequadamente com base nos valores de filtro selecionados.

Malaiselvan
fonte
3

Os campos de filtro serão preenchidos automaticamente se estiverem listados no array $ config ['filter_fields'] do seu Model no construtor.

Por exemplo:

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);
}
Nagarjun
fonte
Obrigado. Mas não está funcionando. Eu tenho esses campos configurados na variável de configuração no construtor, mas ainda preciso clicar no botão 'Ferramentas de pesquisa' para abrir as opções de filtro. Quando faço mais algumas pesquisas sobre a fonte de exibição, descobri que isso "filtersHidden":truesempre é definido como verdadeiro no meu caso.
Malaiselvan
1

Corri para o mesmo problema, mas o rastreei até o que é. É um processo de várias etapas para configurar os filtros.

  1. Para que os filtros funcionem, você precisa adicionar o arquivo filter_.xml na pasta models / forms. Isso requer um arquivo XML normal do Joomla.
  2. Você precisa definir os filtros conforme mencionado por @Nagarjun no seu modelo
  3. Na sua opinião, você precisa adicionar esta linha na função de exibição

    $this->activeFilters = $this->get('ActiveFilters');
    
  4. Caso você tenha docblocks, é necessário especificá-lo como uma variável pública :

    /**
      * List of active filters
      *
      * @var    array
      * @since  1.0
      */
    public $activeFilters = array();
    
  5. Por fim, adicione os filtros ao seu arquivo de modelo:

    echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this));
    
RolandD
fonte