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

前端标签
-
- <a href="[list:link]">[list:num][list:title]</a>
其中[list:num]是我们新增的标签
修改的后端:
修改 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]标签了