J'ai une vue specialement faite pour la pagination la voici:
1 2 3 4 5 6 7
|
<?php if ($list instanceof Zend_Paginator && $filter->isPaginated()) echo $this->paginationControl(
$list,
'Sliding',
'partials/paginator.phtml',
array('numberOfPagesByStep' => 50)
) ?> |
ceci affiche un select(html) avec le nombre d'elements voulu dans cette même page et avec un saut(numberOfPagesByStep) de 50 elem dans la page.
Quand je fais un choix dans mon select, la page ce met a jours et l'url passe à count/150 si je choisi "150"
http://localhost:8000/module/controller/action/page/1/count/150
Mon souci c'est que je veux récuprer le nombre d'element de ma page après modification pour pouvoir l'enregistrer en BDD..
j'ai essayé cette methode de Zend_Paginator via "$this->itemCountPerPage" dans ma vue:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
/**
* Returns the number of items per page.
*
* @return integer
*/
public function getItemCountPerPage()
{
if (empty($this->_itemCountPerPage)) {
$this->_itemCountPerPage = self::getDefaultItemCountPerPage();
}
return $this->_itemCountPerPage;
}
/**
* Creates the page collection.
*
* @param string $scrollingStyle Scrolling style
* @return stdClass
*/
protected function _createPages($scrollingStyle = null)
{
$pageCount = $this->count();
$currentPageNumber = $this->getCurrentPageNumber();
$pages = new stdClass();
$pages->pageCount = $pageCount;
$pages->itemCountPerPage = $this->getItemCountPerPage();
$pages->first = 1;
$pages->current = $currentPageNumber;
$pages->last = $pageCount;
// Previous and next
if ($currentPageNumber - 1 > 0) {
$pages->previous = $currentPageNumber - 1;
}
if ($currentPageNumber + 1 <= $pageCount) {
$pages->next = $currentPageNumber + 1;
}
// Pages in range
$scrollingStyle = $this->_loadScrollingStyle($scrollingStyle);
$pages->pagesInRange = $scrollingStyle->getPages($this);
$pages->firstPageInRange = min($pages->pagesInRange);
$pages->lastPageInRange = max($pages->pagesInRange);
// Item numbers
if ($this->getCurrentItems() !== null) {
$pages->currentItemCount = $this->getCurrentItemCount();
$pages->itemCountPerPage = $this->getItemCountPerPage();
$pages->totalItemCount = $this->getTotalItemCount();
$pages->firstItemNumber = (($currentPageNumber - 1) * $this->getItemCountPerPage()) + 1;
$pages->lastItemNumber = $pages->firstItemNumber + $pages->currentItemCount - 1;
}
return $pages;
} |
mais je récupère systématiquement le premier elem donc "50" et pas l'elem en cours..
j'ai fais un dump de $page de ma fonction _createPages mais rien avec la valeur souhaiter..
Ps: je precise cela, je fais une requete ajax pour enregistrer la valeur en BDD. le traitement est envoyé via ajax dans mon controller pour traitement..
Merci pour vos réactions.
Partager