首页 > 运营 > 建站经验 > 正文

DEDE下载排行调用标签完美版(静态+日,周,月排

2019-10-14 22:58:14
字体:
来源:转载
供稿:网友
很多用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>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表