数据调用标签讲解(第一篇)
台州视窗网的数据调用标签十分灵活,可以调用数据库中任意数据表中的数据,功能十分强大,但是使用起来对于没有SQL基础的用户可能有一定难度,最好先学习一些SQL的基础知识,网上有一些相关教程可以自行学习一番,这里有一个简单的教程网址是http://www.w3school.com.cn/sql/,下面讲一讲台州视窗网数据标签的基本格式和用法:
台州视窗网数据标签的标签格式有以下三种:
第一种:{{参数一}}
第二种:{{参数一,参数二,参数三}}或{{#参数一,参数二,参数三}}
第三种:{{参数一,参数二,参数三,参数四}}或{{#参数一,参数二,参数三,参数四}}
第一种比较少用使用频率很少,第二种和知三种使用的频率最高,其中第二种和第三种里面的参数一前面有#号表示是分页数据。
{{参数一}}
参数一:SQL语句
示例:{{select count(*) from News}}
比如我们要统计您的贴吧频道一共有多少条主题贴,那么数据调用标签就是{{select count(*) from _Tieba}}
{{参数一,参数二,参数三}}或{{#参数一,参数二,参数三}}
参数一:这是一个固定的参数,没有实质的意义,可以写任意的数字都行,比如写0
参数二:SQL语句
参数三:循环体
示例:{{0,select top 15 * from News where Enable=1 order by InsertTime desc,<li><a href="/NewsView_[ID].html" target="_blank">[Title]</a></li>}}
比如我们要显示网民最新发布的10条审核后的分类信息,循环体格式:<tr><td><a href="链接">信息标题</a></td><td>发布时间</td></tr>,这是一个表格行,行中的第一列是标题,点击标题打开信息内页,行中的第二列是信息发布时间,其中标题最长显示48个字节,一个汉字占两个字节,48个字节那么汉字就是24个,超出的部分以两个点(类似省略号)显示,信息发布时间以年-月-日这种格式例如2015-06-21,那么数据调用标签就是{{0,select top 10 * from _Life order by InsertTime desc,<tr><td><a href="/LifeView_[ID].html">[Title|48|..]</a></td><td>[InsertTime|yyyy-MM-dd]</td></tr>}}
注意:参数二是SQL语句,有时SQL语句的条件或排序中会出现半角逗号,那么这个半角逗号会与系统标签的半角逗号有冲突,那么解决方法就是将您的SQL语句中的半角逗号改成中文汉字逗号,例如这条SQL语句select top 10 ID,Title from News where ClassID in (2,5) order by Sort desc,InsertTime desc这条语句中有三个半角逗号,那么替换为中文汉字逗号后的语句为select top 10 from News where ClassID in (2逗号5) order by Sort desc逗号InsertTime desc
提示:如果参数一前面加上#号,则参数一表示页大小。
{{参数一,参数二,参数三,参数四}}或{{#参数一,参数二,参数三,参数四}}
参数一:显示条数
参数二:数据表名称
参数三:循环体
参数四:条件和排序
示例:{{10,News,<a href="/ArticleView_[ID].html" title="[Title]">[Title|36|...]</a><br />,Enable=1 and ClassID=10 order by ID desc}}
比如我们要显示20条网民最新发表的贴子,则可以这么写{{20,_Tieba,<div><a href="/TiebaTheme_1_[ID].html" target="_blank">[Title]</a></div>,Enable=1 order by InsertTime desc,ID desc}}
提示:这里的条件排序支持半角逗号,也就是说如果标签语句中共有四个参数的情况下,则第四个参数是可以包含半角逗号的。
如果参数一显示条数的前面加上#号,则表示这是一个分页的形式了,参数一就代表着每页显示多少条数据,示例:{{#20,News,<a href="/ArticleView_[ID].html" title="[Title]">[Title|36|...]</a><br />,Enable=1 order by InsertTime desc}}
注意:有四个参数的标签语句 实际 上是有三个参数的标签语句 的一种简化后的写法,它是将显示条数、数据表名、和条件排序给分隔开了,如果您调用的数据是要关联多个表,例如要用到Join联结表数据,那么只能采用三个参数的标签语句了。比如:我们在调用商家店铺的商品时就必须采用三个参数的标签语句,它需要将_Shop表和_ShopMall两个表进行Join的联结,判断如果店铺是没有审核或过期的,那该店铺的商品是不会显示出来的。有三个参数的标签语句比有四个参数的标签语句难度要大得多,如果您有SQL基础,您将得心应手,在台州视窗网系统的构架基础上做页面开发将如此容易。
台州视窗网数据标签的调用方式有以下三种:
第一种:静态模式
第二种:程序模式
第三种:JS模式
在台州视窗网后台——“系统设置”——“自定义页面”——“标签生成器”——“调用模式”中也可以看到,查看图示
第一种情况通常用于台州视窗网/s/html/目录下面的自定义页面,当然也可用于其他目录的aspx文件,您只需要把数据标签放在一个html或aspx格式的文件里,在最后的时候使用系统的批量标签引擎解释方法进行处理即可,使用B.InterpreterEngine(B.ExecutePage("/t/xxx/xxx.aspx"))方法进行动态加载程序并执行标签引擎解释。
第二种是程序模式,是直接在aspx文件里使用的,使用<%=B.I("{{10,News,<li><a href=`/NewsView_[ID].html`>[Title]</a></li>,Enable=1 order by InsertTime desc}}")%>,提示:循环体中如果有双引号的话则需要转义,或者是把双引号写成`也行,写成`则不需要转义了,系统会在最后输出数据时自动将`还原为双引号。
第三种模式是<script src="xxx"></script>这种模式,该模式的好处就是可以在站外调用您的网站数据。
常用的数据表的表名称:
新闻表News
新闻类别NewsClass
分类信息表_Life
分类信息的类别_LifeClass
贴子主题表_Tieba
贴吧的类别_TiebaClass
商家表_Shop
商家店铺里的商家动态_ShopNews
商家店铺里的商品_ShopMall
商家店铺里的团购_ShopTuan
更多数据表名称可以使用SQL Server Management Studio工具查看,或者在网站后台标签生成器的页面查看如图中所示
下面提供一些示例语句,请大家举一反三:
调用_Tieba数据表中的数据:显示10条已审核的贴子,且只显示8、23、56这三个类别下面的贴子,按贴子最后回复时间排序,循环体为<li><a href="内页链接" target="_blank">贴子标题</a></li>,则调用数据的标签语句是:{{10,_Tieba,<li><a href="/TiebaTheme_1_[ID].html" target="_blank">[Title]</a></li>,Enable=1 and ClassID in(8,23,56) order by ReplyTime desc}}
调用_Life数据表中的数据:显示12条已审核的分类信息,且只显示大类1下面的子类下面的信息,按信息发布时间排序,循环体为<a href="内页链接" target="_blank">信息标题</a><br />,则调用数据的标签语句是:{{12,_Life,<a href="/LifeView_[ID].html" target="_blank">[Title]</a><br />,Enable=1 and ClassID in([&ID&_LifeClass&ParentID&1]) order by InsertTime desc}}