Por padrão, populateState
parece limitar uma chamada à função get('Items')
de qualquer modelo para 20 itens.
Como isso pode ser substituído - reescrevendo populateState
? Escrevendo uma função separada no modelo? Eu fui para a segunda opção ...
public function getAll(){
return $this->_getList($this->getListQuery());
}
que funciona, mas acho que há uma maneira mais Joomla-ish de fazer isso - eu simplesmente não consigo encontrá-lo.
Para responder à pergunta no título sobre "definir" o limite, isso é feito na configuração global do Joomla: "Limite da lista padrão".
Para substituir, os componentes do Joomla geralmente parecem usar isso no modelo: Using $limit = 0
mostra todos os itens
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);
}
Como outros já disseram - coloque isso na função populateState do modelo
$this->setState('list.limit', $limit); #limit=0 removes limit
$this->setState('list.start', $start);
Mas você deve se certificar de que essas linhas estão APÓS
parent::populateState($order, $dir);
ou a classe pai substituirá seus valores
Experimente também isso
protected function populateState($ordering = null, $direction = null)
{
// Load the list state.
$this->setState('list.start', 0);
$this->setState('list.limit', 10);
}