pbcms添加循环数字标签

背景:看到群里有人问想在列表页面分页的时候,新的分页里打开的数字还是从1开始计算.当时想不是很简单吗,直接使用php的循环语句赋值就可以了,后来一想不对劲,模板文件是html后缀的不是.php格式的文件不能直接使用php语句.所以想起之前做的自定义标签.这里就是添加了一个自定义标签.(目的就是把下图从11-20变为1-10)

之前的展示为:

 

 前端标签

 
 <a href="[list:link]">[list:num][list:title]</a>

其中[list:num]是我们新增的标签

修改的后端:

\apps\home\controller\ParserController.php 解析标签的类
修改 public function parserListLabel($content, $cscode = '') 这个方法

找到此方法内的这一句:

复制代码
 foreach ($data as $value) { // 按查询数据条数循环
                    $one_html = $matches[2][$i];
                    for ($j = 0; $j < $count2; $j ++) { // 循环替换数据
                        $params = $this->parserParam($matches2[2][$j]);
                        $one_html = $this->parserList($matches2[1][$j], $matches2[0][$j], $one_html, $value, $params, $key);
                    }
                    
                    $key ++;
                    $out_html .= $one_html;
复制代码

然后修改以下两句:

foreach ($data as $value) { // 按查询数据条数循环

$one_html = $this->parserList($matches2[1][$j], $matches2[0][$j], $one_html, $value, $params, $key);

修改为

foreach ($data as $jb=>$value) { // 按查询数据条数循环

$one_html = $this->parserList($matches2[1][$j], $matches2[0][$j], $one_html, $value, $params, $key,$jb+1);

目的其实就是获取当前循环的角标

然后修改parserList这个方法,新增对list:num的解析

case 'num':
                $content = str_replace($search, $num, $content);
                break;

在结尾default: 之前添加上面的解析.这样就可以正常使用这个[list:num]标签了.

以上内容来源于百科书,可以关注我了解更多.

posted @   玄之又玄众妙之门  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

哦哦查

研学服务

知芽网

醉学网

点击右上角即可分享
微信分享提示