Domanda

Ho un certo numero di collezioni che hanno blocchi che in uscita il contenuto alle rotte frontend (Il mio account, caratteristiche frontend).

Ho bisogno di impaginare alcuni di questi. So che i metodi di impaginazione esistono su collezioni, ma c'è un modo per gestire la parte querystring come bene? Odio di reinventare la ruota ...

È stato utile?

Soluzione

In realtà è abbastanza semplice.

Nel blocco principale che chiama la vostra collezione di rendere, aggiungere la seguente:

protected function _prepareLayout()
{
    parent::_prepareLayout();

    $pager = $this->getLayout()->createBlock('page/html_pager', 'your.custom.blockname.pager')
        ->setCollection($this->getCollection()); //call your own collection getter here, name it something better than getCollection, please; *or* your call to getResourceModel()
    $this->setChild('pager', $pager);
    return $this;
}

public function getPagerHtml()
{
    return $this->getChildHtml('pager');
}

Per impostazione predefinita, questo limiterà la vostra collezione di 10-at-a-time! Dolce !!

Poi, dal modello phtml associato alla vostra collezione, aggiungere i controlli cercapersone ribadendo l'uscita del nostro altro metodo, getPagerHtml:

<?php echo $this->getPagerHtml(); ?>

Fonte: Experience. E inoltre, il blocco sales/order_history in Magento.

Altri suggerimenti

Ho usato questo all'interno della classe Block (E 'Mage_Catalog_Block_Navigation):

$pager = new Mage_Page_Block_Html_Pager();
$pager->setLimit(100)->setCollection(...getCollection());
$this->setChild('pager', $pager);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top