2012-02-09 5 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

今現在のページはリンクにありません?? –

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

私は私のコードサンプルの基礎としてあなたのサンプルコードを使用して回答している必要があります。申し訳ありません。 –

+0

@sir <あなたの設定オブジェクト>はどういう意味ですか? –

+0

これは私の間違いでした。私はこの例を次のようにして始めたはずです。 $ adapter = new Zend_Paginator_Adapter_DbSelect($ result); $ paginator = new Zend_Paginator($ adapter); –

3

$paginator->setPageRange(5);作品に少しより多くの情報を見つけることができます。ただし、この機能をページ管理コントロールに適用する必要があります。
これは私のコントロールのページリンクセクションの外観です。

<!--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

私の<! - 番号のページのリンク - >これは親切に編集を参照してください –

関連する問題