wake-up-neo.com

Como definir o limite de obtenção ('Itens')?

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.

5
codinghands

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);
}
5
GDP

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

4
mhorne

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);
    }
1
Jextn