有網友來問pbootcms網站建設的時候想用tags循環出來的tag標簽如何才能顯示每個的數量,去翻看官方手冊就會發現PbootCMS的tags標簽循環默認不帶單個tag的數量調用,這種情況就只能自己去二開支持了,pbootcms網站建設的下面來講下如何操作tag標簽文章數量。

教程步驟
打開修改文件:/apps/home/controller/ParserController.php
1、找到這段代碼(有兩處),在下方添加新代碼1 | $tags = implode( ',' , $rs); // 把欄目tags串起來 |
|
添加后
1 | $tags = implode( ',' , $rs); // 把欄目tags串起來 |
2 | $tagsArrSum = array_count_values(explode( ',' , $tags)); // @mk-tags_one_sum 把所有tags組成數組并計算每個值得數量 |
|

2、找到這段代碼在下方位置,添加新的判斷,具體位置看截圖
2 | $one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $value[ 'tags' ]), $one_html); |
|
添加后
2 | $one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $value[ 'tags' ]), $one_html); |
5 | $ sum = $tagsArrSum[$value[ 'tags' ]]; // @mk-tags_one_sum |
6 | $one_html = str_replace($matches2[0][$j], $ sum , $one_html); |
|

3、上面修改后,前臺就讀了個sum標簽,具體使用如下
1 | {pboot:tags scode=6 target=tag} |
2 | <li><a href= "[tags:link]" ><p title= "[tags:text]" >[tags:text]</p><font><span>([tags: sum ])</span></font></a></li> |
|
效果截圖:

這樣就搞定了,不過慢慢的你會發現個bug,我后臺文章狀態選擇了關閉,他的tag怎么也被調用出來了,右側顯示1個的時候點擊進去就會顯示無數據。這個問題請看下面:修復PbootCMS文章狀態為關閉時tag標簽依舊顯示問題,增加文章狀態判斷。
理論上后臺文章狀態關閉了,那么前臺的這篇文章生成出來的tag就應該消失掉,但是現在PbootCMS默認的并沒有根據文章狀態顯示隱藏。在平時一般使用中可能影響不大,但是碰到類似本站右側有tags列表展示,而且還配了數量顯示,那么當用戶看到明明顯示有數量點擊進去卻沒有,這種體驗效果就很差。那么現在就來講下如何修復這個問題,實現tag標簽可以隨文章狀態實現顯示和隱藏。
實現方法
打開這個文件 ppshomemodelParserModel.php,找到getSortTags($scode)截圖這個位置

在其*后找到
$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')
掃一掃,瀏覽關注本文