Discuz!NT模板基本语法

不必担心, Discuz!NT模板中用到的语法是很少的, 因为我们的目的就是为了让没有程序语言基础的人也可以快速掌握.

基本语句如下:

 

语法含义举例
<%template tplname%>包含某个已存在的模板文件<%template _header%>
{varname}显示变量{username}
{var[...]}显示数据变量里的指定字段的值{forum[name]}
<%loop item list%>

...

<%/loop%>
循环列出数据, 每个数据用{item[字段名]}表示, 数据为DataTable.<%loop forum forumlist%>

版块名称: {forum[name]}

<%/loop%>
<%if ...%>

...

<%else%>

...

<%/if%>
判断语句, <%else%>可选, 意思为:

如果满足条件... 的话
...

否则
...

结束

并且可以使用以下比较符:

> 大于
< 小于
== 等于
>= 大于等于
<= 小于等于
!= 不等于
<%if {userid}==-1%>

您尚未登录

<%else%>

您已经登录

<%/if%>
<%csharp%>

...

<%/csharp%>
插入c#代码<%csharp%>

//可以插入任意c#代码
int maxattsize = 20;

<%/csharp%>
<%set [ (type) ]{ref} = [ " ]arg[ " ]%>
<%set
[ (type) ]{ref} = expression%>
创建一个程序变量并赋值,具体解释如下:

type - 变量的类型,如果有type则首先创建对象再赋值,否则直接赋值

ref - 这里代表变量或属性

arg - 如果此参数外有双引号,则为此值为字符串类型;如果是数字并且没有双引号封闭,则此值为整型

expression - 这里可以写表达式为ref赋值
创建变量并赋值: <%set (int){maxattsize} = 20%>
变量引用: <%set (int){maxattsize} = {usergroupinfo.Maxattachsize}%>
变量赋值: <%set {maxattsize} = 20%>
方法引用: <%set (int){fid} = {strtoint({forumid})}%>
字符型: <%set {forumid} = "5"%>
<%namespace namespacename%>引入一个命名空间
注意:该语句不能用在子模板中
<%namespace Discuz.ForumPlugin.Bank%>
<%inherits classname%>自定义aspx页面的继承类,需要写在模板文件的最上方,子模板无效<%inherits "Discuz.Album.Pages.showphoto"%>
<%continue%><%loop item list%>循环标签中分支用以结束当前循环,直接进入下一次循环的标签,使用方式同传统程序一致。<%loop item list%>
...
...<%if ...%>
...<%continue%>
...<%/if%>
...
<%/loop%>
<%break%>在循环标签中用以结束循环,进入后续程序的标签,使用方式同传统程序一致<%loop item list%>
...
...<%if ...%>
...<%break%>
...<%/if%>
...
<%/loop%>


你也许会惊讶, 就这么几个吗? 是的, 主要的显示控制语句就以上的几个, 界面中80%以上的情况下用上面的语句来解决就足够了, 是不是很简单?

上面灰色背景的为程序语句, (深灰色为高级语法, 普通用户制作模板时如果不懂也可以不用) 程序语句格式比较死板, 因此在书写的时候应该特别注意, 必须遵守固定的格式.

上面已经列举了两种最常见的变量用法, 下面是变量使用的一些例外, 在这里也列举一下:

语法含义举例
{templatepath}模板所在的路径<link href="templates/{templatepath}/dnt.css" rel="stylesheet" type="text/css" />
{strtoint(...)}将数字字符串转换为数字, 如果字符串不是数字, 则转换为0 , 主要用于必须将变量转换为数字才可使用的场合<%if {strtoint({forumid})}==1%>

...
{var.item}属性变量, 中间为英文字符. 在生成的aspx文件中, 属性的第一个字符会大写, 主要用于要使用一个对象属性的场合论坛名称是: {config.forumtitle}

(在aspx文件中变量实际是config.Forumtitle)
{request[...]}获取用户的提交, 包括url参数和表单等, 主要用于要使用用户提交的参数的场合<%if {request[username]}!=""%>

...



至此, 模板中所需要用的变量和语句的方法就列举完了, 当然, 如果你了解c#语法, 一些地方可以略微灵活的处理, 这里只所以只提供几种最简单的语句, 主要还是考虑到许多站长并没有程序语言的基础.

此外, 考虑到大家书写的方便和降低书写错误的几率, Discuz!NT模版规定: 所有变量和语句均为小写, 我们也希望大家在改写aspx.cs文件时提供的变量都为小写, 只有这样, 才可以维护这一规则.

有了这些基本的了解, 接下来, 我们就可以尝试自己制作模板了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值