PHPCMS2008内容页分页显示全部的解决办法
问题表现描述以及解决后的显示图示见以下链接:
http://www.liuxq.cn/2009/12/478/
下面直接提供liuxq[www.liuxq.cn]的解决办法,很简单,只要修改一下/include/url.class.php这个文件即可.
打开这个文件,找到并将" function show_pages($page, $pagenumber, $pageurls) "这一行到" function update($contentid,$url) "之间的代码全部替换成以下代码:
{
$pages = '';
$multipage .= '<span>共'.$pagenumber.'页</span>';
$n = 9;//每页显示的页码数
$i = 0;
if ($pagenumber <= $n)
{
$start_page = 1;
$end_page = $pagenumber;
}
else
{
$i = floor($page/$n);
if($page >= 5)
{
if($page+2 >= $pagenumber)
{
$start_page = $page - 6;
}
else{
$start_page = $page - 4;
}
$end_page = ($page + 4) >= $pagenumber ? $pagenumber : $page + 4;
}
else
{
$start_page = 1;
$end_page = 8 >= $pagenumber ? $pagenumber : 8;
}
}
for($i=$start_page; $i<=$end_page; $i++)
{
$pages .= $page == $i ? '<span>'.$i.'</span>' : '<a href="'.$pageurls[$i][1].'" target="_self">'.$i.'</a>';
}
$firstpage =min($page, 1);
$lastpage =max($page,$pagenumber);
$prepage = max($page-1, 1);
$nextpage = min($page+1, $pagenumber);
if($page>1 && $page < $pagenumber)
{
$pagelist=$multipage.'<a href="'.$pageurls[$firstpage][1].'" target="_self">首页</a>'.'<a href="'.$pageurls[$prepage][1].'" target="_self">上一页</a>'.$pages.'<a href="'.$pageurls[$nextpage][1].'" target="_self">下一页</a><a href="'.$pageurls[$lastpage][1].'" target="_self">尾页</a>';
}
elseif($page+1 > $pagenumber)
{
$pagelist=$multipage.'<a href="'.$pageurls[$firstpage][1].'" target="_self">首页</a>'.'<a href="'.$pageurls[$prepage][1].'" target="_self">上一页</a>'.$pages;
}
else
{
$pagelist=$multipage.$pages.'<a href="'.$pageurls[$nextpage][1].'" target="_self">下一页</a><a href="'.$pageurls[$lastpage][1].'" target="_self">尾页</a>';
}
return $pagelist;
}
//重新改造结束 www.liuxq.cn
改造完成,如果是动态URL的话,前台刷新一下页面就能重新看到新的分页样式了,当然,分页的CSS样式需要自己写下了.



