Gli strumenti di ricerca non sono aperti per impostazione predefinita


9

Stiamo implementando gli strumenti di ricerca di base nella nostra vista elenco componenti personalizzata. Quando faccio clic sugli strumenti di ricerca, viene visualizzato il modulo sottostante che è perfetto.

inserisci qui la descrizione dell'immagine

Quando faccio clic sul menu a discesa e seleziono un determinato stato, ad esempio "Trashed", la pagina viene inviata e il modulo viene caricato solo con i record nel cestino, che è anche perfetto.

Al termine del caricamento della pagina, gli strumenti di ricerca non mostrano i filtri per impostazione predefinita. L'utente deve nuovamente fare clic sul pulsante Strumenti di ricerca per aprire i filtri per ripristinare lo stato selezionato.

Come posso rendere gli strumenti di ricerca per mostrare i filtri per impostazione predefinita?

Risposte:


7

Sono riuscito ad aggiungere opzioni come di seguito

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

Se $ hidden è impostato su 0, gli strumenti di ricerca non saranno nascosti. Ho impostato questa variabile in modo appropriato in base ai valori di filtro selezionati.


3

I campi filtro verranno compilati automaticamente se sono elencati nell'array $ config ['filter_fields'] del tuo modello nel costruttore.

Per esempio:

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);
}

Grazie. Ma non funziona. Ho quei campi configurati nella variabile di configurazione nel costruttore ma devo ancora fare clic sul pulsante "Strumenti di ricerca" per aprire le opzioni di filtro. Quando faccio qualche ricerca in più sulla fonte di visualizzazione ho scoperto che "filtersHidden":trueè sempre impostato come vero nel mio caso.
Malaiselvan,

1

Ho riscontrato lo stesso problema ma l'ho rintracciato fino a quello che è. È un processo in più passaggi per impostare i filtri.

  1. Perché i filtri funzionino è necessario aggiungere il file filter_.xml nella cartella modelli / moduli. Questo richiede un normale file XML di Joomla.
  2. Devi avere i filtri impostati come indicato da @Nagarjun nel tuo modello
  3. A tuo avviso devi aggiungere questa linea nella funzione di visualizzazione

    $this->activeFilters = $this->get('ActiveFilters');
    
  4. Nel caso in cui si disponga di blocchi di documenti, è necessario specificarlo come variabile pubblica :

    /**
      * List of active filters
      *
      * @var    array
      * @since  1.0
      */
    public $activeFilters = array();
    
  5. Infine aggiungi i filtri al tuo file modello:

    echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this));
    
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.