• pbcms添加循环数字标签


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

    前端标签

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

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

    修改的后端:

    \apps\home\controller\ParserController.php 解析标签的类

    修改 public function parserListLabel($content, $cscode = '') 这个方法

    找到此方法内的这一句:

    1. foreach ($data as $value) { // 按查询数据条数循环
    2. $one_html = $matches[2][$i];
    3. for ($j = 0; $j < $count2; $j ++) { // 循环替换数据
    4. $params = $this->parserParam($matches2[2][$j]);
    5. $one_html = $this->parserList($matches2[1][$j], $matches2[0][$j], $one_html, $value, $params, $key);
    6. }
    7. $key ++;
    8. $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的解析

    1. case 'num':
    2. $content = str_replace($search, $num, $content);
    3. break;

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

  • 相关阅读:
    session会话机制
    k8s中的PV和PVC存储介绍
    vue3中全局配置axios
    【统计机器学习】线性回归模型
    拓扑排序-
    实战讲解SpringBoot启动时自动加载数据库数据到内存:通过回调方法自动运行Bean(图+文+源码)
    SM2密码算法数据结构
    【动画进阶】有意思的 Emoji 3D 表情切换效果
    手写RPC框架--8.压缩报文
    音视频基础之参数详解
  • 原文地址:https://blog.csdn.net/u014401637/article/details/125421363