XTCMS 模板语法大全

来自站长百科
跳转至: 导航、​ 搜索

变量语法[ ]

变量语法是模板中直接书写PHP变量的方法。在Nemo中,变量可以直接书写在模板中,无需事先声明。书写时无需在变量两边添加大括号“{}”,数组变量的键值也无需添加引号。调用类中的变量,可以直接使用“->”。
如:

$array[monkey] $float $n->tplfile


语法:

{变量:date 日期格式}

解释:按照指定的日期格式显示时间戳
对于时间戳内容的变量,本语法可以直接按照指定的日期格式显示变量的值,日期格式允许用变量代替。
日期格式请参考PHP 手册
如:

{$time:date $a} 将显示 2006-04-14


语法:

{变量:float 格式}

解释:按照指定的格式显示浮点数
对于浮点数,本语法可以将变量按照格式所指定的位数设置进行显示。格式写法为“M.D”,M 代表整数位,D 代表小数位。格式允许用变量代替。
如:

{$float:float 3.4} 将显示 123.4567


语法:

{变量:format 格式}

解释:按照指定的格式显示变量
本语法会按照指定的格式显示变量,格式定义规则按照 PHP 的函数 sprintf 为准,格式允许用变量代替。
格式请参考 PHP 手册
如:

 {$float:format %010d} 将显示 0000000123


语法: {变量:specialchar} 解释:将变量的内容转换为可显形式
本语法适用于把变量显示在 INPUT 表单的值中,使之能够完整的显示出自串的原始内容。本函数调用 PHP 的 htmlspecialchars 函数,如要对此函数附加参数,请用“{变量:specialchar 参数}”格式引用。
参数含义请参考PHP 手册
如:

<input name=’name’ value=’{$specialchar:specialchar}’>


语法:

{变量:default 默认值}

解释:当变量无效显示默认值
本语法会自动判断变量是否定义或者为空,如符合则显示默认值,默认值允许用变量代替。
如:

 {$error:default 没有错误}


语法:

{变量:userfunc(参数)}

解释:使用用户自己的函数处理变量
本语法会使用用户自己的函数或者系统函数处理变量。用户函数没有第二个或更多的参数可以不写。
如:

{$error:userfunc()}       {$error:userfunc(’*',’*')}

函数定义

  function userfunc($var,$left=’[',$right=']‘) {
  return “$left$var$right”;
 }

流程语法[ ]

流程语法为控制模板显示方式的语法,把 PHP 代码中用于显示的流程语句写在此处,可以有效的 PHP 代码的效率,这也是MVC 设计理论的重点。流程语法有 2 种书写方法:
<!–语法标记–>
按照HTML 注释的书写方法,这样可以方便使用UltraEdit 等直接编辑源码的程序员方便的查看到流程语句而设定的。
<语法标记–>
按照HTML标记的书写方法,这样是照顾到使用Dreamweaver等可视化工具制作模板的人员,因为HTML中未定义的标记在编辑状态中是不会显示的,因此不会影响设计模板的可视化效果。大家可以依照习惯选用。

语法:

<!–include:模板文件 模板编译缓存的有效期–>

模板运行到此处将引用指定的模板文件的内容到当前位置,如果定义了常量 _TPLPath_ ,将到指定的目录中去读取子模板文件。模板编译缓存的有效期可选,如果指定此参数,如果指定此参数子模板会在指定的有效期后重新缓存,0 表示子模板文件更新后才重新缓存,即使父模板文件更新子模板也不更新。
如:

<!–include:header.htm–>


语法:

 <!–if:条件表达式–>…<!–else–>…<!–/if–>
<!–if:条件表达式–>…<!–elseif:条件表达式–>…<!–elseif:条件表达式–>…<!–/if–>

模板运行到此处将按照 if 条件表达式的状态显示相应的内容。条件表达式中的变量书写规则同变量语法中的声明。
如:

<!–if:$if==1–>

 条件成立

<!–else–>

 条件不成立

<!–/if–>


语法:

<!–switch:变量–>…<!–case:值1–>…<!–case:值2–>…<!–case:值n–>…<!–/switch–>

当一个变量存在多个不同的值显示不同的内容时,可以用此语法。值可以写成字符也可以写成变量。
<!–switch:变量–>…<!–case:值1–> 中为所有值都不符合时显示的默认内容。
如:

<!–switch:$switch–>默认
<!–case:1–>Case 1
<!–case:2–>Case 2
<!–case:3–>Case 3
<!–/switch–>


循环语法包含3类,一类是 for 标准与法,一类是用于 HTML 标记的 for_xxx 系列语法,最后一类是 loop 特殊循环语法。
语法:

<!–for:数组变量 键变量 值变量–>…<!–/for–> <!–for:数组变量 值变量–>…<!–/for–>

数组变量可以通过此语法显示其内容,如果为多维数组,可以继续嵌套。
如:

<!–for:$for $k $v–>
$k = $v
<!–/for–>


语法:

<!–for_option:数组变量 值键 值变量 选中的值–>……<!–/for_option–>

本语法作用为生成 <select> 标记的 <option> 标记,适用于2维数组,值键为用于显示 <option> 标记 value 属性所在键的值。
选中的值可以为数组变量也可以为单独变量,存在的值在 <option> 中被默认加上 selected 属性。如不希望设置默认选中的值,则选中的值可填写 null。
举例说明,如数组 $for_option 类似为如下结构:

id   name
————–
1    Monkey
2    Cat
3    Mouse

则我们如此书写模板 

<!–for_option:$for_option id $v null–>$v[name]<!–/for_option–>

那么生成结果为:

<option value=”1″>Monkey<option value=”2″>Cat<option value=”3″>Mouse


语法:

<!–option:数组变量 选中的值–>

此语法为 <!–for_option–> 语法的简化版,区别在于本语法将直接用数组变量的键作为 <option> 标记的 value 属性,数组变量的值作为显示的内容。
语法:

<!–for_checkbox 名称:数组变量 值键 值变量 选中的值–>……<!–/for_checkbox–>

本语法作用在于通过循环生成多个 <input type=”checkbox”> 的值,含义同 <!–for_option–> 语法,区别在于名称为 <input> 标记 name 属性的值。
如:

<!–for_checkbox name1[]:$for_option id $v $selected–>$v[name]
<!–/for_checkbox–>

同样,此语法也有一个简化版
语法:

<!–checkbox 名称:数组变量 选中的值–>


语法:

<!–for_radio 名称:数组变量 值键 值变量 选中的值–>……<!–/for_radio–>

本语法作用在于通过循环生成多个 <input type=”radio”> 的值,含义同 <!–for_option–> 语法,区别在于名称为 <input> 标记 name 属性的值,且选中的值不能为数组,因为 radio 为单选框。
如:

<!–for_radio name2:$for_option id $v $selected–>$v[name]
<!–/for_radio–>

同样,此语法也有一个简化版
语法:

<!–radio 名称:数组变量 选中的值–>


语法:

<!–loop:数组变量–>…{[键值]}…<!–/loop–>

本语法作用于二唯数组变量,在数组的二维键值为字串时使用,循环中可以直接书写二维键值。
如:

以上例中的 $for_option 数组为例
 <!–loop:$for_option–>
  {[name]}
<!–/loop–>

将显示

 Monkey
 Cat
 Mouse


语法:

<!–loop:循环起始 循环运行条件 循环增量–>……<!–/loop–>

本语法作用同 PHP 的 for 语法,三个参数的含义与 for 相同,用空格分割。
如:

<!–loop:$i=1 $i<10 $i++–>+<!–/loop–>

特殊语法[ ]

特殊语法为额外附加的,附带一些PHP特性的语法,方便在模板中书写 PHP 语句。

语法:

{echo:显示的内容}

此语法直接调用echo显示指定的内容,等同于执行了echo。字串注意加引号。
语法:

<!–php:PHP语句–>

此语法中可以直接书写PHP语句。
语法:

<!–**注释**–>

此语法中可以书写注释,注释中的内容不会被模板引擎编译
语法:

<!–htmlcache–>……<!–/htmlcache–>

包含在本语法中的模板内容,将直接缓存显示的静态HTML结果,如配合_TPLCacheLimit_常量将可以动态更新静态缓存部分的内容,否则只有当模板文件更改的时候才会更新静态缓存部分。

用户模板替换包[ ]

用户模板替换包为方便自由替换模板内容所用,可以用于语言包的设计,或者一些通用写法的简略

语法:

 {#替换包变量#}

用户自定义替换包需要按照以下格式书写一个PHP文件。

<?php
$data = array (
‘Welcome to’ => ‘欢迎来到’,
‘PHPSo’ => ‘PHP课堂’
);
?>

$data 数组元素的key为替换的变量,数组元素的值为要替换成的内容。
[, 用户模板替换包]:替换包的文件名。
[, 用户模板替换包路径]:替换包的路径,如果不指定,默认为模板路径。


语法:

定义:<!–func 函数名:函数参数–>……<!–/func–>
调用:<!–func:函数名(参数)–>

自定义一个模板函数,你可以把模板中经常重复的内容写进此语法,需要的时候直接调用函数即可。同时调用语法也可以调用其它函数。 如:

  <!–func aaa:$a,$b–>
   $a:
<!–loop:$b–>{[name]} <!–/loop–>  <!–func:aaa(’for_option’, $for_option)–>


语法:

 <!–require:模板文件–>

把指定的子模板文件包含到父模板中,只有当父模板重新缓存时被 require 的子模板才会重新被读取。
如:

    <!–require:header.htm–>

相关条目[ ]