2013-10-09 43 views
0

我已經實現了Zend分頁,但無法弄清楚如何限制分頁鏈接的數量。我知道setPageRange,但它不完全是我想要的。Zend分頁與有限數量的鏈接和點之間

目前分頁看起來像這樣。

< | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | > 

但我想是這樣的:

第1頁

​​

爲第8頁

< | 1 | 2 | 3 | ... | 7 | 8 | 9 | ... | 14 | 15 | 16 | > 

的第14頁

< | 1 | 2 | 3 | ... | 13 | 14 | 15 | 16 | > 

回答

0

在這裏我可以給你分頁助手腳本,我已經在我的應用程序之一實現,它是像上面你想要的一樣。

<?php 

if ($this->pageCount) : 
$midRange = floor(sizeof($this->pagesInRange)/2); 
if (($this->current + $midRange) < $this->pageCount && $this->pageCount > 5) : 
    array_pop($this->pagesInRange); 
$display_end = true; 
endif; 

?> 
<div class="paginationControl<?php echo $this->position; ?>"> 

<div class="paginationControl_pages"> 
<!-- Previous page link --> 

<?php if (isset($this->previous)): ?> 
<?php if($this->extraVar != ""){ ?> 
      <a href="<?php echo $this->url(array_merge($this->extraVar,array('page' => $this->previous))). $this->query; ?>" class="paging-active">&nbsp;Previous&nbsp;</a> &nbsp; 
<?php }else {?> 
      <a href="<?php echo $this->url(array('page' => $this->previous)). $this->query; ?>" class="paging-active">&nbsp;Previous&nbsp;</a> &nbsp; 
<?php }?> 
<?php else: ?> 
<span class="paging-active"><strong>&nbsp;Previous&nbsp;</strong></span>&nbsp; 
<?php endif; ?> 
<span ><?php if (($this->current - $midRange) > $this->first && $this->pageCount > 5): ?></span> 
<?php 
array_shift($this->pagesInRange);?> 

<?php if($this->extraVar != ""){ ?> 
    <a href="<?php echo $this->url(array_merge($this->extraVar,array('page' => $this->first))) . $this->query; ?>" ><span class="paging"><?php echo $this->first ?></span></a>... 
<?php } else {?> 
<a href="<?php echo $this->url(array('page' => $this->first)) . $this->query; ?>" ><span class="paging"><?php echo $this->first ?></span></a>... 
<?php }?> 

<?php endif; ?> 
<!-- Numbered page links --> 
<?php foreach ($this->pagesInRange as $page): ?> 

<?php if ($page != $this->current): ?> 

<?php if($this->extraVar != ""){ ?> 
      <a href="<?php echo $this->url(array_merge($this->extraVar,array('page'=>$page))); ?>""><span class="paging"><?php echo $page; ?></span></a> 
     <?php }else{ ?> 
      <a href="<?php echo $this->url(array('page'=>$page)); ?>"><span class="paging"><?php echo $page; ?></span></a> 
     <?php } ?> 

<?php else: ?> 

     <span class="paging-active"><strong><?php echo $page; ?>&nbsp;&nbsp;</strong></span> 
<?php endif; ?> 
<?php endforeach; ?> 
<?php if (!empty($display_end)) : 
?> 
<?php if($this->extraVar != ""){ ?> 
...<a href="<?php echo $this->url(array_merge($this->extraVar,array('page' => $this->last))) . $this->query; ?>" ><span class="paging"><?php echo $this->last ?></span></a> 
<?php }else{?> 
...<a href="<?php echo $this->url(array('page' => $this->last)) . $this->query; ?>" ><span class="paging"><?php echo $this->last ?></span></a> 
<?php }?> 
<?php endif; ?> 
<!-- Next page link --> 
<?php if (isset($this->next)): ?> 
    <?php if($this->extraVar != ""){ ?> 
    &nbsp;<a href="<?php echo $this->url(array_merge($this->extraVar,array('page' => $this->next))) . $this->query; ?>" class="paging-active">&nbsp;Next&nbsp;</a>&nbsp; 
    <?php }else{?> 
&nbsp;<a href="<?php echo $this->url(array('page' => $this->next)) . $this->query; ?>" class="paging-active">&nbsp;Next&nbsp;</a>&nbsp; 
<?php }?> 
<?php else: ?> 
&nbsp;<span class="paging-active"><strong>Next&nbsp;&nbsp;</strong></span>&nbsp; 
<?php endif; ?> 
</div> 
</div> 
<?php endif; ?> 

希望這一定能幫助您獲得您的願望OUTPUT。

+0

白色有點造型它是我想要的,謝謝 –

+0

@Tudor Ravoiu,很高興幫助你。請投票,以便將來有人可以信任我們的答案並使用。 – liyakat