帝国模板之家为广大用户提供专业、一站式建站服务。

帝国cms教程

帝国cms教程栏目,提供精品建站,仿站,二次开发,安装,标签使用等图文教程,帮助建设和管理好你的帝国cms站点。

当前位置:首页 > 教程 > 帝国cms教程 > 正文

[原创]帝国cms列表页分页url中的'index_'如何替换为其它前缀

帝国模板之家 2020-10-15 帝国cms教程 评论

帝国cms列表页分页的url链接默认类似于‘http://www.xxxx.cn/xx/xx/index_x.html’,以'index_x.html'结尾的。如何替换‘index_’呢,比如替换成‘p’为前缀?下面帝国模板之家小编给大家分享一下实现方法。具体操作如下:

1.修改列表页生成函数,打开/e/class/functions.php文件,找到ListHtml函数。

定义变量 

$dofile="p";

如图所示:

2.还是在ListHtml函数中,将‘index’,‘index_’替换为我们刚才定义的变量,$dofile。如图所示:

修改完后的ListHtml函数代码如下:

//生成信息列表
function ListHtml($classid,$fields,$enews=0,$userlistr=""){
    global $empire,$dbtbpre,$emod_r,$public_r,$class_r,$class_zr,$fun_r,$class_tr,$level_r,$etable_r;
    //不生成栏目
    if(($enews==0||$enews==3)&&($class_r[$classid]['listdt']||$class_r[$classid]['wburl']||strstr($public_r['nreclass'],','.$classid.',')))
    {
        return '';
    }
    $GLOBALS['navclassid']=$classid;
    $doclass="index";
    $classlevel='';
    $dofile="p";
    $yhvar='qlist';
    if($enews==0)//子栏目列表
    {
        if(InfoIsInTable($class_r[$classid][tbname]))//内部表
        {
            return '';
        }
        $selfclassid=$classid;
        $doenews=0;
        $cr=$empire->fetch1("select classpagekey,intro,classimg,cgroupid,repagenum,bdinfoid,addsql from {$dbtbpre}enewsclass where classid='$classid'");
        //绑定信息
        if(!empty($cr['bdinfoid']))
        {
            ReClassBdInfo($classid);
            return '';
        }
        eAutodo_AddDo('ReListHtml',$classid,0,0,0,0);//moreportdo
        $mid=$class_r[$classid][modid];
        //权限
        if($cr['cgroupid'])
        {
            $classlevel=AddCheckClassLevel($classid,$cr['cgroupid'],'');
        }
        //页面
        $pagetitle=ehtmlspecialchars($class_r[$classid][classname]);
        $pagekey=ehtmlspecialchars($cr['classpagekey']);
        $pagedes=ehtmlspecialchars($cr['intro']);
        $classimg=$cr['classimg'];
        $url=ReturnClassLink($classid);
        $haveclass=0;
        //排序
        if(empty($class_r[$classid][reorder]))
        {
            $addorder="newstime desc";
        }
        else
        {
            $addorder=$class_r[$classid][reorder];
        }
        //分页参数
        $pagefunr=eReturnRewriteLink('classpage',$classid,0);
        $pagefunr['repagenum']=$cr['repagenum'];
        $totalrepage=$cr['repagenum']*$class_r[$classid][lencord];
        if($totalrepage)
        {
            $limit=" limit ".$totalrepage;
        }
        if($class_r[$classid][maxnum])//总记录数
        {
            if($class_r[$classid][maxnum]<$totalrepage)
            {
                $limit=" limit ".$class_r[$classid][maxnum];
            }
            $limitnum=$class_r[$classid][maxnum];
        }
        //优化
        $yhid=$class_r[$classid][yhid];
        if($yhid)
        {
            $yhadd=ReturnYhSql($yhid,$yhvar,1);
        }
        $caddsql=$cr['addsql']?' and ('.$cr['addsql'].')':'';
        $query="select ".ReturnSqlListF($mid)." from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$yhadd."classid='$classid'".$caddsql." order by ".ReturnSetTopSql('list').$addorder.$limit;
        $totalquery="select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$yhadd."classid='$classid'".$caddsql;//统计
        $doclasspath=ReturnSaveClassPath($classid,0);
        $dopath=eReturnTrueEcmsPath().$doclasspath."/";//moreport
        if(empty($class_r[$classid][classurl]))
        {
            $dolink=$public_r[newsurl].$doclasspath."/";
        }
        else
        {
            $dolink=$class_r[$classid][classurl]."/";
        }
        $dotype=$class_r[$classid][classtype];
        $classname=$class_r[$classid][classname];
        $lencord=$class_r[$classid][lencord];//记录数
        $onclick="<script src='".$public_r[newsurl]."e/public/onclick/?enews=doclass&classid=$classid'></script>";
        //模板
        $listtempid=$class_r[$classid][listtempid];
    }
    elseif($enews==5)//标题分类列表
    {
        $mid=$class_tr[$classid]['mid'];
        $tbname=$emod_r[$mid]['tbname'];
        if(InfoIsInTable($tbname))//内部表
        {
            return '';
        }
        $selfclassid=$classid;
        $doenews=1;
        $cr=$empire->fetch1("select tnum,listtempid,maxnum,reorder,timg,intro,pagekey,listdt,repagenum from {$dbtbpre}enewsinfotype where typeid='$classid'");
        //页面
        $pagetitle=ehtmlspecialchars($class_tr[$classid]['tname']);
        $pagekey=ehtmlspecialchars($cr['pagekey']);
        $pagedes=ehtmlspecialchars($cr['intro']);
        $classimg=$cr['timg'];
        $url=ReturnInfoTypeLink($classid);
        $haveclass=1;
        if($cr['listdt'])//动态页面
        {
            return '';
        }
        eAutodo_AddDo('ReTtListHtml',$classid,0,0,0,0);//moreportdo
        //排序
        if(empty($cr['reorder']))
        {
            $addorder='newstime desc';
        }
        else
        {
            $addorder=$cr['reorder'];
        }
        //分页参数
        $pagefunr=eReturnRewriteLink('ttpage',$classid,0);
        $pagefunr['repagenum']=$cr['repagenum'];
        $totalrepage=$cr['repagenum']*$cr['tnum'];
        if($totalrepage)
        {
            $limit=" limit ".$totalrepage;
        }
        if($cr['maxnum'])
        {
            if($cr['maxnum']<$totalrepage)
            {
                $limit=" limit ".$cr['maxnum'];
            }
            $limitnum=$cr['maxnum'];
        }
        //优化
        $yhid=$class_tr[$classid]['yhid'];
        if($yhid)
        {
            $yhadd=ReturnYhSql($yhid,$yhvar,1);
        }
        $query="select ".ReturnSqlListF($mid)." from {$dbtbpre}ecms_".$tbname." where ".$yhadd."ttid='$classid' order by ".ReturnSetTopSql('list').$addorder.$limit;
        $totalquery="select count(*) as total from {$dbtbpre}ecms_".$tbname." where ".$yhadd."ttid='$classid'";//统计
        $doclasspath=ReturnSaveInfoTypePath($classid,0);
        $dopath=eReturnTrueEcmsPath().$doclasspath."/";//moreport
        $dolink=$public_r[newsurl].$doclasspath."/";
        $dotype=$class_tr[$classid]['ttype'];
        $classname=$class_tr[$classid]['tname'];
        $lencord=$cr['tnum'];//记录数
        $onclick="";
        //模板
        $listtempid=$cr['listtempid'];
    }
    elseif($enews==3)//大栏目列表
    {
        if(InfoIsInTable($class_r[$classid][tbname]))//内部表
        {
            return '';
        }
        eAutodo_AddDo('ReListHtml',$classid,0,0,0,0);//moreportdo
        $selfclassid=$classid;
        $doenews=0;
        $cr=$empire->fetch1("select classpagekey,intro,classimg,cgroupid,repagenum,addsql from {$dbtbpre}enewsclass where classid='$classid'");
        $mid=$class_r[$classid][modid];
        //权限
        if($cr['cgroupid'])
        {
            $classlevel=AddCheckClassLevel($classid,$cr['cgroupid'],'');
        }
        //页面
        $pagetitle=ehtmlspecialchars($class_r[$classid][classname]);
        $pagekey=ehtmlspecialchars($cr['classpagekey']);
        $pagedes=ehtmlspecialchars($cr['intro']);
        $classimg=$cr['classimg'];
        $url=ReturnClassLink($classid);
        $haveclass=1;
        //排序
        if(empty($class_r[$classid][reorder]))
        {
            $addorder="newstime desc";
        }
        else
        {
            $addorder=$class_r[$classid][reorder];
        }
        //分页参数
        $pagefunr=eReturnRewriteLink('classpage',$classid,0);
        $pagefunr['repagenum']=$cr['repagenum'];
        $totalrepage=$cr['repagenum']*$class_r[$classid][lencord];
        if($totalrepage)
        {
            $limit=" limit ".$totalrepage;
        }
        if($class_r[$classid][maxnum])
        {
            if($class_r[$classid][maxnum]<$totalrepage)
            {
                $limit=" limit ".$class_r[$classid][maxnum];
            }
            $limitnum=$class_r[$classid][maxnum];
        }
        $whereclass=ReturnClass($class_r[$classid][sonclass]);
        //优化
        $yhid=$class_r[$classid][yhid];
        if($yhid)
        {
            $yhadd=ReturnYhSql($yhid,$yhvar,1);
        }
        $caddsql=$cr['addsql']?' and ('.$cr['addsql'].')':'';
        $query="select ".ReturnSqlListF($mid)." from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$yhadd."(".$whereclass.")".$caddsql." order by ".ReturnSetTopSql('list').$addorder.$limit;
        $totalquery="select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$yhadd."(".$whereclass.")".$caddsql;//统计
        $doclasspath=ReturnSaveClassPath($classid,0);
        $dopath=eReturnTrueEcmsPath().$doclasspath."/";//moreport
        if(empty($class_r[$classid][classurl]))
        {
            $dolink=$public_r[newsurl].$doclasspath."/";
        }
        else
        {
            $dolink=$class_r[$classid][classurl]."/";
        }
        $dotype=$class_r[$classid][classtype];
        $classname=$class_r[$classid][classname];
        $lencord=$class_r[$classid][lencord];//记录数
        $onclick="<script src='".$public_r[newsurl]."e/public/onclick/?enews=doclass&classid=$classid'></script>";
        //模板
        $listtempid=$class_r[$classid][listtempid];
    }
    elseif($enews==4)//按sql语句生成列表
    {
        $selfclassid=0;
        $doenews=1;
        $userlistr['listsql']=RepSqlTbpre($userlistr['listsql']);
        $userlistr['totalsql']=RepSqlTbpre($userlistr['totalsql']);
        //页面
        $pagetitle=ehtmlspecialchars($userlistr['pagetitle']);
        $pagekey=ehtmlspecialchars($userlistr['pagekeywords']);
        $pagedes=ehtmlspecialchars($userlistr['pagedescription']);
        $haveclass=1;
        if($userlistr['maxnum'])//最大查询数
        {
            $limit=" limit ".$userlistr['maxnum'];
            $limitnum=$userlistr['maxnum'];
        }
        $query=stripSlashes($userlistr['listsql']).$limit;
        //统计
        $totalquery=stripSlashes($userlistr['totalsql']);
        $dopath=eReturnTrueEcmsPath().'e/data/'.$userlistr['filepath'];//maddpath
        $dolink=$public_r[newsurl].str_replace('../../','',$userlistr['filepath']);
        $dotype=$userlistr['filetype'];
        $classname=$userlistr['pagetitle'];
        $lencord=$userlistr['lencord'];//记录数
        $onclick='';
        $url=ReturnUserPLink($pagetitle,$dolink);
        //模板
        $listtempid=$userlistr['listtempid'];
    }
    if(empty($lencord))
    {
        $lencord=25;
    }
    //列表模板
    $listtemp_r=GetListTemp($listtempid);
    $listtemp=$listtemp_r[temptext];
    $subnews=$listtemp_r[subnews];
    $subtitle=$listtemp_r[subtitle];
    $docode=$listtemp_r[docode];
    $listvar=str_replace('[!--news.url--]',$public_r[newsurl],$listtemp_r[listvar]);
    $rownum=$listtemp_r[rownum];
    $formatdate=$listtemp_r[showdate];
    if(empty($rownum))
    {
        $rownum=1;
    }
    if(empty($mid))
    {
        $mid=$listtemp_r[modid];
    }
    $field=ReturnReplaceListF($mid);
    //分页参数
    $pagefunr['dofile']=$dofile;
    //分页列表函数
    if(!empty($public_r['listpagefun'])||!empty($public_r['listpagelistfun']))
    {
        if(strstr($listtemp,'[!--show.page--]'))//下拉式
        {
            $thefun=$public_r['listpagefun'];
            $bereplistpage='[!--show.page--]';
        }
        else//列表式
        {
            $thefun=$public_r['listpagelistfun'];
            $bereplistpage='[!--show.listpage--]';
        }
    }
    else
    {
        $thefun='sys_ShowListPage';
        $bereplistpage='[!--show.page--]';
    }
    //替换模板变量
    $listtemp=str_replace('[!--newsnav--]',$url,$listtemp);//位置导航
    $listtemp=Class_ReplaceSvars($listtemp,$url,$selfclassid,$pagetitle,$pagekey,$pagedes,$classimg,$add,$doenews);
    $listtemp=str_replace('[!--page.stats--]',$onclick,$listtemp);
    $no=1;
    $ok=0;
    $changerow=1;
    $num=$empire->gettotal($totalquery);
    //最大数
    if($limitnum&&$limitnum<$num)
    {
        $num=$limitnum;
    }
    $page=ceil($num/$lencord);
    //取得列表模板
    $list_exp="[!--empirenews.listtemp--]";
    $list_r=explode($list_exp,$listtemp);
    //无信息
    if(empty($num))
    {
        $noinfopath=$dopath.$dofile.$dotype;
        NotinfoListHtml($noinfopath,$list_r,$classlevel);
        return "";
    }
    $sql=$empire->query($query);
    $listtext=$list_r[1];
    while($k=$empire->fetch($sql))
    {
        //替换列表变量
        $repvar=ReplaceListVars($no,$listvar,$subnews,$subtitle,$formatdate,$url,$haveclass,$k,$field,$docode);
        $listtext=str_replace("<!--list.var".$changerow."-->",$repvar,$listtext);
        $changerow+=1;
        //超过行数
        if($changerow>$rownum)
        {
            $changerow=1;
            $string.=$listtext;
            $listtext=$list_r[1];
        }
        if($no%$lencord==0||($num%$lencord<>0&&$num==$no))
        {
            $ok+=1;
            $pagenum=ceil($no/$lencord);
            //首页
            if($pagenum==1)
            {
                $path=$dopath.$dofile.$dotype;
            }
            else
            {
                $path=$dopath.$dofile.$ok.$dotype;
            }
            //取得分页参数
            $returnpager=$thefun($num,$pagenum,$dolink,$dotype,$page,$lencord,$ok,$myoptions,$pagefunr);
            $showpage=$returnpager['showpage'];
            $myoptions=$returnpager['option'];
            $list1=str_replace($bereplistpage,$showpage,$list_r[0]);
            $list2=str_replace($bereplistpage,$showpage,$list_r[2]);
            //多余数据
            if($changerow<=$rownum&&$listtext<>$list_r[1])
            {
                $string.=$listtext;
            }
            $listtext=$list_r[1];
            $changerow=1;
            $string=$list1.$string.$list2;
            //替换分页数
            $string=str_replace('[!--list.pageno--]',($pagenum==1?'':$pagenum),$string);
            WriteFiletext($path,$classlevel.$string);
            $string='';
        }
        $no++;
    }
    $empire->free($sql);
}
2.修改分页函数中的url,我们以列表模板之列表式分页函数(sys_ShowListMorePage)为例来讲解,打开/e/class/t_functions.php,找到sys_ShowListMorePage函数。将代码替换为如下代码:
//列表模板之列表式分页
function sys_ShowListMorePage($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='<a title="Total record">&nbsp;<b>'.$num.'</b> </a>&nbsp;&nbsp;';
    //上一页
    if($page<>1)
    {
        $toppage='<a href="'.$dolink.$add['dofile'].$type.'" target="_self">'.$fun_r['startpage'].'</a>&nbsp;';
        $pagepr=$page-1;
        if($pagepr==1)
        {
            $prido=$add['dofile'].$type;
        }
        else
        {
            $prido=$add['dofile'].$pagepr.$type;
        }
        $prepage='<a href="'.$dolink.$prido.'" target="_self">'.$fun_r['pripage'].'</a>';
    }
    //下一页
    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='&nbsp;<a href="'.$nextpagelink.'" target="_self">'.$fun_r['nextpage'].'</a>';
        $lastpage='&nbsp;<a href="'.$lastpagelink.'" target="_self">'.$fun_r['lastpage'].'</a>';
    }
    $starti=$page-$snum<1?1:$page-$snum;
    $no=0;
    for($i=$starti;$i<=$totalpage&&$no<$page_line;$i++)
    {
        $no++;
        if($page==$i)
        {
            $is_1='<a href="" class="paging_on" target="_self">';
            $is_2="</a>";
        }
        elseif($i==1)
        {
            $is_1='<a href="'.$dolink.$add['dofile'].$type.'" target="_self">';
            $is_2="</a>";
        }
        else
        {
            $thispagelink=$repagenum&&$repagenum<$i?eReturnRewritePageLink2($add,$i):$dolink.$add['dofile'].$i.$type;
            $is_1='<a href="'.$thispagelink.'" target="_self">';
            $is_2="</a>";
        }
        $returnstr.=$is_1.$i.$is_2;
    }
    $returnstr=$toppage.$prepage.$returnstr.$nextpage.$lastpage;
    $pager['showpage']=$returnstr;
    return $pager;
}

3.配置web服务器默认访问页面中加上 p.html。apache配置如下(其他类型服务器,请自行配置),

<VirtualHost *:8166>
   ServerAdmin 7878787@qq.com
   DocumentRoot "F:/webserver/www/181"
    <Directory "F:/webserver/www/181">
           Options Indexes FollowSymLinks MultiViews
           AllowOverride All
           Require all granted
           DirectoryIndex  index.php index.html p.html
    </Directory>
</VirtualHost>

推荐教程:帝国CMS教程

以上就是帝国cms列表页分页url中的'index_'如何替换为其它前缀的方法,更多相关内容请关注帝国模板之家

人生不要怕失败,因为失败连着成功。只有那些有勇气的人,才敢不断挑战人生。

已有 位小伙伴发表了看法

欢迎 发表评论

  • 匿名发表

关于

帝国cms模板

网页插件

帝国模板之家 | www.moyouyouw.cn

本站所有模板/文章除标明原创外,均来自网络转载,版权归原作者所有,如果有侵犯到您的权益,请联系站长删除,谢谢! 寻找帝国cms模板首选帝国模板之家,用心做站,上线至今广受好评,值得信赖!

  • 交流群1:帝国cms交流群1
  • 交流群2:帝国cms交流群2
在线QQ 给我留言