模板-标签
本文整理于网络,仅供阅读参考,如有不妥之处,敬请批评指正!如果您想加入微擎社区版技术大牛微信群和QQ群,请联系微信: ccccyyyy4444 或者 QQ:155120699
概述
微擎的模板文件本质上就是一个php文件,所以支持直接书写php代码,但是为了增加开发效率和非php人员的使用,微擎系统定了了一套类似于 Smarty 的模板引擎标签。
下面我们通过实例讲解一下微擎中的标签如何使用。
输出变量
{$foo}
输出标签是由一对花括号做为定界符的,不支持输出数组,相对于php中的 echo
示例
<div class="user-head ellipsis">{$_W['fans']['nickname']}</div>
// 对等于
<div class="user-head ellipsis"><?php echo $_W['fans']['nickname']; ?></div>
判断语句
{if condition}
{elseif condition}
{else}
{/if}
条件选择分支
示例
如果 $do 等于 record 则显示下面的卡券领取记录,否则显示查看卡券
{if $do == 'record'}
<li class="active"><a href="javascript:;">卡券领取记录</a></li>
{else}
<li class="active"><a href="javascript:;">查看卡券</a></li>
{/if}
if 和 elseif 配合使用
{if $dca['status'] == 1}
<span class="label label-success">未使用</span>
{elseif $dca['status'] == 2}
<span class="label label-warning">已失效</span>
{elseif $dca['status'] == 3}
<span class="label label-danger">已核销</span>
{elseif $dca['status'] == 4}
<span class="label label-default">已删除</span>
{else}
<span class="label label-default">全部</span>
{/if}
循环语句
{loop $result $key $value}
{/loop}
循环遍历语句,相当于PHP中的
foreach ($result as $key => $value) {
}
参数
- $key 可以使用其它名称,将存储数组中每一成员的键值
- $value 可以使用其它名称,将存储数组中每一成员的值
示例
循环一个数组用 loop 标签,与php中的 foreach 函数类似,第一个参数为数组的索引,第二个参数为数组第一项的值,只要标签成对匹配,模板中的标签是可以嵌套使用的。
{loop $list $index $item}
<tr>
<td>{$index}(显示数组的索引):</td>
<td>{$item['user']['nickname']}</td>
<td>
{if $item['follow'] == '1'}
<span class="label label-success">已关注 </span>
{elseif $item['unfollowtime'] <> '0'}
<span class="label label-warning" >取消关注 </span>
{else}
<span class="label label-danger">未关注 </span>
{/if}
</td>
</tr>
{/loop}
php语句
{php expression}
运行一个PHP原生代码,不支持多行php语句
参数
- expression 符合PHP语法的表达式
示例
由于某些时候需要使用一些php来输出内容,比如格式化时间戳为日期时,此写法并不支持多行php语句,例如:
<span class="help-block">{ php echo date('Y-m-d H:i:s', $row['followtime'])}</span>
或者
<?php
echo 1;
?>
引用模板
{template '$templatename'}
引用一个模板文件
参数
- $templatename 模板名称或是路径+模板名称
示例
在模板中如果需要引用其它模板文件可以使用以下的方法:
//模块中的使用方法,不需要添加目录信息
{template 'header'}
//系统的模板引用的方法,需要添加目录信息
{template 'common/header-base'}
创建URL
{url 'controller/action/do', (array)querystring}
创建一个微擎URL
参数
- controller 控制器名称,URL中的 c= 值
- action URL中的a=值
- do URL中的do=值
- querystring URL中后面的querystring参数
示例
定义URL时,与在php文件中的创建方法一样,具体使用如下:
<a href="{url 'extension/service/display'}" class="tile img-rounded"><i class="fa fa-glass"></i><span>常用服务</span></a>
<a href="{url 'home/welcome/ext' array('m' => $module['name'])}">模块 - {$module['title']}</a>
此标签并没有提供模块 $this→createMobileUrl('xx')
函数,在模块中的模板中请按以下方法创建:
echo $this->createMobileUrl('order')}
转义附件URL
{media imageurl}
转换一个图片地址为绝对地址
参数
- imageurl 图片地址,可以是相对也可以绝对
示例
微擎系统支持远程附件,如果你有用到图片或是附件请转义一下地址,具体使用如下:
<i style="background:url({media $nav['icon']}) no-repeat;"></i>
输出花括号
{##string##}
示例
因为模板标签定界符是一对花括号,所以当你想输出一对花括号本身时可以使用以下方法:
{##$order##}
此时花括号和变量不会被转义
如果看不懂微擎社区版二次开发手册或者遇到问题,请联系微信: ccccyyyy4444 或者 QQ:155120699 ,如果我们有空闲时间,可以免费为您答疑解惑。