Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
j'ai implémenté aujourd'hui un petit script qui permet de paginer un jeu de données lambda. Le script semble marcher correctement à première vue :
Le jeu de données s'affiche correctement. Si je modifie le setItemCountPerPage ou le setCurrentPageNumber la modification est directement prise en compte. Le problème c'est que ma barre de navigation m'affiche ça à chaque itération :
< Previous | 1 | | | | | Next >
puis
< Previous | | 2 | | | | Next >
puis
< Previous | | | 3 | | | Next >
etc.
Les boutons previous et next marchent correctement. Comment faire obtenir une barre de navigation comme celle ci :
< Previous | 1 | 2 | 3 | 4 | 5 | Next >
Hors ligne
Voici les sources :
pagination.phtml (c/c de la documentation Zend. Peu importe le style utilisé, il y a des incohérences.)
<?php if ($this->pageCount): ?>
<div class="paginationControl">
<!-- Previous page link -->
<?php if (isset($this->previous)): ?>
<a href="<?php echo $this->url(array('page' => $this->previous)); ?>">
< Previous
</a> |
<?php else: ?>
<span class="disabled">< Previous</span> |
<?php endif; ?>
<!-- Numbered page links -->
<?php foreach ($this->pagesInRange as $page): ?>
<?php if ($page != $this->current): ?>
<a href="<?php echo $this->url(array('page' => $page)); ?>">
<?= $page; ?>
</a> |
<?php else: ?>
<?php echo $page; ?> |
<?php endif; ?>
<?php endforeach; ?>
<!-- Next page link -->
<?php if (isset($this->next)): ?>
<a href="<?php echo $this->url(array('page' => $this->next)); ?>">
Next >
</a>
<?php else: ?>
<span class="disabled">Next ></span>
<?php endif; ?>
</div>
<?php endif; ?>
IndexController.php
$news = new Model_DbTable_News();
$news = $news->getNews($this->_request->getParam('page', 1));
$this->view->news = $news;
News.php
class Model_DbTable_News extends Zend_Db_Table
{
protected $_name = 'test';
protected $_primary = 'test_id';
public function getNews($page=1)
{
$query = $this->select();
$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbTableSelect($query));
$paginator->setItemCountPerPage(3);
$paginator->setCurrentPageNumber($page);
return $paginator;
}
Dernière modification par miboo (15-06-2009 17:34:25)
Hors ligne
J'ai une idée con... tes short tags sont activés ?
<?= $page; ?>
est le seul endroit où tu utilises des short tags...
A+, Philippe
Hors ligne
Nickel, ça marche impec'
Merci
Hors ligne
Pages: 1