2012-02-09 54 views
3

當使用Zend_Paginator時,我不希望它向我顯示所有分頁鏈接。下面是我如何實現它:如何限制Zend_Paginator中分頁鏈接的數量

$adapter = new Zend_Paginator_Adapter_DbSelect($result); 
    $paginator = new Zend_Paginator($adapter); 
    $page=$this->_getParam('page',1); 
    $paginator->setItemCountPerPage(10); 
    $paginator->setCurrentPageNumber($page); 
    $this->view->paginator=$paginator; 

現在它顯示了我所有的鏈接。例如。每頁有100條記錄和10行,因此它會顯示1到10條鏈接。 如何獲得5個鏈接,1到5? 像這樣:

"start" "previous" 1 2 3 4 5 "Next" "End" 

EDITED

<!--Number page links--> 
<?php foreach ($this->pagesInRange as $page): ?> 
    <?php if ($page != $this->current): ?> 
     <a href="<?= $this->url(array('page' => $page)); ?>"> 
      <span class="fg-button ui-button ui-state-default"><?= $page; ?></span> 
     </a> 
     <?php else: ?> 
      <span class="fg-button ui-button ui-state-default ui-state-disabled" ><?= $page; ?></span> 
     <?php endif; ?> 
    <?php endforeach; ?> 

我如何改變它,這樣它顯示我只有5個環節?

$adapter = new Zend_Paginator_Adapter_DbSelect($select); 
$paginator = new Zend_Paginator($adapter); 

$page=$this->_getParam('page',1); 
$paginator->setItemCountPerPage(10); 
$paginator->setCurrentPageNumber($page); 
$paginator->setPageRange(5); 
$this->view->paginator=$paginator; 

回答

0
<!-- Numbered page links --> 
    <?php foreach ($this->pagesInRange as $page): ?> 
     <?php if ($page != $this->current): ?> 
     <?php if ($page <6): ?> 
      <a href="<?= $this->url(array('page' => $page)); ?>"><span class="fg-button ui-button ui-state-default"><?= $page; ?></span></a> 
     <?php elseif($page <6): ?> 
      <span class="fg-button ui-button ui-state-default ui-state-disabled" ><?= $page; ?></span> 
     <?php endif; ?> 
     <?php endif; ?> 
    <?php endforeach; ?> 
+0

現在當前頁面不在鏈接? – 2012-02-27 13:37:19

0

這是一個很好的。默認情況下,Zend Paginator將默認設置爲10。但方法來覆蓋其計算方法如下:

$adapter = new Zend_Paginator_Adapter_DbSelect($result); 
$paginator = new Zend_Paginator($adapter); 
$page=$this->_getParam('page',1); 
$paginator->setItemCountPerPage(10); 
$paginator->setCurrentPageNumber($page); 
$paginator->setPageRange(5); 
$this->view->paginator=$paginator; 

您可以找到configuration methods for Zend Paginator

+0

,我應該使用您的代碼示例作爲我的代碼示例的基礎上作出了答覆。對於那個很抱歉。 – 2012-02-09 10:02:10

+0

@sir你的意思是<你的配置對象>? – 2012-02-09 10:11:14

+0

這是我的錯誤。我應該開始這個例子: $ adapter = new Zend_Paginator_Adapter_DbSelect($ result); $ paginator = new Zend_Paginator($ adapter); – 2012-02-09 10:19:51

3

$paginator->setPageRange(5);作品對我來說更多的信息。但是,您可能需要在Paginator控件中應用此功能。
這就是我的控件的頁面鏈接部分。

<!--Number page links--> 
     <?php foreach ($this->pagesInRange as $page): ?> 
      <?php if ($page != $this->current) : ?> 
       <a href="<?php echo $this->url(array_merge($params, 
         array('page' => $page))) ?>"> 
        <?php echo $page ?></a> | 
      <?php else: ?> 
        <?php echo $page ?> | 
       <?php endif; endforeach; ?> 
+0

我的<! - 號碼頁鏈接 - >看起來像這樣好心的看編輯 – 2012-02-27 12:52:57