Suchwerkzeuge sind standardmäßig nicht geöffnet

9

Wir implementieren die wichtigsten Suchwerkzeuge in unserer benutzerdefinierten Komponentenlistenansicht. Wenn ich auf die Suchwerkzeuge klicke, wird das folgende Formular angezeigt, das perfekt ist.

Geben Sie hier die Bildbeschreibung ein

Wenn ich auf das Dropdown-Menü klicke und einen bestimmten Status auswähle, z. B. "Verworfen", wird die Seite gesendet und das Formular nur mit den verworfenen Datensätzen geladen, was ebenfalls perfekt ist.

Nach Abschluss des Seitenladens zeigen die Suchwerkzeuge die Filter standardmäßig nicht an. Der Benutzer muss erneut auf die Schaltfläche Suchwerkzeuge klicken, um die Filter zu öffnen und den ausgewählten Status zurückzusetzen.

Wie kann ich die Suchwerkzeuge so einstellen, dass die Filter standardmäßig angezeigt werden?

Malaiselvan
quelle

Antworten:

7

Ich habe es geschafft, Optionen wie unten hinzuzufügen

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

Wenn $ hidden auf 0 gesetzt ist, werden die Suchwerkzeuge nicht ausgeblendet. Ich habe diese Variable basierend auf den ausgewählten Filterwerten entsprechend eingestellt.

Malaiselvan
quelle
3

Die Filterfelder werden automatisch ausgefüllt, wenn sie im Konstruktor im Array $ config ['filter_fields'] Ihres Modells aufgeführt sind.

Zum Beispiel:

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
quelle
Vielen Dank. Aber es funktioniert nicht. Ich habe diese Felder in der Konfigurationsvariablen im Konstruktor konfiguriert, muss aber dennoch auf die Schaltfläche "Suchwerkzeuge" klicken, um die Filteroptionen zu öffnen. Wenn ich mehr über die Ansichtsquelle recherchiere, habe ich festgestellt, dass "filtersHidden":truedies in meinem Fall immer als wahr festgelegt ist.
Malaiselvan
1

Ich bin auf dasselbe Problem gestoßen, habe es aber auf das zurückverfolgt, was es ist. Das Einrichten der Filter ist ein mehrstufiger Prozess.

  1. Damit die Filter funktionieren, müssen Sie die Datei filter_.xml im Ordner models / forms hinzufügen. Dies erfordert eine normale Joomla-XML-Datei.
  2. Sie müssen die Filter wie von @Nagarjun in Ihrem Modell angegeben einstellen
  3. In Ihrer Ansicht müssen Sie diese Zeile zur Anzeigefunktion hinzufügen

    $this->activeFilters = $this->get('ActiveFilters');
    
  4. Wenn Sie über Docblocks verfügen, müssen Sie diese als öffentliche Variable angeben :

    /**
      * List of active filters
      *
      * @var    array
      * @since  1.0
      */
    public $activeFilters = array();
    
  5. Fügen Sie schließlich die Filter zu Ihrer Vorlagendatei hinzu:

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