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)); ?>">&laquo; 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 &raquo;</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.

Scris in data de: 2009-08-12 | 2 Comentarii
Scris de: Iankulov Miodrag

Sunt 2 comentarii la acest articol!

sploit 2009-08-14 03:46:24
Bun articolul. Ai folosit vreodata Paginator-ul intr-o situatie ca asta : ~site/index/categorie. --> add route ~site/categorie Sa vedem doar articolele de securitate folosim . ~site/categorie/securitate/ Deci fara route ar veni ~site/index/categorie/securitate/ Acum sa zicem ca vrei sa adaugi si un paginator, adica asa: ~site/categorie/securitate/pagina/4 . Eu nu am incercat inca insa is curios daca se poate face asa cum am descris eu.
admin 2009-08-14 17:28:46
Logic, ca se poate

Scrie si tu un comentariu!

Puteti folosii: <a>,<small>,<strong>,<blockquote>