織夢網站欄目統計標簽及文章數量統計標簽的使用。在做博客站時,經常需要顯示欄目的文章數量,如下圖:
第一種:根據所在欄目ID自動判斷顯示所在欄目的文章數
(<span>[field:IDrunphp='yes']@me=GetTotalArc(@me);[/field:ID]</span>)
第二種:指定欄目ID
{dede:sqlsql="SELECTcount(ID)AScFROMdede_archiveswheretypeid=欄目id"}
本月更新:[field:c/]篇{/dede:sql}
第三種:DedeCMS欄目文章數量統計調用,欄目名稱按照文章數量排列
{dede:sqlsql='SELECTd.typename,d.id,count(da.id)ashejiFROMdede_arctypedleftjoindede_archivesdaonda.typeid=d.idwhered.reid=0groupbyd.typenameorderbyhejidesclimit0,8;'}
<spanclass="text_1"><spanclass="count">[[field:heji/]篇]</span><ahref="http://www.dedecmsmuban.com/plus/list.php?tid=[field:id/]">[field:typename/]共投遞稿件</a></span><br/>
{/dede:sql}
第四種:修改include/common.func.php
在最后加入代碼:
//*****統計欄目文章數
functionGetTotalArc($tid)
{
global$dsql;
$sql=GetSonIds($tid);
$row=$dsql->GetOne("Selectcount(id)asddFromdede_archiveswheretypeidin({$sql})");
return$row['dd'];}
在htm最下方添加:
{dede:channeltype='top'row='8'}<LI>[field:typename/](<span>[field:IDrunphp='yes']@me=GetTotalArc(@me);[/field:ID]</span>)</LI>{/dede:channel}
如果想調用副欄目的數量就是
//*****統計欄目文章數
functionGetTotalArc($tid2){
global$dsql;
$sql=GetSonIds($tid2);
$row=$dsql->GetOne("Selectcount(id)asddFromdede_archiveswheretypeid2in({$sql})");
return$row['dd'];}
HTM頁面不變
現在我們來說說動態調用欄目文章數:
動態調用主要針對當前列表頁的欄目,而當前的欄目是動態的,因此可以利用type標簽調用一個函數就行了。
要調用函數就得增加函數,打開include/common.func.php,在其中任一行(<?與?>的中間任一行)中加上如下函數。
functiondynamic_num($current_id){
global$dsql;
$t_num=$dsql->GetOne("selectcount(*)asnumfrom`dede_archives`wheretypeid='$current_id'");
if(is_array($t_num)){
return"本欄目共有".$t_num[num]."篇文章";
}else{
return"本欄目共有0篇文章";
}
}
在列表頁中這樣調用:
{dede:type}[field:idfunction="dynamic_num(@me)"/]{/dede:type}
{dede:sqlsql="SELECTcount(*)AScFROMcmsxx_archivesWHEREpubdate>UNIX_TIMESTAMP(CURDATE())"}
<liclass="count">今日更新:<span>[field:c/]</span>篇</li>
{/dede:sql}
{dede:sqlsql="Selectcount(ID)ascFromcmsxx_archivesWHEREFROM_UNIXTIME(pubdate,'%m')=month(curdate())"}
<liclass="count">當月更新:<span>[field:c/]</span>篇</li>
{/dede:sql}
{dede:sqlsql="selectcount(*)ascfromcmsxx_archives}
<liclass="count">共有文章:<span>[field:c/]</span>篇</li>
{/dede:sql}
{dede:sqlsql="selectsum(click)ascfromcmsxx_archives"}
<liclass="count">總共閱讀:<span>[field:c/]</span>人次</li>
{/dede:sql}
{dede:sqlsql="selectcount(mid)ascfromcmsxx_member"}
<liclass="count">共有會員:<span>[field:c/]</span>名</li>
{/dede:sql}
還可以指定欄目ID,例如:
{dede:sqlsql="selectcount(*)ascfromcmsxx_archiveswherechannelin(1,2,3,5,6,9)"}
<liclass="count">共有文章:<span>[field:c/]</span>篇</li>
{/dede:sql}