it-swarm.dev

Come impostare il limite get ('Articoli')?

Per impostazione predefinita, populateState sembra limitare una chiamata alla funzione get('Items') di qualsiasi modello a 20 elementi.

Come può essere sovrascritto - riscrivendo populateState? Scrivendo una funzione separata nel modello? Sono andato per la seconda opzione ...

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

che funziona, ma penso che ci sia un altro modo di Joomla per farlo - non riesco proprio a trovarlo.

5
codinghands

Per rispondere alla domanda nel titolo "impostazione" del limite, questo viene fatto nella configurazione globale di Joomla: "Limite elenco predefinito".

Per sovrascrivere, i componenti di Joomla sembrano generalmente usarlo nel modello: usando $limit = 0 mostra tutti gli elementi

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

Come altri hanno già detto, inseriscilo nella funzione populateState del modello

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

Ma devi assicurarti che queste linee siano DOPO

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

o la classe genitore sovrascriverà i tuoi valori

4
mhorne

Prova anche questo

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