PHPCMS V9二次开发自定义分页函数的解决方案

下面为大家分享一个PHPCMS V9二次开发自定义分页函数的方法。

方法如下:

首先打开 phpcms\libs\functions\global.func.php这个文件,找到分页函数,复制一下,粘贴到默认分页函数的下面,重新命名,比如我的就命名为wz_pages,保存。

打开 phpcms/libs/classes/template_cache.class.php,找到207行的:

  1. $str .= ‘$pages = pages($‘.$op.‘_total, $page, $pagesize, $urlrule);‘;

在这行的下面加上:

$str .= ‘$wz_pages = wz_pages($‘.$op.‘_total, $page, $pagesize, $urlrule);‘;
保存。最后,如果你要使用你自定义的分页函数,那么在模板中直接用{$wz_pages}就可以了,以后要修改样式,直接修改:

phpcms\libs\functions\global.func.php这个文件中的wz_pages函数就可以了,不会影响到后台。

后续优化:

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

打开 phpcms/libs/classes/template_cache.class.php,找到178行的:

  1. $str .= ‘$r = $get_db->sql_query("‘.$sql.‘");$s = $get_db->fetch_next();$pages=pages($s[\‘count\‘], $page, $pagesize, $urlrule);‘;

在他下面增加:

  1. $str .= ‘$r = $get_db->sql_query("‘.$sql.‘");$s = $get_db->fetch_next();$wz_pages=wz_pages($s[\‘count\‘], $page, $pagesize, $urlrule);‘;

这样,SQL的分页也正常了。

再次后续优化:

有朋友提到,会员中心的收藏列表分页不能使用上面的办法。

因为收藏列表的分页函数直接在其他文件定好了,所以通过修改模板缓存文件是不可行的,下面提供修改办法:

具体修改见下面:

phpcms\libs\classes\model.class.php 第61行

  1. $this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);

把上面这行修改成:

  1. $this->pages = wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);

(模板中的{$pages}不用改为{$wz_pages})

上面是第一种办法。

不过这样子的话,可能后台也会影响到了,这个地方好像是控制好多地方的, 也可以这样修改,还是上面那个文件,61行不要修改。直接在61行下面添加:

  1. $this->wz_pages= wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);

再去到:phpcms\modules\member\index.php 718行,把下面这行

  1. $pages = $this->favorite_db->pages;

修改为:

  1. $wz_pages = $this->favorite_db->wz_pages;

模板中的{$pages}要修改为{$wz_pages},这是以收藏列表为例子,其他的也大同小异了。

时间: 2024-12-09 07:47:16

PHPCMS V9二次开发自定义分页函数的解决方案的相关文章

[PHPCMS V9二次开发]自定义字段模型-添加字段类型

步骤/方法 打开phpcms\modules\content\fields目录,复制文件夹downfiles,并改名为textgroups. 打开phpcms\modules\content\fields\fields.inc.PHP文件,增加字段类型: 'textgroups'=>'多文件上传', 打开phpcms\modules\content\fields\textgroups目录(第一步复制的文件夹),修改以下文件: form.inc.php function textgroups($f

PHPCMS v9 二次开发_验证码结合Session开发

本文主要讲解了在V9中使用v9自带验证码并且需要使用session的情况下,多种问题的解决.:).如有问题或者更好的解决办法,希望不吝赐教. 1.前端调用验证码 pc_base::load_sys_class('form', '', 0); {form::checkcode('code_img', '4', '14', 120, 26)} 2.管理端验证码验证 $code = isset($_POST['code']) && trim($_POST['code']) ? trim($_PO

phpcms程序二次开发记录

1. phpcms/base.php 中的 pc_base 类 静态类,主要加载各个文件使用.2. pc_base 中 load_sys_func 等带 sys的函数,基本都是加载 lib下文件. func加载functions下: class 加载 class下3. pc_base 中 函数一般第一个参数为文件名,第二个参数为路径,第3个参数有一般为:加载类是否实体化4. pc_base 中 load_app开头则为加载modules下的 functions和class等5. 网站开始入口控制

phpcms v9后台多表查询分页代码

phpcms v9里面自带的listinfo分页函数蛮好用的,可惜啊.不支持多表查询并分页. 看了一下前台模板层支持get标签,支持多表查询,支持分页.刚好可以把这个功能搬到后台来使用. 我们现在对get_model.class.php进行改造使他能支持多表查询并分页. <?php defined('IN_PHPCMS') or exit('No permission resources.'); pc_base::load_sys_class('model', '', 0); class get

phpcms v9 搜索页显示自定义字段

phpcms用的人可能太少了.网上搜索教程根本没 有.官方教程也简单的可怕.这种cms不死才怪. 搜索结果页的显示,由/phpcms/modules/search/index.php 这个文件决定 大约160行 $data = $this->content_db->select($where, '*'); 这一句的data可以直接在模板上显示.注意,模板上的data这个变化可能需要改名,否则,可能与导航上的data变量重名.无法显示搜索结果 模板这样调用{loop $data2 $i $r}

Creo二次开发--内存清理函数

我们在处理模型文件时,总会遇到内存环境的清除问题.一个干净的Creo工作环境.是保证工作能顺利完毕的保障. ProMdlEraseNotDisplayed()函数提供了清除未显示模型的功能. 当须要循环运行某些事物时,在打开新模型前运行该函数,会使工作环境干净. ProMdlErase(ProMdl mdl)函数的说明是这种: The erasing action caused by this function will be finished only after the execution

FineReport——JS二次开发(分页预览)

BS访问某个cpt模板,报表servlet将会将cpt文件解析成对应的html,报表内容最终转换为一个table,位于id=content-container的div中. 在模板和html页面中,他们定义的方法可以相互调用,不过得先获取到对象: 由于分页预览只是展现,在这种查看方式下FR没有现成单元格获取方法,可以用jquery语法获取指定单元格,如: $("tr[tridx=行号]","div.content-container").children().eq(列

ProE二次开发 Creo二次开发 自定义零件库

www.mcadex.comQQ:910361522 程序免费下载地址: http://www.mcadex.com/bbs_1431046_ss20130113/thread_315978_1.html

微信二次开发自定义接受事件推送的代码

<?php /** * wechat php test */ //define your token define("TOKEN", "<span style="color:#ff0000;">xxxxx</span>"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->responseMsg(); class wechatCallbackapiTe