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

因DEDEV5起,加強(qiáng)了對SQL注入和安全的檢查,導(dǎo)致無法查詢一些正常的子查詢的SQL。

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

或者

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

代碼如下:

/*

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

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

* @param $level 為真時(shí)查詢所有子類目

* */

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)手機(jī)網(wǎng)站地址:DEDECMS 獲取當(dāng)前欄目及所有子欄目的文章數(shù)量
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
相關(guān)閱讀CMS教程
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)