前言介绍
有网友来问他用tags循环出来的tag标签如何才能显示每个的数量,去翻看官方手册就会发现pbootcms的tags标签循环默认不带单个tag的数量调用,这种情况就只能自己去二开支持了,下面来讲下如何操作。
注意:可能不兼容sqlite数据库,sqlite暂不建议使用!如碰到问题可反馈客服。
更新记录
2022-8-10 修复多个栏目id查询时返回数量无效问题;修复大写英文返回数量无效问题(注意同一个单词需统一格式)。
修改步骤
打开修改文件:/apps/home/controller/ParserController.php
1、找到第一处以下代码
$tags=implode(',',$rs);
在下方添加
$tagsArr[]=$tags;
并且在当前foreach结束外添加
$tagsAll=implode(',',$tagsArr);
$tagsArrSum=array_count_values(explode(',',$tagsAll));//@pbhtml把所有tags组成数组并计算每个值得数量
2、找到第一处以下代码
$tags=implode(',',$rs);//把栏目tags串起来
在下方添加
$tagsArrSum=array_count_values(explode(',',$tags));//@pbhtml把所有tags组成数组并计算每个值得数量
接着往下修改……
3、搜索以下代码
$where2[]="a.tags='".$get_tag."'";
修改成
$where2[]="FIND_IN_SET('".$get_tag."',a.tags)";//pbhtml-tagsum判断表里面一个逗号分隔的字符串是否包含单个字符串
4、找到这段代码
case'text':$one_html=str_replace($matches2[0][$j],$this->adjustLabelData($params,$value['tags']),$one_html);break;
在下方位置添加新的标签,具体位置看截图
case'sum':$sum=$tagsArrSum[$value['tags']];//@pbhtml-tagsum$one_html=str_replace($matches2[0][$j],$sum,$one_html);break;
5、上面修改后,前台就可以使用sum标签了,注意得新增 fuzzy=0 关闭模糊匹配
{pboot:tagsscode=6target=tagfuzzy=0}<li><ahref="[tags:link]"><ptitle="[tags:text]">[tags:text]</p><font><span>([tags:sum])</span></font></a></li>{/pboot:tags}
效果截图:
至此完毕!