php获取栏目文章总数,织梦DedeCMS获取当前栏目文章数量
使用織夢DedeCMS建站的時候,有時候需要對當(dāng)前欄目及其所有子欄目的文檔數(shù)量進(jìn)行統(tǒng)計,方便反饋給用戶。我們可以在織夢DedeCMS的模板中使用SQL標(biāo)簽來實現(xiàn),不過織夢DedeCMS為了系統(tǒng)的安全,加強了對SQL注入和安全的檢查,導(dǎo)致無法查詢一些正常的子查詢的SQL。
那怎么實現(xiàn)獲取當(dāng)前欄目及其所有子欄目的文檔數(shù)量的功能呢?我們可以使用自定義函數(shù)解決。No牛網(wǎng)把方法整理如下,修改織夢程序include/common.func.php文件,在最后加以下代碼://統(tǒng)計欄目文章數(shù)
function?GetTotalArc($tid){
global?$dsql;
$sql?=?GetSonIds($tid);
$row?=?$dsql->GetOne("Select?count(id)?as?dd?From?`#@__archives`?where?typeid
in({$sql})");
return?$row['dd'];
}
//統(tǒng)計當(dāng)前欄目信息數(shù)
function?dynamic_num($current_id){
global?$dsql;
//讀取當(dāng)前欄目的子ID
$sql?=?"SELECT?id?FROM?`#@__arctype`?WHERE?id='$current_id'?||
topid='$current_id'";
$dsql->SetQuery($sql);
$dsql->Execute();
while($row?=?$dsql->GetArray()){
$arr[]=$row[id];
}
foreach($arr?as?$key=>$value){
$type?.=?$value?.?',';
}
$ty=?"".$type."0";
//echo?$ty;
$t_num?=?$dsql->GetOne("select?count(*)?as?num?from?`#@__archives`?where?typeid
in($ty)");
//echo?$t_num[num];
if(is_array($t_num)){
return?"?".$t_num[num]."?";
}else{
return?"0"?;
}
}
以上代碼就是新增了兩個函數(shù),一個統(tǒng)計欄目文章數(shù),另一個統(tǒng)計當(dāng)前欄目信息數(shù),在織夢DedeCMS模板中可以和調(diào)用系統(tǒng)函數(shù)一樣調(diào)用他們。如使用如下的調(diào)用代碼:{dede:field?name='typename'/}
(該類擁有{dede:type}[field:id?function="dynamic_num(@me)"?/]{/dede:type}個文檔)
{dede:channel?type='son'?}
[field:typename/]([field:ID?runphp='yes']?@me?=?GetTotalArc(@me);[/field:ID])
{/dede:channel}
總結(jié)
以上是生活随笔為你收集整理的php获取栏目文章总数,织梦DedeCMS获取当前栏目文章数量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mate20屏幕大小(华为mate20报
- 下一篇: mcgs触摸屏是什么品牌(MCGS触摸屏