因织梦DEDEV5起,加强了对sql注入和安全的检查,导致无法查询一些正常的子查询的sql。以下代码用来解决查询当前栏目及当前栏目下所有子栏目的文章总数,添加到/include/common.func.PHP
或者
/include/extend.func.PHP中,然后在模板中调用getTotalArcByTID(1)。
代码如下:
返回符合记录的文章数量* @description DEDE不允许执行子查询,解决栏目下文章统计的问题* @param $level 为真时查询所有子类目www.dede58.com织梦模板下载* */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,',');} |
模板中调用的方法一般为:调用方法:
{dede:fIEld.typeID function="getTotalArcByTID(@me)"/}
或者
[fIEld:typeID function="getTotalArcByTID(@me)"/]
总结
以上是内存溢出为你收集整理的织梦获取当前栏目及所有子栏目的文章数量全部内容,希望文章能够帮你解决织梦获取当前栏目及所有子栏目的文章数量所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)