[hu60t手册]五、编写xhtml/wml兼容的模板

    在学习本节之前,建议先大概看看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}>)。
回复列表(11|隐藏机器人聊天)
添加新回复
回复需要登录