今天发布一个帝国cms修改列表式分页模板教程,利用nginx匹配未生成的html-&gt
分类:热门新闻

今天发布一个帝国cms修改列表式分页模板教程,希望对这方面不熟悉的人喜欢

【1】自己修改帝国cms默认的分页样式(css),这样做的好处是你不用去改动帝国的核心文件,方便以后升级。

本文实例讲述了帝国cms实现用户访问页面自动生成html的方法。分享给大家供大家参考。具体分析如下:

帝国cms没有内置后台修改列表式分页模板,所以需要修改php文件

【2】自己动手去修改帝国的分页(php+css),帝国的分页在e>class>下的t_functions.php这个文件里。

原因:对于服务器资源有限但是数据量非常庞大的网站来说,使用帝国cms在批量生成全部文件的时候速度比较慢,更改了一次模板,往往要更新很久.

因为很多新手对Php不怎么了解,所以今天发布一个列表式分页模板修改教程,教大家修改个性风格的列表式分页模板

===============================================

思路:删除所有html->利用nginx匹配未生成的html->php生成html,如果nginx 检测html已经生成,则直接展示,不跳转到php.

首先解释一下,使用我的这个方法修改列表页模板不会导致帝国cms不正常,

列表页模板[!--show.page--]:分页导航(下拉式)  大概在10-98行;

实现代码如下:

因为使用了自定义函数,跟帝国原函数文件t_funciton.php分离的,所以请大家方向照着我的方法做

列表页模板[!--show.listpage--]:分页导航(列表式) 在101-169行;

复制代码代码如下:location /{
alias /home/web/xxx.com/;
if (!-e $request_filename) {
rewrite /(.*)/(.*).html$ /chtml.php?classid=1&id=$2&ssid=$2&check=checkcode;
}
}
以上配置,用户访问不存在的html的时候会自动展示chtml.php里面的内容,网址不会跳转,相当于是在当前URL下.

效果如下:

内容页模板(返回内容分页):分页导航 在172-228行;

3.php生成:

下面进入修改列表模板正题:

内容页模板(返回下拉式内容分页导航):标题式分页导航 在231-262行。

文件1:chtml.php代码如下:

第一步:

===============================================

复制代码代码如下:$check= stripslashes($_GET['check']);

进入帝国cms后台,点击系统设置-信息设置:里面有个列表分页函数(列表)选项,将里面的函数名修改为user_ShowListMorePage

上面大概介绍了下这个文件下有那些分页,那下面我们就来修改程序分页,但是又不会在升级程序时候带来麻烦。

require('./class/connect.php'); //引入数据库配置文件和公共函数文件
require('./class/db_sql.php'); //引入数据库操作文件
require("./class/functions.php");
require("./class/t_functions.php");
require("./data/dbcache/class.php");
require("./data/dbcache/MemberLevel.php");
require('./class/chtmlfun.php');
$link=db_connect(); //连接MYSQL
$empire=new mysqlquery(); //声明数据库操作类

第二步:

第一步:进入帝国cms后台,点击系统设置->系统参数设置->信息设置:里面有个"列表分页函数(列表)"选项,将里面的函数名修改为user_ShowListMorePage
第二部:复制t_function.php列表式分页代码到 e/class/userfun.php <?php   ?>  之间

if($check=="checkcode"){//checkcode 对应nginx配置的 checkcode
ReSingleInfo('userid','username');//你的帝国后台 id 和 用户名
}

复制t_function.php列表式分页代码到 e/class/userfun.php ?php ? 之间

下面我把分页导航(列表式)拿出来,并带上了注释,如下:

db_close(); //关闭MYSQL链接
$empire=null; //注消操作类变量
?>
文件2修改:

或者复制以下代码也行

图片 1图片 2

e/class/chtmlfun.php

/*自定义分页*/functionuser_ShowListMorePage($num,$page,$dolink,$type,$totalpage,$line,$ok,$search=){global$fun_r,$public_r;if($num=$line){$pager[showpage]=;return$pager;}$page_line=$public_r[listpagelistnum];$snum=2;$totalpage=ceil($num/$line);//取得总页数$firststr=liclass=am-disabledahref=#共.$num./.$totalpage.页/a/li;//$num意思是信息总数$totalpage代表总页数//if($page1){$toppage=liclass=nextahref=.$dolink.index.$type..$fun_r[startpage]./a/li;//首页$pagepr=$page-1;if($pagepr==1){$prido=index.$type;}else{$prido=index_.$pagepr.$type;}$prepage=liclass=nextahref=.$dolink.$prido..$fun_r[pripage]./a/li;//}//if($page!=$totalpage){$pagenex=$page+1;$nextpage=liclass=nextahref=.$dolink.index_.$pagenex.$type..$fun_r[nextpage]./a/li;//$lastpage=liclass=lastlyahref=.$dolink.index_.$totalpage.$type..$fun_r[lastpage]./a/li;//最后一页}$starti=$page-$snum1?1:$page-$snum;$no=0;for($i=$starti;$i=$totalpage$no$page_line;$i++)//详细页码信息{$no++;if($page==$i){$is_1=liclass=am-activeahref=;//当前$is_2=/a/li;}elseif($i==1){$is_1=liahref=.$dolink.index.$type.;//第一页$is_2=/a/li;}else{$is_1=liahref=.$dolink.index_.$i.$type.;//其他页$is_2=/a/li;}$returnstr.=$is_1.$i.$is_2;}$returnstr=divclass=listpageulclass=am-paginationam-pagination-centered.$firststr..$toppage..$prepage..$returnstr..$nextpage..$lastpage./ul/div;$pager[showpage]=$returnstr;return$pager;}
//列表模板之列表式分页
function sys_ShowListMorePage($num,$page,$dolink,$type,$totalpage,$line,$ok,$search="",$add){
    global $fun_r,$public_r
    //num是取得的当前总的文章数,line是栏目设定里的一页显示多少文章数。如果当前文章总数少于设定数,中断程序返回,并且什么也不显示。
    if($num<=$line)
    {
        $pager['showpage']='';
        return $pager;
    }
    //文件名
    if(empty($add['dofile']))
    {
        $add['dofile']='index';
    }
    //静态页数
    $repagenum=$add['repagenum'];
    //listpagelistnum是"系统参数设置" 里的 "信息设置" 下的 "列表分页函数(列表)"下的 "每页显示12个页码"这一项。
    $page_line=$public_r['listpagelistnum'];
    //这个$snum可以控制 "当前页" 显示的位置,设置成2,当前页就显示在第3个位置。
    $snum=2;
    //$totalpage=ceil($num/$line);//取得总页数
    $firststr='<a title="Total record">&nbsp;<b>'.$num.'</b> </a>&nbsp;&nbsp;';//显示总文章数
    //上一页
    if($page<>1)
    {
        //若当前页不是第一页,则显示它的上一页链接
        //$dolink是栏目的地址,$type是网页文件的扩展名,比如 .html ,那个$type之前有个点,是起连接作用的连接符,也就是说$type里面的内容是  .html
        $toppage='<a href="'.$dolink.$add['dofile'].$type.'">'.$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.'">'.$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.'">'.$fun_r['nextpage'].'</a>';
        $lastpage='&nbsp;<a href="'.$lastpagelink.'">'.$fun_r['lastpage'].'</a>';
    }
    //通过判断当前页码与上面讲述的snum的大小,确定页码显示的状态。如果$page-$snum<1,$starti赋值为1,否则$starti赋值为$page-$snum。
    $starti=$page-$snum<1?1:$page-$snum;
    $no=0;
    //此处的for循环就是用来显示页码的,包括从第几个页码开始显示,以及当前页码加粗和显示多少个页码
    for($i=$starti;$i<=$totalpage&&$no<$page_line;$i++)
    {
        $no++;
        //如果是当前页码,则加粗,有需要修改当前页码样式的可在此修改
        if($page==$i)
        {
            $is_1="<b>";
            $is_2="</b>";
        }
        //如果当前页是首页
        elseif($i==1)
        {
            $is_1='<a href="'.$dolink.$add['dofile'].$type.'">';
            $is_2="</a>";
        }
        //其余的页码,可以通过给a加样式来修改显示效果
        else
        {
            $thispagelink=$repagenum&&$repagenum<$i?eReturnRewritePageLink2($add,$i):$dolink.$add['dofile'].'_'.$i.$type;
            $is_1='<a href="'.$thispagelink.'">';
            $is_2="</a>";
        }
        $returnstr.='&nbsp;'.$is_1.$i.$is_2;//$returnstr即是生成的显示页号的代码
    }
    $returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
    $pager['showpage']=$returnstr;
    return $pager;
}

找到ReSingleInfo方法,在下面之前:

第三步:

View Code

复制代码代码如下:$sql=$empire->query("select * from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$add);
新增:如下代码:

修改php代码需要注意的在包含的代码中不能用,只能用 ,建议大家直接修改,html不用加双引号和单引号也行,不会出现任何问题

 

复制代码代码如下:/* 前台生成单个文件 2014-5-8 shanmao*/
$s_aid = (int)$_GET['ssid'];
if($s_aid>0){
$add="id=$s_aid";
$classid=58;//你的栏目id
}
/* 前台生成单个文件 */
文件3修改:functions.php GetHtml 方法尾部新增一下代码,用于直接显示生成后的html:

如果有php相关编译软件,可将代码复制进入修改,不但提高效率还能检测错误

复制代码代码如下:/* 直接展示html 2014-5-8 */
$s_aid = $_GET['ssid'];
$s_play = (int)$_GET['play'];
$s_check = $_GET['check'];
if($s_check=="checkcode"){
if($s_aid && strstr($s_aid,"_play")){
echo file_get_contents($file_p);
}else{
echo file_get_contents($file);
}
}
/* 直接展示html 2014-5-8 */

其中主要修改地方是$returnstr变量,在最后面,在以上代码大家可以看到我写的相关标签,如果自己懂得不多,可以先把我写的html标签和class,id变成自己的

希望本文所述对大家的帝国cms建站有所帮助。

不用全部修改

还要前面加个地方修改时候,只需加标签或者改一些html相关标签就行

本文由威尼斯在线注册平台发布于热门新闻,转载请注明出处:今天发布一个帝国cms修改列表式分页模板教程,利用nginx匹配未生成的html-&gt

上一篇:ajax仿google搜索下拉提示 下一篇:没有了
猜你喜欢
热门排行
精彩图文