Par défaut, populateState
semble limiter l'appel à la fonction get('Items')
de tout modèle à 20 éléments.
Comment cela peut-il être annulé - en ré-écrivant populateState
? En écrivant une fonction séparée dans le modèle? Je suis allé pour la deuxième option ...
public function getAll(){
return $this->_getList($this->getListQuery());
}
ce qui fonctionne, mais je pense qu'il y a une façon plus Joomla-ish de le faire - je ne peux pas le trouver.
Pour répondre à la question dans le titre concernant le "réglage" de la limite, ceci est effectué dans la configuration globale de Joomla: "Limite de liste par défaut".
Pour remplacer, les composants Joomla semblent généralement utiliser cela dans le modèle: Using $limit = 0
montre tous les articles
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);
}
Comme d'autres l'ont déjà dit - mettez ceci dans la fonction populateState du modèle
$this->setState('list.limit', $limit); #limit=0 removes limit
$this->setState('list.start', $start);
Mais vous devez vous assurer que ces lignes sont APRES
parent::populateState($order, $dir);
ou la classe parente remplacera vos valeurs
Essayez ceci aussi
protected function populateState($ordering = null, $direction = null)
{
// Load the list state.
$this->setState('list.start', 0);
$this->setState('list.limit', 10);
}