DEDECMS 獲取當前欄目及所有子欄目的文章數(shù)量
來源:易賢網(wǎng) 閱讀:2133 次 日期:2016-07-02 09:18:34
溫馨提示:易賢網(wǎng)小編為您整理了“DEDECMS 獲取當前欄目及所有子欄目的文章數(shù)量”,方便廣大網(wǎng)友查閱!

因DEDEV5起,加強了對SQL注入和安全的檢查,導致無法查詢一些正常的子查詢的SQL。

以下代碼用來解決查詢當前欄目及當前欄目下所有子欄目的文章總數(shù),添加到/include/common.func.php

或者

/include/extend.func.php中,然后在模板中調(diào)用getTotalArcByTid(1)。

代碼如下:

/*

* 返回符合記錄的文章數(shù)量

* @description DEDE不允許執(zhí)行子查詢,解決欄目下文章統(tǒng)計的問題

* @param $level 為真時查詢所有子類目

* */

function getTotalArcByTid($tid, $level=TRUE) {

global $dsql;

$level==TRUE && $tid = GetSonTypeID($tid);

$sql = "SELECT count(id) as total from `dede_archives` where typeid in($tid)";

$result = $dsql->GetOne($sql);

return $result['total'];

}

/*

* 遞歸獲取符合條件的子欄目

* @param $tid 欄目ID

* @return string

* */

function GetSonTypeID($tid)

{

global $dsql;

$dsql->SetQuery("Select id From `dede_arctype` where reid in($tid) And ishidden<>1 order by sortrank");

$dsql->Execute($tid);

$typeid = '';

while($row=$dsql->GetObject($tid))

{

$typeid .= "{$row->id},";

$typeid .= GetSonTypeID($row->id);

}

return trim($typeid,',');

}

調(diào)用方法:

模板中調(diào)用的方法一般為:

{dede:field.typeid function="getTotalArcByTid(@me)"/}

或者

[field:typeid function="getTotalArcByTid(@me)"/]

更多信息請查看CMS教程
易賢網(wǎng)手機網(wǎng)站地址:DEDECMS 獲取當前欄目及所有子欄目的文章數(shù)量
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>
相關(guān)閱讀CMS教程

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)