如想获取最新的这个类,可以写邮件给我
'//ASP 模板引擎 (Taihom.Template.class v2.0)
'//Code By Taihom
'//Taihom 原创
'//版权说明
'//本类允许转载、复制和修改,但转载、复制和修改的同时请保留原始的出处和作者声明,这也是对作者Taihom劳动成果的一种尊重!
'//如果您对本类进行修改,希望您也可以给我发一份您修改过后的类(taihom[@]163.com) 如想获取最新的这个类,可以写邮件给我
本类支持单标签,支持简单的逻辑,支持嵌套模板,支持循环列表,支持循环列表的逻辑,支持自定义标签,支持自定义标签属性和自由获取标签……
先看看说明!
模板类的标签规则 | 说明 | |
标签边界: | {}、() | {@}是单标签 {}是类标签,主要是应用在{include("...")}和{if ...}...{else}...{/if} <loop ...><.../loop>循环标签 |
包含文件: | {include("文件路径")} | 该模板类支持包含同模板目录下的文件,例如 {include("head.html")} |
单标签: | {@标签名} {@标签名 属性="值"} (@字段名)、(@字段下标) | (@...)单标签只能应用在loop块 |
逻辑标签: | {if @标签变量=="值"} 代码块 {else} 代码块 {/if} {if @标签变量=="值"} 代码块 {/if} | 可以处理一些简单的逻辑关系 , v2.0开始支持逻辑标签的条件支持,运算符号前后均可支持标签和带属性的标签, |
循环标签: | <loop 属性1="值1" 属性2="值2" ... > 代码块 (@数字)(@字段名 属性="") </loop> | 这里要注意的是 <loop> 标签部分一定要换行之后再写代码块, 如果输出的结果为空,那么如何自定义自己的输出结果呢?很简单,只要在loop标签里面加一个empty标签:例如: <loop name="loop3" sql="select * from [table] where 1=2"> |
模板引擎的默认属性支持,你也可以修改程序加上自己定义的属性 这些属性可以应用在单标签上 | ||
截取字符 | len="数字" | 例如:{@title len="5"} 这样将会截取@title前面5个字符作为输出 |
返回字符串长度 | return="len" | 例如:{@content return="len"} 将返回这个变量的字符串长度 |
清除HTML格式 | return="clearhtml" | 例如:{@content return="clearhtml"} 这样将会清除@content输出的HTML格式 |
清除所有空格换行 | return="clearspace" | 例如:{@content return="clearspace"} 这样将会清除@content输出的所有的空格和换行 多个return的时候可以用逗号分隔 例如:return="clearhtml,clearspace" |
清除所有的格式 | return="clearformat" | 这样只会保留文字,连HTML格式,换行什么都没有了 |
返回字符串的server.urlencode | return="urlencode" | {@content return="urlencode"} 将返回与ASP中server.urlencode("字符串")一致的结果 |
日期显示方式转换 | dateformat="日期显示方式" | 年(yyyy|yy)月(mm|m)日(dd|d) 时(HH|H)分(MM|M)秒(SS|S)星期(w|W) 默认支持的方式有 其他的日期格式化方式,可以参照下面的例子: |
模板类的使用例子,假设已经实例化到tpl | ||
类的功能 | 方法 | 说明 |
设置 | '配置信息 'tpl.setCharset = "utf-8" '可选设置,默认是utf-8 'tpl.setCache = 1 '可选设置,缓存开关,默认是关的 tpl.SITE_ROOT = cStr(Server.MapPath("./"))'必选设置,后面不带斜杠 'tpl.setTemplatedir = "/templates/"'可选设置,设置模板目录 'tpl.setCachedir = "/cache/templates/"'可选设置,设置缓存目录 'tpl.setAbsPath = 1 '可选设置,模板绝对路径,默认是开的,作用是输出的时候将模板相对路径替换成绝对路径,已经是绝对路径或者描点等不受影响,此开关只是转换那些不是绝对路径的 'tpl.CachePageTimeout=0'(v2.0新特性)可选设置,0=不生产前台页面缓存,>0表示缓存的时间,单位是分钟 ,这个设置需要在页面开头,也就是在赋值之前设置,如果不设置,默认不缓存,建议数据有实时更新的不进行设置 tpl.path = "index.html"'必选,模板文件路径相对于模板目录 | |
加载并解析模板 | tpl.load() | '加载模板,这个方法负责读取并且解析模板, 当然,如果你不需要提取模板的参数,你可以放到.display()之前 例如: tpl.load() tpl.display() |
提取所有块标签 | Set getblock = tpl.getblock | '获得块列表,返回dic对象,key = 循环块名称,items = 块的属性(数组,0=属性名称,1=值) 例子: |
指定块标签的属性 | Set getattr = tpl.getattr | 如果你想提取块名字是loop1的sql的内容 那么只要 getattr("loop1.sql") |
标签赋值 | tpl.add("@标签")="值" | 设置标签的值,也就是用这个值来替换掉{@标签} |
块标签赋值 | tpl.add("块标签")=记录集 | 设置循环块的值,这里我们只要给一个记录集,其他的输出,由模板去执行,也不用判断记录集是否为空。 |
显示输出 | tpl.display() | '显示模板,将结果输出 |
清除缓存 | tpl.ClearCache | 如果设置了模板缓存,用这个将可以清除所有的模板缓存,对于不常修改的模板,我建议开启缓存。当然如果模板有改动,必须要清空了缓存,缓存才会重建 |
程序中获取输出结果 | html = tpl.gethtml | 将输出的结果赋值给html变量,这里的结果是已经是最后的输出结果 |
生成静态页面 | tpl.OutPutPage(cStr(Server.MapPath("./"))) = "asdf.html" | 如果需要生成静态页面,使用 .OutPutPage("路径")=文件名 |
完整的类使用方法(来自demo.asp) | ||
<script language="vbscript" runat="server"> Dim dbo '获得循环块的参数 | ||
代码在这里下载:如想获取最新的这个类,可以写邮件给我
演示地址:http://www.taihom.com/templateclass/demo.asp
模板地址:http://www.taihom.com/templateclass/templates
代码下载:http://www.taihom.com/templateclass/taihom.template.class.rar
最新的下载: http://download.csdn.net/source/1330402