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


pbootcms增加同tag标签文章数量显示



教程步骤

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

1、找到这段代码(有两处),在下方添加新代码

$tags = implode(',', $rs); // 把栏目tags串起来

添加后

$tags = implode(',', $rs); // 把栏目tags串起来

$tagsArrSum = array_count_values(explode(',', $tags)); // @mk-tags_one_sum 把所有tags组成数组并计算每个值得数量


pbootcms增加同tag标签文章数量显示


2、找到这段代码在下方位置,添加新的判断,具体位置看截图

case 'text':

    $one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $value['tags']), $one_html);

    break;



添加后

case 'text':

    $one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $value['tags']), $one_html);

    break;

case 'sum':

    $sum = $tagsArrSum[$value['tags']]; // @mk-tags_one_sum

    $one_html = str_replace($matches2[0][$j], $sum, $one_html);

    break;



pbootcms增加同tag标签文章数量显示

3、上面修改后,前台就读了个sum标签,具体使用如下

{pboot:tags scode=6 target=tag}

  <li><a href="[tags:link]"><p title="[tags:text]">[tags:text]</p><font><span>([tags:sum])</span></font></a></li>

{/pboot:tags}



这样就搞定了,不过慢慢的你会发现个bug,我后台文章状态选择了关闭,他的tag怎么也被调用出来了,右侧显示1个的时候点击进去就会显示无数据。这个问题请看下面:修复PbootCMS文章状态为关闭时tag标签依旧显示问题,增加文章状态判断。



理论上后台文章状态关闭了,那么前台的这篇文章生成出来的tag就应该消失掉,但是现在PbootCMS默认的并没有根据文章状态显示隐藏。在平时一般使用中可能影响不大,但是碰到类似本站右侧有tags列表展示,而且还配了数量显示,那么当用户看到明明显示有数量点击进去却没有,这种体验效果就很差。那么现在就来讲下如何修复这个问题,实现tag标签可以随文章状态实现显示和隐藏。


实现方法

打开这个文件 ppshomemodelParserModel.php,找到getSortTags($scode)截图这个位置


image.png


在其*后找到


$result = parent::table('ay_content a')->where("c.type=2 AND a.tags<>''")

    ->where($scode_arr, 'OR')

    ->join($join)

    ->order('a.visits DESC')

    ->column('a.tags');

return $result;

将其修改为以下,保存即可


$result = parent::table('ay_content a')->where('a.status=1')->where("c.type=2 AND a.tags<>''")

    ->where($scode_arr, 'OR')

    ->join($join)

    ->order('a.visits DESC')

    ->column('a.tags');

return $result;

方法解读

上面的方法是给去数据库查找的时候增加了个状态判断where('a.status=1')