DEDE下載排行調用標簽完美版(靜態+日,周,月排
2024-04-25 20:48:16
供稿:網友
很多用DEDE的朋友一直糾結一個問題:下載排行調用。
由于系統沒有自帶下載排行調用標簽,所以只能用SQL標簽來實現。
完美標簽,下面會給出詳細說明,適用于V5.5版本,其他版本未測試。
先來看一段代碼:
{dede:sql sql='Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON
A.id = D.id order by downloads DESC limit 0,10; '}
<li><a href="[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id] ">[field:title/]</a>下載次數[field:downloads/]</li>
{/dede:sql}
復制代碼
這個就是SQL調用下載排行的,已經實現了靜態地址調用。
limit 0,10; 的意思是調用10調,想調用多少條只要修改“10”為你想要的數字。
如過你想實現調用特定版塊的下載排行,只需要在limit 0,10; 的后面加上"where typeid = xx " XX就是欄目ID。
比如我想調用欄目10的下載排行,代碼就是這樣:
{dede:sql sql='Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON
A.id = D.id WHERE typeid = 10 order by downloads DESC limit 0,10;'}
<li><a href="[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id] ">[field:title/]</a>下載次數[field:downloads/]</li>
{/dede:sql}
復制代碼
這里有個小技巧:
typeid =后面的值可以用當前欄目ID的標簽,這樣可以在每個欄目列表頁實現當前欄目的下載排行調用,具體的望讀者自己探究。
當然也可以用typeid >或者<來限定欄目范圍。
特定欄目調用已經解決,那么就剩下分時段調用了,可分為日,周,月,年,甚至自定義天數或者小時,代碼如下:
{dede:sql sql='Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON
A.id = D.id WHERE typeid = 10 and pubdate > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 7 day) order by downloads DESC limit 0,10;'}
<li><a href="[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id] ">[field:title/]</a>下載次數[field:downloads/]</li>
{/dede:sql}
復制代碼
注意,我這是在上一個特定欄目的前提下再加一個時間條件語句,所以,我用了 and ,后面藍色背景部分為所需要的內容,如果不想特定欄目,就把青綠色部分代碼和緊跟著的“AND”去掉就行。
pubdate > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 7 day) 的意思是取7天內的數據,我們只需要修改數字"7"就可以實現我們的目標,比如10天就是pubdate > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 10 day) ,如果想調用一個月的數據,那就是pubdate > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 1 month) 一年的話只要把"day"改成"year"即可。
標簽到這里基本上已經完美了。
附送另外一個小小的標簽,關于調用今日更新情況的調用:
<dt><strong>炫亮空間</strong><div align=right><font size=3>【{dede:sql sql="SELECT count( ID ) AS c FROM dede_archives WHERE pubdate > UNIX_TIMESTAMP( CURDATE( ) ) and typeid = 特定欄目ID"}今
日更新<font color=red>[field:c /]</font>篇文章{/dede:sql} 】</font></div></dt>