前言介绍

有网友来问他用tags循环出来的tag标签如何才能显示每个的数量,去翻看官方手册就会发现pbootcms的tags标签循环默认不带单个tag的数量调用,这种情况就只能自己去二开支持了,下面来讲下如何操作。

注意:可能不兼容sqlite数据库,sqlite暂不建议使用!如碰到问题可反馈客服。

image.png

更新记录

2022-8-10 修复多个栏目id查询时返回数量无效问题;修复大写英文返回数量无效问题(注意同一个单词需统一格式)。

修改步骤

打开修改文件:/apps/home/controller/ParserController.php

1、找到第一处以下代码

  1. $tags = implode(\’,\’$rs);

在下方添加

  1. $tagsArr[] = $tags;

并且在当前foreach结束外添加

  1. $tagsAll = implode(\’,\’, $tagsArr);
  2. $tagsArrSum = array_count_values(explode(\’,\’, $tagsAll)); // @pbhtml  把所有tags组成数组并计算每个值得数量

image.png

2、找到第一处以下代码

  1. $tags = implode(\’,\’, $rs); // 把栏目tags串起来

在下方添加

  1. $tagsArrSum = array_count_values(explode(\’,\’, $tags)); // @pbhtml 把所有tags组成数组并计算每个值得数量

image.png

接着往下修改……

3、搜索以下代码

  1. $where2[] = “a.tags=\'” . $get_tag . “\'”;

修改成

  1. $where2[] = “FIND_IN_SET(\'”.$get_tag.“\’,a.tags)”//pbhtml-tagsum 判断表里面一个逗号分隔的字符串是否包含单个字符串

image.png

4、找到这段代码

  1. case \’text\’:
    $one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $value[\’tags\’]), $one_html);
    break;

在下方位置添加新的标签,具体位置看截图

  1. case \’sum\’:
    $sum = $tagsArrSum[$value[\’tags\’]]; // @pbhtml-tagsum
    $one_html = str_replace($matches2[0][$j], $sum, $one_html);
    break;

image.png

5、上面修改后,前台就可以使用sum标签了,注意得新增 fuzzy=0 关闭模糊匹配

  1. {pboot:tags scode=6 target=tag fuzzy=0}
    <li><a href=“[tags:link]”><p title=“[tags:text]”>[tags:text]</p><font><span>([tags:sum])</span></font></a></li>
    {/pboot:tags}

效果截图:

image.png

至此完毕!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。