it-swarm-es.tech

¿Cómo establecer el límite de get ('Artículos')?

Por defecto, populateState parece limitar una llamada a la función get('Items') de cualquier modelo a 20 elementos.

¿Cómo se puede anular esto reescribiendo populateState? Al escribir una función separada en el modelo? Fui por la segunda opción ...

public function getAll(){
    return $this->_getList($this->getListQuery());
}

lo que funciona, pero creo que hay una manera más Joomla-ish de hacer esto, simplemente no puedo encontrarlo.

5
codinghands

Para responder a la pregunta en el título sobre "establecer" el límite, esto se hace en la configuración global de Joomla: "Límite de lista predeterminado".

Para anular, los componentes de Joomla generalmente parecen usar esto en el modelo: Usando $limit = 0 muestra todos los elementos

protected function populateState($ordering = null, $direction = null)
{
    // set limit
    $this->setState('list.limit', $limit);
    // set start (eg. what record to begin pagination at)
    $this->setState('list.start', $value);
}
5
GDP

Como han dicho otros, ponga esto en la función populateState del modelo

$this->setState('list.limit', $limit); #limit=0 removes limit
$this->setState('list.start', $start);

Pero debes asegurarte de que estas líneas estén DESPUÉS

parent::populateState($order, $dir);

o la clase padre anulará sus valores

4
mhorne

Prueba esto también

protected function populateState($ordering = null, $direction = null)
    {
    // Load the list state.
    $this->setState('list.start', 0);
    $this->setState('list.limit', 10);
    }
1
Jextn