在学习本节之前,建议先大概看看smarty3中文手册,对smarty3的模板语法有些了解。
但没了解也没关系,看完本节再学也行。
这是一个smarty3.1.4手册
1. hu60t的模板默认分隔符是{和},如果不方便,你可以在php中自行修改(同时修改hu60t自带的模板)
2.开始创作
目标文件是page/test/aa_test.tpl
{include file="tpl:comm.head" title="这是一个测试页面"}
这句载入了hu60t已经写好的xhtml或wml头文件,file属性指定了文件的位置,title属性指定了要显示的标题。
除了title之外,还有其他的属性可以被使用:
url 指定要自动跳转的url,如 url="
http://wap.baidu.com/"
time 指定自动跳转的时间,单位秒,如 time=5
如果要使跳转生效,time属性必须存在(可以time=0,表示立即跳转),而url属性却是可选的。如果url不存在,就自动刷新本页。
自动跳转在xhtml和wml中都能正常工作。
不需要对url进行编码。比如a.php?c=d&e=f,不需要把&改成& 因为tpl:comm.head在输出时会自动编码它们。
css 指定一个用于输出css的模板。默认的css="tpl:comm.css.xhtml"。你可以修改该模板,或者通过该属性重新指定一个css模板。
注意:由于模板分隔符是 { } ,所以css不能这样写:
a{color:#fff}
它们会被认为是模板标记而导致出错。应该这样写:
a { color:#fff }
或
a {
color:#fff;
}
保证大括号中间有空白,就不会出问题了。
(很显然,该属性只在xhtml下生效。)
base 当base属性不存在或base=false时,输出的头部可能包含额外的标记(比如xhtml头部会埋一个id=top的锚链接)。当base=true时,则只输出基本的头部。
写给第一次用模板的童鞋:除了file属性外,其他属性都是tpl:comm.head自定义的(你可以打开该模板看看),如果换一个模板再用相同的属性,可能完全没用。不要误以为每个模板都有这些属性。
{div class="bk1"}
这是一个块。
{/div}
它和<div></div>标记是一模一样的,可以使用div标记的任何属性。而且它有一个特别的属性wml用来规定在wml版输出什么(默认是<p></p>)
例:{div class="bk2" wml="--a--"}b{/div wml="--c--"}
在xhtml版,看到一个块里面只有b。在wml版,看到--a--b--c--
结束标记也能有属性?是有点奇怪。但你会发现它的用处的,特别是不想在wml中产生多余换行时,用{/div wml=""}{div wml="<br/>"}(用一个换行代替原来的</p><p>)是一个好办法。
{span style="color:#ff0000;" wml="<b>"}在xhtml版是红色的,在wml版是加粗的。{/span wml="</b>"}
这是<span></span>标记的替代品,它默认在wml下不输出任何东西(“1.0.20120511第二次打包”以前的版本会输出<br/>)。可以使用wml属性指定wml下输出什么。
下面有一条线?{hr}谁说的?明明是上面有一条线。
{hr}就是<hr/>的替代标记,它可以使用<hr/>原有的各种属性。同时,可以用wml属性规定在wml下输出什么(默认是<br/>--------<br/>)。
{$aa}<br/>
{$bb}<br/>
{$cc}<br/>
{$dd}<br/>
本页网址是http://{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI|code}
输出变量
{hu60::getmyurl()|code}
调用函数
更多的模板语法就不介绍了,看smarty3文档去。
{include file="tpl:comm.foot"}
输出wml/xhtml尾。有一个属性base,如果base=true,则不会输出底部的“[WAP1.0版]”等额外的内容。
下一节的内容是“xhtml/wml兼容表单”
补充!我居然把它忘记了。
2. {isbid}标记
{isbid}{/isbid}标记内的内容只有在bid符合当前
$PAGE[bid]时才编译到模板中。具体使用时,bid用xhtml或wml代替。
{isxhtml}aa{/isxhtml}
{iswml}bb{/iswml}
如果你通过插件机制添加了更多的bid,比如加入了xml,你还可以使用{isxml}{/isxml}。
{isbid}标记不支持嵌套,否则会出问题,请特别注意!
{isbid}标记是通过smarty的预过滤器实现的,所以你可以把它用在任何地方,包括模板标记中:
{include file="tpl:comm.{isxhtml}aa{/isxhtml}{iswml}bb{/iswml}"}
当你更换了模板定位符时(比如改成了<{ }>),isbid的定位符也会同步更改(需要使用<{isbid}>…<{/isbid}>)。
▋__▃▃▋▃▃
▋__▋▃▃▃▋
▋__▋▃▃▃▋
▋__▋▃▃▃▋
◥▋____◢◤◥◣___