Las herramientas de búsqueda no están abiertas por defecto

9

Estamos implementando las herramientas de búsqueda principales en nuestra vista de lista de componentes personalizados. Cuando hago clic en las herramientas de búsqueda, muestra el siguiente formulario, que es perfecto.

ingrese la descripción de la imagen aquí

Cuando hago clic en el menú desplegable y selecciono un estado particular, por ejemplo, 'Tachado', la página se envía y el formulario se carga solo con los registros descartados, que también es perfecto.

Una vez completada la carga de la página, las herramientas de búsqueda no muestran los filtros de forma predeterminada. El usuario nuevamente debe hacer clic en el botón de herramientas de búsqueda para abrir los filtros y restablecer el estado seleccionado.

¿Cómo puedo hacer que las herramientas de búsqueda muestren los filtros por defecto?

Malaiselvan
fuente

Respuestas:

7

Logré agregar opciones como a continuación

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

Si $ hidden se establece en 0, las herramientas de búsqueda no se ocultarán. Configuré esta variable de manera adecuada en función de los valores de filtro seleccionados.

Malaiselvan
fuente
3

Los campos de filtro se completarán automáticamente si se enumeran en la matriz $ config ['filter_fields'] de su Modelo en el constructor.

Por ejemplo:

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
fuente
Gracias. Pero no está funcionando. Tengo esos campos configurados en la variable de configuración en el constructor pero todavía necesito hacer clic en el botón 'Herramientas de búsqueda' para abrir las opciones de filtro. Cuando investigo un poco más sobre la fuente de visualización, descubrí "filtersHidden":trueque siempre se establece como verdadero en mi caso.
Malaiselvan
1

Me encontré con el mismo problema, pero lo he rastreado a lo que es. Es un proceso de varios pasos para configurar los filtros.

  1. Para que los filtros funcionen, debe agregar el archivo filter_.xml en la carpeta de modelos / formularios. Esto toma un archivo XML normal de Joomla.
  2. Debe tener los filtros configurados como lo menciona @Nagarjun en su modelo
  3. Desde su punto de vista, necesita agregar esta línea en la función de visualización

    $this->activeFilters = $this->get('ActiveFilters');
    
  4. En caso de que tenga docblocks, debe especificarlo como una variable pública :

    /**
      * List of active filters
      *
      * @var    array
      * @since  1.0
      */
    public $activeFilters = array();
    
  5. Finalmente agregue los filtros a su archivo de plantilla:

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