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]标签了.
以上内容来源于百科书,可以关注我了解更多.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了