澳门新葡萄京官网首页帝国CMS标签调用的附加SQL条件和排序参数

15、如何用灵动标签调用副表字段内容?
原理:在灵动标签循环内用SQL读取副表内容。下面以读取新闻副表中的newstext字段为例:
[e:loop={0,1,3,0}] ?php $fr=$empire-fetch1(select newstext from
{$dbtbpre}ecms_澳门新葡萄京官网首页,news_data_{$bqr[stb]} where id=’$bqr[id]’); ?
标题:?=$bqr[title]?br 副表内容字段:?=$fr[newstext]? [/e:loop]

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

附加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]
上面是以灵动标签为例,其他信息调用标签使用也是一样,参数后面直接加上面两个参数即可。

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]’); ? 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的最新贴子

table width=100% border=0 cellspacing=1 cellpadding=3 [e:loop={select
tid,subject,dateline,fid from discuzdb.pre_forum_thread order by tid
desc limit 10,10,24,0}] ?php $fr=$empire-fetch1(select name from
discuzdb.pre_forum_forum where fid=’$bqr[fid]’); ? trtd
[?=$fr[name]?] 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_forum为DiscuzX的版块表名,其中discuzdb为DiscuzX的数据库名称。
例五:调用PHPwind的最新贴子

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

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

table width=100% border=0 cellspacing=1 cellpadding=3 [e:loop={select
tid,subject,postdate,fid from phpwinddb.pw_threads order by tid desc
limit 10,10,24,0}] ?php $fr=$empire-fetch1(select name from
phpwinddb.pw_forums where fid=’$bqr[fid]’); ? trtd [?=$fr[name]?]
a href=/bbs/read.php?tid=?=$bqr[tid]?
target=_blank?=$bqr[subject]?/a (?=date(‘Y-m-d’,$bqr[postdate])?)
/td/tr [/e:loop] /table

phpwinddb.pw_forums为phpwind的版块表名,其中phpwinddb为phpwind的数据库名称。
其他说明:
1、帝国CMS的数据库帐号要有select权限查询对应数据库的表,才能读取成功。
2、SQL调用支持调用mysql数据库的所有数据,上面只是举了几个例子。

发表评论

电子邮件地址不会被公开。 必填项已用*标注