[Zend] comment extraire un chaine
Bonjour,
Je travail avec Zend 1.x sur un projet ou je doit recuperer le nombre de page dans une url.
dans l'objectif de l'enregistrer comme preference de l'utilisateur.
voici un exmple d'url:
Code:
requete/resultat/acceuil/id/1/page/1/count/150/cookies1215465161564878b112bv13%232bn1%3b21%b12n%v213%21vb32nc1vb35/
cette url est une url simplifier comment recuperer ce qui se trouve après : en l'occurence le nombre ou la chaine de caractère la fonction doit me permettre de recuprer tous ce qui est après qu'ils prennent 1,2 ou 6 de longeurs..
J'ai essayé avec mais je vois comment le faire avec le moins de code possible
Peut-être que vous oui?
Merci pour vos réaction.
Zend ne renvoi pas le nombres de d'element en cours...
J'ai une vue specialement faite pour la pagination la voici:
Code:
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"
Code:
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:
Code:
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.