一、模块调用代码:它对应的是模块功能,实现数据调用的就是它
<!--{block name="模块名" parameter="参数"}-->
如调用系统分类的数据:
<!--{block name="category" parameter="type/news/isroot/1/order/c.displayorder/limit/0,12/cachetime/80800/cachename/category"}-->
它有两个参数一个是name,一个是parameter,其中name后面跟的是表名,parameter后面跟的是查询数据的参数,如果对这些参数搞不懂的话可以去看下面的几个教程:
parameter 的值中比较特殊的是 sql ,它后面跟的是转义后的 SQL 语句,这种 SQL 语句是在模块功能的高级模式里面产生的,如如调用注册会员数:
<!--{block name="tag" parameter="sql/SELECT%20count%28%2A%29%20AS%20num%20FROM%20supe_members/limit/0,1/cachetime/900/cachename/membernum/tpl/membernum"}--><!--membernum-->
二、时间格式 #date(日期时间格式, 时间戳)#:它的作用是将时间戳转换为日期/时间格式只能是某些字符的组合,关于它们的介绍在最下面。
#date("Y-m-d H:i:s", $value["dateline"], 1)#
时间戳,它是一个长度为10的整数,是计算的1970年1月1日零时起所过去的秒数。
如:#date(“Y年n月j日”, 1248316413)#对应的时间是:2009年7月23日
三、url链接 #uid/$uid/op/$param#与#action/参数#,这两个标签解析后将会转换成
第一种:#uid/$uid/op/$param#
$uid是变量,是会员的UID号且必填的
op是参数,值只能是:bbs,uchphoto,uchblog,news。
#uid/1/op/bbs#它转换成URL是URL?uid-1-op-bbs
第二种:#action/$value1/$value2/$value3/#,它后面的值可以是多个,并没有限制,只要在地址栏里面能够访问,就能写成这个形式。
#action/announcement# 对应的是 URL?action-announcement
#action/forumdisplay/fid/$cat[fid]# 对应的是 URL?action-forumdisplay-fid-$cat[fid],$cat[fid]是模板中的变量,最终会被转换为数值。
四、截入模板 {template $name},它的作用就是包含其他的模板
$name参数是模板名,如header.html.php,则模板名为:header
在模板文件中都会有这样一句:
意思就是加载header.html.php模板。
五、等价php语句来执行 {eval php语句},它相当于php中的eval函数,作用就是将大括号中的语句作为{eval $i=1;},将$i赋值为1
注意:在用{eval php语句}时中间不要出现“{”、“}”,否则系统会无法解析里面的php语句,建议写成一行一句的样式。
六、输出字符 {echo $value},作用是$value 只能是字符串
{echo $value} //将显示:你好。
七、if语句 {if $value},{elseif $value},{else},{/if}:这几个标签组合起来将转换成if/else语句,$value是的条件,在它后面不用写括号
在index.html.php模板文件关于调查的代码中有以下几句用的就是这几个标签:
<!--{if empty($_SBLOCK['poll'])}--> <li>暂时没有调查 <!--{else}--> <!--{loop $_SBLOCK['poll'] $value}--></li> <li><a title="$value[subjectall]" href="$value[url]">$value[subject]</a> <!--{/loop}--></li> <!--{/if}-->
复制代码意思是判断$_SBLOCK['poll']是否为空,为空则显示“暂时没有调查”,不为空则显示出调查的数据。
八、loop循环,有两种形式
1、{loop $value1 value2} {/loop}将转换成foreach($value1 as $value2){}语句,作用是遍历数组
$value1是要遍历的数组,$value2是每次遍历的值
在index.html.php模板文件关于公告的代码中有以下几句用的就是这几个标签:
<!--{loop $_SBLOCK['announce'] $value}--> <li><a title="$value[subjectall]" href="$value[url]">$value[subject]</a></li> <!--{/loop}-->
意思是遍历$_SBLOCK['announce']数组,将每次结果放入$value里面。
2、{loop $value1 $value2 $value3} {/loop}将转换成foreach($value1 as $value2=>$value3){}的形式,
$value1是要遍历的数组,$value2中数组的key值,$value3是key值对应的值。
在index.html.php模板文件展示导航条的代码中有以下几句用的就是这几个标签:
<!--{loop $channels['menus'] $key $value}--> <li><a href="$value[url]">$value[name]</a></li> <!--{/loop}-->
复制代码意思是遍历$channels['menus']数组,将每次遍历的key值放入$key,将结果放入$value。
日期/时间格式允许使用的字符(注意大小写)
1、日期格式:
年:
L:是否为闰年,如果是闰年则为1,否则为0;
o(O的小写形式):ISO-8601格式年份数字。这和Y的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加入),例如1999,2003;
Y:4 位数字表示的完整年份,例如1999,2003;
y:2 位数字表示的年份,例如99,03;
月:
F:月份,完整的文本格式,例如 January 或者 March;
m:数字表示的月份,有前导零,01 到12;
M:三个字母缩写表示的月份,例如Jan到Dec;
n:数字表示的月份,没有前导零,1到12;
t:给定月份所应有的天数,例如28,30,31;
日:
d:月份中的第几天,有前导零的两位数字,例如01 到 31;
D:星期中的第几天,以文本表示,截取对应英文名称的前三个字母,例如Mon到Sun;
j:月份中的第几天,没有前导零,例如1 到 31;
l(L的小写形式):星期几,完整的文本格式,例如Sunday到Saturday;
N:ISO-8601格式数字表示的星期中的第几天(PHP 5.1.0新加入),例如1(表示星期一) 到7(表示星期日);
S:每月天数后面的英文后缀,2 个字符,例如st,nd,rd和th,可以和j一起使用;
w(W的小写形式):星期中的第几天,数字表示,例如0(表示星期日) 到 6(表示星期六);
z(Z的小写形式):年份中的第几天,例如0 到 366;
周数:
W:ISO-8601格式年份中的第几周,每周从星期一开始(PHP 4.1.0新加入),例如:42(当年的第42周);
2、时间(time)格式:
a:小写的上午和下午值,am或pm;
A:大写的上午和下午值,AM或PM;
B:Swatch Internet 标准时,000到999;
g:小时,12 小时格式,没有前导零,1到12;
G:小时,24 小时格式,没有前导零,0到23;
h:小时,12 小时格式,有前导零,01到12;
H:小时,24 小时格式,有前导零,00到23;
i:有前导零的分钟数,00到59;
s:秒数,有前导零,00到59;