Zend_Paginator custom url\'s
Inainte de toate vreau sa spun ca nu voi acoperii prea mult in acest post, decat basics, cum sa setati url-ul, presupun ca deja aveti basics cu Zend_Paginator so:
Ok, url-urile default pt Zend_Paginator sunt: controller/action/page/
age, well astazi am avut nevoie de ceva diferit, din moment ce am mai avut m-ai multe pagina-ri pe o pagina.
In controller face-ti normal de exemplu:
private function showData($_id)
{
$data = $this->artists_categories
->select();
$do = $this->db->fetchAll($data);
if (count($do) > 0) {
$paginator = Zend_Paginator::factory($do);
$paginator->setItemCountPerPage(5)
->setPageRange(5)
->setCurrentPageNumber($_id);
return $paginator;
}else{
return false;
}
}
In views/scripts/action_name/pag/file_name setati:
<?php if ($this->pageCount): ?>
<ul class="top pag clearfix">
<?php if(count($this->pagesInRange) >= 2): ?>
<li>Go to page:</li>
<?php endif;?>
<?php if (isset($this->previous)): ?>
<li><a href="<?= $this->url(array('artists' => 'page', 'id' => $this->previous)); ?>">« Previous</a> </li>
<?php endif; ?>
<?php if(count($this->pagesInRange) >= 2): ?>
<?php foreach ($this->pagesInRange as $page): ?>
<li><a href="<?= $this->url(array('artists' => 'page', 'id' => $page)); ?>" <?php if($page == $this->current): ?>id="selected"<?php endif;?>><?=$page;?></a> </li>
<?php endforeach; ?>
<?php endif; ?>
<?php if (isset($this->next)): ?>
<li><a href="<?= $this->url(array('artists' => 'page', 'id' => $this->next)); ?>">Next »</a></li>
<?php endif; ?>
</ul>
<?php endif; ?>
Url-ul setat mai sus arata cam asa controller/action/artists/page/id/Id-ul
Sa nu uitati sa setati si route
/* Artists */
$ad->addRoute( 'artists', new Zend_Controller_Router_Route('artists/index/page/artists/id/:id', array('module' => 'admin','controller' => 'artists', 'action' => 'index')) );
Sper sa va fie de folos.
