我想限制下面我的分页php脚本上显示的页数。这是几年前为我制作的剧本,尽管我在这里已经阅读过类似的问题,但他们的编码却截然不同。
对此的任何帮助都将非常感激。
这是我目前的剧本:
<?php
if ($max_pages>1) {
echo "<br>";
if ($page>0) {
echo '<a href="'.$base_url.$sites_directory.($category_id==0?($page==1?'':($page-1).'/'):$category_id.'/'.$paginate[0].($page==1?'':'_'.($page-1)).'/').'" class="pagination">Previous</a>';
}
for ($x=0;$x<$max_pages;$x++) {
if ($page<>$x) {
echo '<a href="'.$base_url.$sites_directory.($category_id==0?($x==0?'':$x.'/'):$category_id.'/'.$paginate[0].($x==0?'':'_'.($x)).'/').'" class="pagination">'.($x+1).'</a>';
}
else {
echo '<span class="pagination">'.($x+1).'</span>';
}
}
if (($page+1<>$max_pages)) {
echo '<a href="'.$base_url.$sites_directory.($category_id==0?($page==($max_pages-1)?'':($page+1).'/'):$category_id.'/'.$paginate[0].($page==($max_pages-1)?'':'_'.($page+1)).'/').'" class="pagination">Next</a>';
}
}?>
答案 0 :(得分:1)
您当前的脚本在{和$x
之间循环$max_pages
。
您可以做的是先用$from_page
和$to_page
替换它们:
$from_page = 0;
$to_page = $max_pages;
...
for ($x=$from_page; $x < $to_page; $x++)
此时脚本将像以前一样工作。
现在,如果您希望仅在$N
之前的$N
页面显示$page
之后的$N = 5; // display 5+5+1 = 11 pages
$from_page = $page - $N; if ($from_page < 0) $from_page = 0;
$to_page = $from_page + 2*$N+1; if ($to_page > $max_pages) $to_page = $max_pages;
$from_page = $to_page - 2*$N-1; if ($from_page < 0) $from_page = 0;
页面,
$max_pages-1
也许不是最优雅的方式,但它会尝试适合以当前页面为中心的11页区域。您可能还想显示指向第0页和<?php
if ($max_pages>1)
{
$N = 5; // display 5+5+1 = 11 pages
$to_page = min($max_pages, max(0, $page - $N) + 2*$N+1);
$from_page = max($to_page - 2*$N-1, 0);
echo "<br>";
if ($page > 0)
{
echo '<a href="'.$base_url.$sites_directory.($category_id==0?($page==1?'':($page-1).'/'):$category_id.'/'.$paginate[0].($page==1?'':'_'.($page-1)).'/').'" class="pagination">Previous</a>';
}
for ($x=$from_page; $x < $to_page; $x++) {
if ($page != $x) {
echo '<a href="'.$base_url.$sites_directory.($category_id==0?($x==0?'':$x.'/'):$category_id.'/'.$paginate[0].($x==0?'':'_'.($x)).'/').'" class="pagination">'.($x+1).'</a>';
}
else {
echo '<span class="pagination">'.($x+1).'</span>';
}
}
if (($page+1<>$max_pages)) {
echo '<a href="'.$base_url.$sites_directory.($category_id==0?($page==($max_pages-1)?'':($page+1).'/'):$category_id.'/'.$paginate[0].($page==($max_pages-1)?'':'_'.($page+1)).'/').'" class="pagination">Next</a>';
}
}?>
的链接。
{{1}}