这是一个帝国cms的分页函数,在原来的基础上需要改了一下,先说需求无论当前页是不是第一页,首页和上一页都显示出来,下面的代码是当 当前页是第一页的时候,首页和上一页这两个标签不出现了,如何判断让其出现呢如图(效果图)
代码是这样的function my_listpage($num,$page,$dolink,$type,$totalpage,$line,$ok,$search="",$add){
global $fun_r,$public_r;
if($num<=$line)
{
$pager['showpage']='';
return $pager;
}
//文件名
if(empty($add['dofile']))
{
$add['dofile']='index';
}
//静态页数
$repagenum=$add['repagenum'];
$page_line=$public_r['listpagelistnum'];
$snum=2;
//$totalpage=ceil($num/$line);//取得总页数
$firststr='<li><a title="Total record"> <b>'.$num.'</b> </a></li>';
//上一页
if($page=1)
{
echo "+++++++++++++++++";
}
if($page<>1)
{
$toppage='<li><a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['startpage'].'</a></li>';
$pagepr=$page-1;
if($pagepr==1)
{
$prido=$add['dofile'].$type;
}
else
{
$prido=$add['dofile'].'_'.$pagepr.$type;
}
$prepage='<li><a href="'.$dolink.$prido.'">'.$fun_r['pripage'].'</a></li>';
}
//下一页
if($page!=$totalpage)
{
$pagenex=$page+1;
$nextpagelink=$repagenum&&$repagenum<$pagenex?eReturnRewritePageLink2($add,$pagenex):$dolink.$add['dofile'].'_'.$pagenex.$type;
$lastpagelink=$repagenum&&$repagenum<$totalpage?eReturnRewritePageLink2($add,$totalpage):$dolink.$add['dofile'].'_'.$totalpage.$type;
$nextpage='<li><a href="'.$nextpagelink.'">'.$fun_r['nextpage'].'</a></li>';
$lastpage='<li><a href="'.$lastpagelink.'">'.$fun_r['lastpage'].'</a></li>';
}
$starti=$page-$snum<1?1:$page-$snum;
$no=0;
for($i=$starti;$i<=$totalpage&&$no<$page_line;$i++)
{
$no++;
if($page==$i)
{
$is_1='<li class="thisclass">';
$is_2="</li>";
}
elseif($i==1)
{
$is_1='<li><a href="'.$dolink.$add['dofile'].$type.'">';
$is_2="</a></li>";
}
else
{
$thispagelink=$repagenum&&$repagenum<$i?eReturnRewritePageLink2($add,$i):$dolink.$add['dofile'].'_'.$i.$type;
$is_1='<li><a href="'.$thispagelink.'">';
$is_2="</a></li>";
}
$returnstr.= $is_1.$i.$is_2;
}
$returnstr=$toppage.$prepage.$returnstr.$nextpage.$lastpage;
$pager['showpage']=$returnstr;
return $pager;
}
上面不知改哪里才能实现效果需求?
代码是这样的function my_listpage($num,$page,$dolink,$type,$totalpage,$line,$ok,$search="",$add){
global $fun_r,$public_r;
if($num<=$line)
{
$pager['showpage']='';
return $pager;
}
//文件名
if(empty($add['dofile']))
{
$add['dofile']='index';
}
//静态页数
$repagenum=$add['repagenum'];
$page_line=$public_r['listpagelistnum'];
$snum=2;
//$totalpage=ceil($num/$line);//取得总页数
$firststr='<li><a title="Total record"> <b>'.$num.'</b> </a></li>';
//上一页
if($page=1)
{
echo "+++++++++++++++++";
}
if($page<>1)
{
$toppage='<li><a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['startpage'].'</a></li>';
$pagepr=$page-1;
if($pagepr==1)
{
$prido=$add['dofile'].$type;
}
else
{
$prido=$add['dofile'].'_'.$pagepr.$type;
}
$prepage='<li><a href="'.$dolink.$prido.'">'.$fun_r['pripage'].'</a></li>';
}
//下一页
if($page!=$totalpage)
{
$pagenex=$page+1;
$nextpagelink=$repagenum&&$repagenum<$pagenex?eReturnRewritePageLink2($add,$pagenex):$dolink.$add['dofile'].'_'.$pagenex.$type;
$lastpagelink=$repagenum&&$repagenum<$totalpage?eReturnRewritePageLink2($add,$totalpage):$dolink.$add['dofile'].'_'.$totalpage.$type;
$nextpage='<li><a href="'.$nextpagelink.'">'.$fun_r['nextpage'].'</a></li>';
$lastpage='<li><a href="'.$lastpagelink.'">'.$fun_r['lastpage'].'</a></li>';
}
$starti=$page-$snum<1?1:$page-$snum;
$no=0;
for($i=$starti;$i<=$totalpage&&$no<$page_line;$i++)
{
$no++;
if($page==$i)
{
$is_1='<li class="thisclass">';
$is_2="</li>";
}
elseif($i==1)
{
$is_1='<li><a href="'.$dolink.$add['dofile'].$type.'">';
$is_2="</a></li>";
}
else
{
$thispagelink=$repagenum&&$repagenum<$i?eReturnRewritePageLink2($add,$i):$dolink.$add['dofile'].'_'.$i.$type;
$is_1='<li><a href="'.$thispagelink.'">';
$is_2="</a></li>";
}
$returnstr.= $is_1.$i.$is_2;
}
$returnstr=$toppage.$prepage.$returnstr.$nextpage.$lastpage;
$pager['showpage']=$returnstr;
return $pager;
}
上面不知改哪里才能实现效果需求?
注意到最后下面 $toppage.$prepage.$returnstr.$nextpage.$lastpage; 这里没,
$toppage 首页
$prepage 上一页
$nextpage 下一页
$lastpage; 最后一页
你始终保持着几个有值就可以了,你改下程序,让这几个一直有值就可以了if($page<>1)
{
$toppage='<li><a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['startpage'].'</a></li>';
$pagepr=$page-1;
if($pagepr==1)
{
$prido=$add['dofile'].$type;
}
else
{
$prido=$add['dofile'].'_'.$pagepr.$type;
}
$prepage='<li><a href="'.$dolink.$prido.'">'.$fun_r['pripage'].'</a></li>';
}
看到这个地方没,他是不等于1的时候,这里才有值的其他的一样,你观察下就知道了
注意到最后下面 $toppage.$prepage.$returnstr.$nextpage.$lastpage; 这里没,
$toppage 首页
$prepage 上一页
$nextpage 下一页
$lastpage; 最后一页
你始终保持着几个有值就可以了,你改下程序,让这几个一直有值就可以了if($page<>1)
{
$toppage='<li><a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['startpage'].'</a></li>';
$pagepr=$page-1;
if($pagepr==1)
{
$prido=$add['dofile'].$type;
}
else
{
$prido=$add['dofile'].'_'.$pagepr.$type;
}
$prepage='<li><a href="'.$dolink.$prido.'">'.$fun_r['pripage'].'</a></li>';
}
看到这个地方没,他是不等于1的时候,这里才有值的其他的一样,你观察下就知道了
好象要判断if($page=1)的情况吧,因为程序中好象没有等于一的情况
//上一页
//if($page=1)
//{
// echo "+++++++++++++++++";
//}
if($page<>1)
{
$toppage='<li><a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['startpage'].'</a></li>';
$pagepr=$page-1;
if($pagepr==1)
{
$prido=$add['dofile'].$type;
}
else
{
$prido=$add['dofile'].'_'.$pagepr.$type;
}
$prepage='<li><a href="'.$dolink.$prido.'">'.$fun_r['pripage'].'</a></li>';
}
else
{
$toppage='<li><a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['startpage'].'</a></li>';
$prepage='<li><a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['pripage'].'</a></li>';
}
所以任何时候都不会输出 首页 和 上一页
else
{
$toppage='<li><a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['startpage'].'</a></li>';
$prepage='<li><a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['pripage'].'</a></li>';
}