资源描述
DTcms帮助文档.docx
《DTcms帮助文档.docx》由会员分享,可在线阅读,更多相关《DTcms帮助文档.docx(32页珍藏版)》请在冰豆网上搜索。
DTcms帮助文档
DTcms帮助文档
DTcms模板语法和C#非常接近,4.0和3.0版本中,标签语法大同小异,依然符合于技术开发人员的编程习惯。
如果你是一名程序员,下面的语法我相信只需要看一次便可牢牢记住各种标签的使用规则,所以你不必担心DTcms模板难掌握。
如果非程序员,难度有所加大,毕竟我们考虑到了整个系统的扩展性和二次开发,所以比较偏向于技术开发人员。
页面嵌套标签
如果想在一个模板页面中嵌入另一个模板页的内容可使用该标签,注意避免被嵌套的页面嵌套主模板页,这样会造成迭代循环。
另外,嵌套的深度最多只能5层。
其中src所指定的路径为当前相对路径,如src="common/_header.html"
--一般在当前模板下使用可下面的嵌套标签-->
<%templatesrc="模板页面相对路径"%>
--如需跨模板访问可使用下面的嵌套标签,一般插件模板使用较多,前提该模板须存在,否则访问不到-->
<%templateskin="模板目录名"src="模板页面相对路径"%>
当前模板路径标签
因为3.0版本中增加分站的功能,所以这里和2.1及前版本的模板标签有所不同。
输出不包含/,如:
templates/green/images/logo.png,同一模板目录下使用第一个种标签即可
--当前模板路径标签-->
<%templateskin%>
--访问其它模板的路径标签,前提该模板须存在-->
<%templateskin="模板目录名"%>
嵌入C#代码标签
如果其它标签无法实际你想要的效果,你可以试一下直接写C#代码,如意不能使用Response.Write
<%csharp%>
//C#代码
<%/csharp%>
引用命名空间标签
如果需要引用命名空间则需要使用该标签,注意此标签不能放在嵌套的页面且需要放置在模板页的最顶部
--示例:
<%namespace"DTcms.BLL"%>-->
<%namespace"命名空间"%>
普通变量标签
模板页的变量概念实际上就是C#的变量,在模板页调用时需加上大括号,这里往往和模板页的JS的方法体互相冲突,所以在写JS时,遇到大括号一定要换行。
--直接变量-->
{varname}
--实体变量,如:
{config.webname}-->
{var.item}
数据变量标签
数据变量一般在循环列表时使用到,另外在显示内容时也会用到
--循环列表时的数据变量,如:
{dr[title]}-->
{var[...]}
--显示实体数据变量,如:
model.fields[title]-->
{var.item[...]}
loop循环标签
loop循环标签主要是数据列表中使用的,其中自带有行号变量datarow__loop__id,该变量是从1开始
参数说明:
datarow:
DataRow类型的变量,同一页面内不可重复,否则编译出错
datatable:
DataTable类型的变量,使用前请确保该参数已声明赋值
--loop循环标签-->
<%loopdatarowdatatable%>
...
<%/loop%>
foreach循环标签
foreach标签和C#的语法是一样的,写法也差不多,相信技术人员一看就懂。
注意与loop标签不同的是它没有自带的行号变量,需要手动声明。
参数说明:
type:
数据类型,如DataRow
item:
数据类型的变量名,自定义变量名
list:
数组、结构、对象、引用类型
--foreach循环标签-->
<%foreach(typeiteminlist)%>
...
<%/foreach%>
for循环标签
for标签和C#的语法也是一样的,一般很少用到。
参数说明:
i:
整型变量
count:
整型变量
--for循环标签-->
<%for(inti=0;i<=count;i++)%>
...
<%/for%>
if判断语句标签
if判断语句与C#的语法一样,3.0支持二种写法,保留旧的写法
--第一种格式写法(推荐)-->
<%if(...)%>
...
<%elseif(...)%>
...
<%/if%>
--第二种格式写法(旧写法)-->
<%if...%>
...
<%elseif...%>
...
<%/if%>
continue退出当前循环标签
循环标签中分支用以结束当前循环,直接进入下一次循环的标签,使用方式同传统程序一致。
--continue标签-->
<%continue%>
--使用示例,当i等于5时退回并进入下一条循环-->
<%for(inti=0;i<=count;i++)%>
<%if(i==5)%>
<%continue%>
<%/if%>
<%/for%>
break结束循环标签
在循环标签中用以结束循环,进入后续程序的标签,使用方式同传统程序一致。
--break标签-->
<%break%>
--使用示例,当i大于5时结束循环-->
<%for(inti=0;i<=count;i++)%>
<%if(i>5)%>
<%break%>
<%/if%>
<%/for%>
获取GET传输参数标签
获取URL地址GET传输的参数值
--request标签,varname为参数名-->
{request[varname]}
截取字符串长度标签
当一个字符串的长度大于你想要的值时可使用该标签
参数说明:
num:
int类型,字符串长度
--cutstring标签,{...}为变量-->
<%cutstring({...},num)%>
日期格式转换标签
把日期字符串转换成你想要的格式
参数说明:
strFormat:
日期格式
--datetostr标签,{...}为变量-->
<%datetostr({...},strFormat)%>
--示例一:
输出年月日格式的日期-->
<%datetostr({varname},yyyy年MM月dd日)%>
--示例二:
输出年月日时分秒格式的日期-->
<%datetostr({varname},yyyy年MM月dd日HH时mm分ss秒)%>
整型格式转换标签
当一个字符串的想转换成一个整型的数字时可使用该标签
--strtoint标签,{...}为字符串变量-->
{strtoint({...})}
直接输出内容标签
当一个方法返回的是字符串内容,而我们又想直接在模板页中直接输出可使用该标签。
该标签支持两种写法,推荐用第一种。
--第一种写法(推荐)-->
<%=方法名(参数一,参数二,...)%>
--第二种写法(旧写法)-->
<%write方法名(参数一,参数二,...)%>
1.5声明变量与赋值标签
和C#语法基本一致,需要声明或在需要接受一个方法返回的内容时可以使用该标签。
参数说明:
type:
可选,变量的类型,如果有type则首先创建对象再赋值,否则直接赋值
ref:
变量名,同一页面内不可重复
expression:
变量、常量或方法都可以
--第一种写法(推荐)-->
<%set[type]ref=expression%>
--示例一-->
<%setintnum=1%>
--再次使用时不用再声明-->
<%setnum=2%>
--示例二-->
<%setDataTabledt=get_list(参数一,参数二,...)%>
--第二种写法(旧写法)-->
<%set[(type)]{ref}=expression%>
--示例一-->
<%set(int){num}=1%>
--再次使用时不用再声明-->
<%set{num}=2%>
--示例二-->
<%set(DataTable){dt}=get_list(参数一,参数二,...)%>
一、系统配置标签(变量)
系统配置的一些信息,实际上是源码DTcms.Model项目中的sys_config.cs里面的属性,里面都有详细的备注与注释
标签
描述
示例
{config.webname}
主站名称
动力启航
{config.weburl}
主站域名
{config.webcompany}
公司名称
XX软件有限公司
{config.webaddress}
公司地址
XX省XX市XX区XX号
{config.webtel}
联系电话
{config.webfax}
传真号码
{config.webmail}
管理员邮箱
{config.webcrod}
网站备案号
粤TC/ICP备XX号
{config.webpath}
网站安装目录,/代表放在根目录
/
{config.webmanagepath}
网站后台管理目录
admin
{config.staticstatus}
是否开启生成静态,0不开启,1伪静态,2全静态
1
{config.staticextension}
生成静态扩展名
html
{config.mobilestatus}
手机网站状态,0关闭1开启
1
{config.mobiledomain}
手机网站绑定域名
{config.memberstatus}
开启会员功能,0不开启,1开启
1
{mentstatus}
开启评论审核,0不审核,1开启审核机制
0
{config.logstatus}
后台管理日志,0关闭,1开启
1
{config.webstatus}
是否关闭网站,0正常,1关闭
0
{config.webclosereason}
网站关闭原因描述
网站正在维护,请稍候访问...
{config.webcountcode}
网站统计代码,支持HTML
{config.smsapiurl}
短信API地址
{config.smsusername}
短信平台登录账户名
test
{config.smspassword}
短信平台登录密码,MD5加密字符串
a34de42fededferkc63fe
{config.smsnickname}
手机短信签名
动力启航
{config.emailsmtp}
邮件STMP服务器
{config.emailssl}
SSL加密连接
1
{config.emailport}
邮件SMTP端口
25
{config.emailfrom}
发件人地址
{config.emailusername}
邮箱账号
{config.emailpassword}
邮箱密码,内置加密算法
{config.emailnickname}
发件人昵称
网站管理员
{config.filepath}
附件上传目录名
upload
{config.filesave}
附件保存方式,1按年月日保存,2按年月/日/保存
1
{config.fileextension}
附件上传类型,以逗号分隔开
gif,png,doc
{config.videoextension}
视频上传类型,以逗号分隔开
mp4,flv
{config.attachsize}
附件上传大小,单位为KB
2048
{config.videosize}
视频上传大小,单位为KB
2048
{config.imgsize}
图片上传大小,单位为KB
1024
{config.imgmaxheight}
图片最大高度(像素)
1024
{config.imgmaxwidth}
图片最大宽度(像素)
1024
{config.thumbnailheight}
生成缩略图高度(像素)
1024
{config.thumbnailwidth}
生成缩略图宽度(像素)
1024
{config.watermarktype}
图片水印类型,0关闭,1文字,2图片
1
{config.watermarkposition}
图片水印位置,1-9
9
{config.watermarkimgquality}
图片生成质量,0-100
80
{config.watermarkpic}
图片水印文件
watermark.png
{config.watermarktransparency}
水印透明度,1-10
5
{config.watermarktext}
水印文字
动力启航
{config.watermarkfont}
文字字体
Arial
{config.watermarkfontsize}
水印文字大小(像素)
12
当前站点的配置信息,只能在当前模板页面中使用这些标签,它和上面的系统配置不同,例如当前访问的是站点A,加载的就是站点A的配置信息。
标签
描述
示例
{site.name}
网站名称
动力启航
{site.domain}
网站域名
{site.logo}
网站LOGO
{pany}
公司名称
XX软件有限公司
{site.address}
公司地址
XX省XX市XX区XX号
{site.tel}
联系电话
{site.fax}
传真号码
{site.email}
管理员邮箱
{site.crod}
网站备案号
粤TC/ICP备XX号
{site.copyright}
网站版权信息,支持HTML
版权所有动力启航
{site.seo_title}
SEO标题
动力启航_开源
{site.seo_keyword}
SEO页面关健词,255字符内
开源,C#开源
{site.seo_description}
SEO页面描述,255字符内
DTcms100%开源的CMS
二、全局通用标签(方法)
2.1统一链接标签
主要对DTcms.Web\xmlconfig\urls.config文件里的节点读取和匹配。
参数说明:
key:
URL配置的名称
params:
Object参数列表
<%linkurl(key,params)%>
--示例一:
首页链接-->
<%linkurl("index")%>
--示例二:
关于我们链接-->
<%linkurl("content","about")%>
2.2分页页码标签
输入分页页码按钮链接,需要和pagination.css一起使用。
参数说明:
pagesize:
每页显示条数
pageindex:
当前页码
totalcount:
总记录数
key:
URL配置的名称
params:
Object参数列表
get_page_link(pagesize,pageindex,totalcount,key,params)
--示例一:
列表分页,其中“__id__”为页码数字,系统自动替换-->
<%setstringpagelist=get_list(12,page,totalcount,"news_list",category_id,"__id__")%>
--放置页码列表,class="flickr"里面的样式可以修改成不同的23种风格-->
{pagelist}
2.3调用插件列表标签
主要用于主模板面调用插件方法,为了防止插件卸载后页面出错,建立使用该方法调用。
参数说明:
assemblyName:
命名空间全局限定名
className:
类名
methodName:
方法名称
params:
Object参数
get_plugin_method(assemblyName,className,methodName,params)
--示例一:
输出留言插件列表的最新4条留言信息-->
--使用foreach循环输出-->
<%foreach(DataRowdrinflist.Rows)%>
留言标题:
{dr[title]}
<%/foreach%>
三、频道调用标签(方法)
频道列表页已声明变量:
page(当前页码)、category_id(当前类别ID)、totalcount(数据的总记录)、pagelist(分页字符串),可直接使用这些变量
频道详细页已声明变量:
id(当前文章ID)、call_index(调用别名)、model(当前文章Model实体类,可查阅数据字典),可直接使用这些变量
3.1查询最新文章列表标签
可根据条件查询前几条最新文章列表,用循环语句输出。
参数说明:
channel_name:
频道名称
top:
显示的条数,0为显示所有
strwhere:
SQL查询语句
get_article_list(channel_name,top,strwhere)
--示例一:
显示新闻频道最新8条信息,新闻频道的名称为“news”-->
<%setDataTablenlist=get_article_list("news",8,"status=0")%>
--使用foreach循环输出-->
<%foreach(DataRowdrinnlist.Rows)%>
新闻标题:
{dr[title]}
<%/foreach%>
--示例二:
显示新闻频道最新推荐8条信息,新闻频道的名称为“news”-->
<%setDataTablenlist=get_article_list("news",8,"status=0andis_red=1")%>
--使用foreach循环输出-->
<%foreach(DataRowdrinnlist.Rows)%>
新闻标题:
{dr[title]}
<%/foreach%>
3.2按分类查询最新文章列表标签
可根据分类ID与条件查询前几条最新文章列表,用循环语句输出。
参数说明:
channel_name:
频道名称
category_id:
栏目分类ID
top:
显示的条数,0为显示所有
strwhere:
SQL查询语句
get_article_list(channel_name,category_id,top,strwhere)
--示例一:
显示新闻频道分类ID为1的最新8条信息-->
<%setDataTablenlist=get_article_list("news",1,8,"status=0")%>
--使用foreach循环输出-->
<%foreach(DataRowdrinnlist.Rows)%>
新闻标题:
{dr[title]}
<%/foreach%>
--示例二:
查询新闻频道分类ID为1的最新8条信息,只显示前4条-->
<%setDataTablenlist=get_article_list("news",8,"status=0")%>
--使用loop循环输出-->
<%loopndrnlist%>
<%if(ndr__loop__id>4)%>
<%break%>
<%/if%>
新闻标题:
{ndr[title]}
<%/loop%>
3.3查询并排序文章列表标签
可根据分类ID与条件查询前几条最新文章列表并进行排序,用循环语句输出。
参数说明:
channel_name:
频道名称
category_id:
栏目分类ID,0显示所有分类
top:
显示的条数,0为显示所有
strwhere:
SQL查询语句
orderby:
SQL排序语句,asc顺序desc倒序
get_article_list(channel_name,category_id,top,strwhere,orderby)
--示例一:
查询新闻频道分类ID为1的8条信息,按字段sort_id数字倒序排序-->
<%setDataTablenlist=get_article_list("news",1,8,"status=0","sort_iddesc")%>
--使用foreach循环输出-->
<%foreach(DataRowdrinnlist.Rows)%>
新闻标题:
{dr[title]}
<%/foreach%>
3.4文章列表分页标签
此标签只允许在频道列表页中使用,分页需结合pagination.css。
参数说明:
channel_name:
频道名称
category_id:
栏目分类ID,0显示所有分类
page_size:
每页显示数量
page_index:
当前页码,系统默认为page
strwhere:
SQL查询语句
totalcount:
数据总数,系统默认为totalcount
pagelist:
分页字符串变量,系统默认为pagelist
key:
URL配置名称
params:
URL传输参数
get_article_list(channel_name,category_id,page_size,page_index,strwhere,outtotalcount,outpagelist,key,params)
--示例一:
查询新闻频道分类ID为1的所有记录-->
<%setDataTablenlist=get_article_list("news",1,pagesize,page,"status=0",outtotalcount,outpagelist,"news_list",category_id,"__id__")%>
--使用foreach循环输出-->
<%foreach(DataRowdrinnlist.Rows)%>
新闻标题:
{dr[title]}
<%/foreach%>
3.5根据调用别名取得内容标签
此标签适用于单页,在只需要显示该文单详细内容时使用。
参数说明:
call_index:
该条文章的调用别名,string类型
get_article_content(call_index)
--示例一:
输出关于我们单页的内容-->
<%=get_article_content("about")%>
3.6根据文章的ID返回图片路径标签
此标签适用于只知道文章的ID情况下想得到该文章的图片路径。
参数说明:
article_id:
文章ID,int类型
get_article_img_url(article_id)
--示例:
显示文章ID为5的图片-->
"/>
3.7返回对应信息扩展字段值标签
使用此标签时会判断当前用户是否登录,如尚未登录则返回-1。
参数说明:
article_id:
文章ID,int类型
field_name