灵动标签调用外部数据|如Discuz、DiscuzX、PHPwind

附加SQL条件和排序参数介绍:
帝国CMS6.5以上版本在原来所有信息调用标签基础上增加了两个标签参数:附加SQL条件和显示排序。
支持这两个参数的标签有如下:
ecmsinfo、灵动标签、phomenews、phomenewspic、phomeflashpic、phomeautopic、listsonclass、phomenewstext
语法说明: 以灵动标签为例,标签语法为:
[e:loop={栏目ID/专题ID,显示条数,操作类型,只显示有标题图片,附加SQL条件,显示排序}]
模板代码内容 [/e:loop]
其中附加SQL条件和显示排序这两个参数,如果不使用可以不设置或者则用”两个单引号表示。例如:
[e:loop={1,10,0,0,”,”}]和[e:loop={1,10,0,0}]是一样的效果。
举例说明: 以灵动标签为例: 例子1:调用标题包含“cms”的新闻
6.0以前版本要使用SQL调用,如下: [e:loop={“select * from
phome_ecms_news where title like ‘%cms%’ and checked=1 order by
newstime desc limit 10″,10,24,0}] a href=”?=$bqsr[titleurl]?”
target=”_blank”?=$bqr[title]?/abr [/e:loop]
而新版本用下面就可以实现上面效果: [e:loop={‘news’,10,18,0,”title like
‘%cms%'”,”}] a href=”?=$bqsr[titleurl]?”
target=”_blank”?=$bqr[title]?/abr [/e:loop]
无需写SQL语句,而且调用父栏目时不需要按原来SQL调用写全所有终极栏目ID,更简单更方便。
例子2:按DIGG顶数降序显示新闻信息 6.0以前版本要使用SQL调用,如下:
[e:loop={“select * from phome_ecms_news where checked=1 order by
diggtop desc limit 10″,10,24,0}] a href=”?=$bqsr[titleurl]?”
target=”_blank”?=$bqr[title]?/abr [/e:loop]
而新版本用下面就可以实现上面效果: [e:loop={‘news’,10,18,0,”,’diggtop
desc’}] a href=”?=$bqsr[titleurl]?”
target=”_blank”?=$bqr[title]?/abr [/e:loop]
还支持多字段排序,比如:’istop desc,id desc,title desc’
例子3:显示一周内信息点击排行 6.0以前版本要使用SQL调用,如下:
[e:loop={“select * from phome_ecms_news where checked=1 and
newstimeUNIX_TIMESTAMP()-86400*7 order by onclick desc limit
10″,10,24,0}] a href=”?=$bqsr[titleurl]?”
target=”_blank”?=$bqr[title]?/abr [/e:loop]
而新版本用下面就可以实现上面效果:
[e:loop={‘news’,10,18,0,’newstimeUNIX_TIMESTAMP()-86400*7′,’onclick
desc’}] a href=”?=$bqsr[titleurl]?”
target=”_blank”?=$bqr[title]?/abr [/e:loop]
例子4:调用3级头条的信息 [e:loop={‘news’,10,18,0,’firsttitle=3′}]
a href=”?=$bqsr[titleurl]?” target=”_blank”?=$bqr[title]?/abr
[/e:loop] 例子5:调用5级推荐的信息
[e:loop={‘news’,10,18,0,’isgood=5′}] a href=”?=$bqsr[titleurl]?”
target=”_blank”?=$bqr[title]?/abr [/e:loop]
上面是以灵动标签为例,其他信息调用标签使用也是一样,参数后面直接加上面两个参数即可。

用灵动标签调用外部数据: 例一:调用Discuz的最新贴子

table width=100% border=0 cellspacing=1 cellpadding=3 [e:loop={select
tid,subject,dateline from discuzdb.cdb_threads order by tid desc limit
10,10,24,0}] trtd a href=/bbs/viewthread.php?tid=?=$bqr[tid]?
target=_blank?=$bqr[subject]?/a (?=date(‘Y-m-d’,$bqr[dateline])?)
/td/tr [/e:loop] /table

discuzdb.cdb_threads为Discuz的贴子表名,其中discuzdb为Discuz的数据库名称。
limit 10为显示贴子数量。
如果用伪静态地址可以用:/bbs/thread-?=$bqr[tid]?-1-1.html
如果指定单个版块的贴子,SQL用:select tid,subject,dateline from
discuzdb.cdb_threads where fid=版块ID order by tid desc limit 10
如果指定多个版块的贴子,SQL用:select tid,subject,dateline from
discuzdb.cdb_threads where fid in (1,2,3) order by tid desc limit 10
例二:调用Discuz的最新贴子

table width=100% border=0 cellspacing=1 cellpadding=3 [e:loop={select
tid,subject,dateline,fid from discuzdb.cdb_threads order by tid desc
limit 10,10,24,0}] ?php $fr=$empire-fetch1(select name from
discuzdb.cdb_forums where fid=’$bqr[fid]澳门新葡亰3522平台游戏,’); ? trtd [?=$fr[name]?]
a href=/bbs/viewthread.php?tid=?=$bqr[tid]?
target=_blank?=$bqr[subject]?/a (?=date(‘Y-m-d’,$bqr[dateline])?)
/td/tr [/e:loop] /table

discuzdb.cdb_forums为Discuz的版块表名,其中discuzdb为Discuz的数据库名称。
例三:调用DiscuzX的最新贴子

table width=100% border=0 cellspacing=1 cellpadding=3 [e:loop={select
tid,subject,dateline from discuzdb.pre_forum_thread order by tid desc
limit 10,10,24,0}] trtd a
href=/bbs/forum.php?mod=viewthreadtid=?=$bqr[tid]?
target=_blank?=$bqr[subject]?/a (?=date(‘Y-m-d’,$bqr[dateline])?)
/td/tr [/e:loop] /table

discuzdb.pre_forum_thread为DiscuzX的贴子表名,其中discuzdb为DiscuzX的数据库名称。
limit 10为显示贴子数量。
如果用伪静态地址可以用:/bbs/thread-?=$bqr[tid]?-1-1.html
如果指定单个版块的贴子,SQL用:select tid,subject,dateline from
discuzdb.pre_forum_thread where fid=版块ID order by tid desc limit 10
如果指定多个版块的贴子,SQL用:select tid,subject,dateline from
discuzdb.pre_forum_thread where fid in (1,2,3) order by tid desc limit
10 例四:调用DiscuzX的最新贴子