首页 > 模板开发 > 正文

模板制作-模板标签的使用

  • 更新时间:2024-09-19 16:24:37
  • 2109阅读
  • 0评论

rpcms系统的模板标签使用大众化的{ }来作定界符,不需要开发者重新学习新的标签,遵循国内开发者的习惯。

模板标签使用起来也很简单,{ 和 }中间包含标签变量即可。


1、字符串变量输出

hello {$name}

    如果$name定义的内容是“rpcms”,那么运行后就会显示“hello rpcms”

    注意:{ 和 } 直接不能有空格或换行,否则视为无效标签,模板渲染会原样输出


2、数组变量输出

hello {$data['name']},{$data['message']}

    在数组上rpcms保留了php原始的写法,方便开发者记忆。


3、变量使用默认值

hello {$name|default='rpcms'}

    在变量没有定义或者为空的时候,会使用default设置的默认值。


4、变量使用函数

hello {$name|base64_encode}

将会对$name变量进行base64_encode处理。

如果函数有多个参数,传递的变量用 ### 表示,参数之间用 , 隔开,如:

{$createTime|date='Y-m-d',###}

如果变量是函数的第一个参数,则###可以省略不写,如:

{$title|substr=0,1}

当然,也可是使用多个函数,如:

{$title|substr=0,1|base64_encode|md5}

将会对$title变量先substr,在base64_encode,最后md5

函数也可以和默认值同时使用,这里注意了,因为默认值使用default表示的,所有在创建自定义函数的时候请勿重名。

{$title|default='rpcms'|md5}


5、定义变量

{$name='rpcms'}

定义了一个名称为name,值为rpcms的变量,该变量可以在当前模板页面中使用


6、常量或后台配置输出

{RP.is_develop}

模板渲染输出的时候会先判断是否定义了is_develop常量,如果没有定义则调用webconfig的配置数据


7、包含模板文件

{include:header}
支持使用变量
{include:$header}

使用该标签的时候注意,包含的模板文件和文件名称大小写保持一致,不需要带后缀名。

 / 相对引用在模板中和插件中表达的稍微有点区别,亲们不要搞混了哟,去看《模板标签中include文件时/相对引用的说明特别篇》了解详细。

(V2.5.2新增)include标签支持向引入的模板传递参数,支持变量和函数,如:

{include:$header param1="a" param2='b' param3="$title" param4=":funname()"}


8、执行函数

{:date('Y-m-d H:i:s')}


9、if判断

{if 表达式1}
	真不错
{elseif 表达式2}
	太棒了
{else}
	努力哟
{/if}

rpcms的if标签,同样保留了php原生的if表达式写法。


10、三元运算

{$name ? $name : 'rpcms'}


11、运算符

目前rpcms暂时支持 +  -  *  /  %  后++  后--

{$a + $b}
{$a - $b}
{$a * $b}
{$a / $b}
{$a % $b}
{$a++}
{$b--}


12、foreach遍历

{foreach $list as $k=>$v}
key={$k++},value={$v}
{/foreach}


13、for循环

{for $i=0; $i<10; $i++}
i={$i}
{/for}


14、执行钩子

{hook:hookName}

支持向钩子传递参数,如:

{hook:hookName($name,'test')}

支持传递参数的引用,如:

{hook:hookName(&$name,'test')}


15、原生PHP

{php}echo 'hello rpcms';{php}


16、switch(V2.5.2新增)

{switch $a}
	{case a|b|c}条件1{/case}
	{case $d false}变量条件2,不中断(break){/case}
	{case :fun()}函数条件3,默认中断{/case}
	{default /}条件4
{/switch}


17、block块(V2.5.2新增)

使用block标签的时候,系统会自动调用当前模板中的block.php文件,block的定义也是在这个文件中。

block标签中支持incldue以外的所有模板标签,如下定义了两个block:

<block id="name1">
	这里是html内容
</block>

<block id="name2">
	这里是内容,可以使用标签,如{$title}
</block>

在模板中可以通过block标签调用定义的block,如:

{block:name1}


18、内容原样输出

{$cashFiles|raw}


发表评论

评论已关闭,请移步论坛发表,立即前往

0 位网友评论:

Top