内容分页的实现方法:

{pc:content action="lists" catid="$catid" order="id DESC" num="1" page="$_GET[page]"}
........
{$pages}
......
{/pc} 用以上方法调用分页函数,可生成phpcms默认的分页样式。 如果需要修改自定义的分页函数,可修改phpcms\libs\functions\global.func.php 下的pages()函数,但是,这个函数是前后台公用的。建议新建自定义函数wz_pages()函数,单独前台调用。或者中英文网站,需要不同分页样式时使用。 ps:修改前记得备份该文件。另,如果后期程序升级可能会重置覆盖该文件,到时候自定义的函数出问题(该情况为做考证,仅猜测,以后遇到再来补充) 自定义分页函数修改具体步骤:
1.添加自定义分页函数
打开phpcms\libs\functions\global.func.php这个文件,找到分页函数,复制一下,粘贴到默认分页函数的下面,重新命名,比如我的就命名为wz_pages,保存。
2.添加自定义函数解析
打开phpcms/libs/classes/template_cache.class.php,找到209行(每个版本不一样,找到下面这句代码)的
$str .= '$pages = pages($'.$op.'_total, $page, $pagesize, $urlrule);';
在这行的下面加上
$str .= '$wz_pages = wz_pages($'.$op.'_total, $page, $pagesize, $urlrule);';
保存。
3.在模板调用
{$pages} 改为 {$wz_page}
即可成功调用自定义函数。 ps:wz_page函数中,自己修改需要的分页配置

后续优化:

使用过程中,发现使用SQL分页的不能正常使用,得再添加如下代码

打开
phpcms/libs/classes/template_cache.class.php,找到178行的
$str .= '$r = $get_db->sql_query("'.$sql.'");$s =
$get_db->fetch_next();$pages=pages($s[\'count\'], $page, $pagesize,
$urlrule);';
在他下面增加:
$str .= '$r = $get_db->sql_query("'.$sql.'");$s =
$get_db->fetch_next();$wz_pages=wz_pages($s[\'count\'], $page,
$pagesize, $urlrule);';

再次后续优化:

有朋友提到,会员中心的收藏列表分页不能使用上面的办法。
因为收藏列表的分页函数直接在其他文件定好了,所以通过修改模板缓存文件是不可行的
下面提供修改办法:
具体是
phpcms\libs\classes\model.class.php  61行
$this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
把上面这行修改成:
$this->pages = wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
(模板中的{$pages}不用改为{$wz_pages})
上面是第一种办法。
不过这样子的话,可能后台也会影响到了,这个地方好像是控制好多地方的
也可以这样修改,还是上面那个文件,61行不要修改。直接在61行下面添加:
$this->wz_pages= wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
再去到:phpcms\modules\member\index.php 718行
把 $pages = $this->favorite_db->pages;
修改为:
$wz_pages = $this->favorite_db->wz_pages;
模板中的{$pages}要修改为{$wz_pages}

这是以收藏列表为例子,其他的也大同小异了、、

PHPCMS快速建站系列之自定义分页函数的更多相关文章

  1. PHPCMS快速建站系列之后台内容自定义修改

    一.后台登录页面 背景图:\statics\images\admin_img 中的 login_bg.jpg 底部版权信息:\phpcms\languages\en 中的 system.lang.ph ...

  2. PHPCMS快速建站系列之phpcms v9 模板标签说明整理

    [摘要]本文介绍phpcms v9中模板标签使用说明. {template "content","header"} 调用根目录下phpcms\template\ ...

  3. PHPCMS快速建站系列之需要掌握的函数

    路径:phpcms\libs\classes\model.class.php /**   * 执行sql查询   * @param $where   查询条件[例`name`='$name']   * ...

  4. PHPCMS快速建站系列之邮箱验证

    1. 登录163邮箱,->设置,开启POP3服务->把SMTP服务器地址复制到PHPCMS后台. 2.开启客户端授权密码 3.填写相关信息,.可以在测试邮箱填入邮箱地址测试

  5. PHPCMS快速建站系列之pc:get标签的应用

    GET标签使用方式如下: {pc:get sql="SELECT * FROM phpcms_member" cache="3600" page="$ ...

  6. PHPCMS快速建站系列之标签循环嵌套

    标签循环嵌套方法,可以实现对PC标签循环调用,代码如下: 在此文件里/phpcms/lib/classes/template_cache.class.php 里的 template_parse 方法里 ...

  7. PHPCMS快速建站系列之标签调用出错

    {pc:content action="position" posid="24" order="listorder ASC" thumb=& ...

  8. PHPCMS快速建站系列之类别调用及类别显示页面

    在需要调用类别的地方,比如列表页,首先写循环前面写上一句: <?php $TYPE = getcache('type_content','commons');?> 这句就是把类别缓存加载进 ...

  9. PHPCMS快速建站系列之常用标签

    <span class="Nmore"><a href="/index.php?m=content&c=index&a=lists&am ...

随机推荐

  1. codeforces--376D--376F(前缀和优化)

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  2. World Finals 1996 Uva 247 (Floyd求闭包)

    思路:用Floyd求传递闭包. 附:逗号后的空格没看到,WA了好多次…….还有就是强连通分量也可以做,但是对这个题来说太麻烦,而且不方便输出,. 代码如下: #include<iostream& ...

  3. Landsat TM DN值转为表观反射率

    日地距离计算参见<中华人民共和国气象行业标准太阳能资源评估方法>  

  4. 解决phpmyadmin 点击表结构时卡顿、一直加载、打不开的问题

    本文内容是转自其它站点,亲测可用. 第一步,打开 ./version_check.php文件,找到以下代码: $save = true; $file ='http://www.phpmyadmin.n ...

  5. generic type

    http://docs.oracle.com/javase/tutorial/java/generics/wildcardGuidelines.html

  6. java dom4j解析xml实例(3)

    代码运行前需要先导入dom4j架包. 需要解析的XML文件test.xml如下: <students> <student age="25"><!--如 ...

  7. android脚步---跟随手指动的小球

    这次的学习主要是在包里面除自动生成的mainactivity.java之外,再新建一个class, DrawView,在mainactivity里面调用DrawView. 在DrawView里面主要是 ...

  8. POJ 1426 Find The Multiple BFS

    没什么好说的 从1开始进行广搜,因为只能包涵0和1,所以下一次需要搜索的值为next=now*10 和 next=now*10+1,每次判断一下就可以了,但是我一直不太明白我的代码为什么C++提交会错 ...

  9. Quartz 2D 初步

    转载自:http://www.cofcool.net/development/2015/06/17/ios-study-note-six-Quartz2D/ Quartz 2D是一个二维绘图引擎,同时 ...

  10. vc6 pbo 文件为空的解决方法

    使用Profile调试vc6应用程序的性能时,将生成pbo文件,今天在vc IDE中增加了命令行启动参数,导致profile无法生成pbo文件,进而无法生成性能报告. 解决方法: 去掉IDE中的命令行 ...