多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] 视图是 MVC 模式中的一部分。 它是展示数据到终端用户的代码。 在网页应用中,根据视图模板来创建视图,视图模板为PHP脚本文件, 主要包含HTML代码和展示类PHP代码,简单起见,我们称视图模板或视图模板文件为视图。 [TOC] [TOC] 在任何php代码中可以使用 template() 函数来渲染一个视图文件。例如: <?php /** * [WeEngine System] Copyright (c) 2013 WE7.CC */ $setting = $_W['setting']; //将渲染web/themes/manage/user/login.html文件 app端与web端类似,只不过是起始目录为 /app/themes/manage/xxx/yyyy.html [TOC] 同生成URL函数一样,微擎也同样为模块封装了单独的模板调用函数,例如: <?php class We7_demoModuleSite extends WeModuleSite { public function doMobileIndex1() { global $_W, $_GPC; $title = '支付测试'; //将渲染模块目录下的app端的模板文件 // addons/mokuai/template/mobile/index1.html include $this->template('index1'); } public function doWebManage() { global $_W, $_GPC; //将渲染模块目录下的web端的模板文件 // addons/mokuai/template/manage1.html include $this->template('manage1'); } } 模块中的template函数,分为app端与web端的调用,开发时请大家注意各自的目录 [TOC] 有调的模板文件本质上就是一个php文件,所以支持直接书写php代码,但是为了增加开发效率和非php人员的使用,有调系统定了了一套类似于 Smarty 的模板引擎标签 下面我们通过实例讲解一下有调中的标签如何使用。 输出一个变量 输出标签是由一对花括号做为定界符的,不支持输出数组,相对于php中的 echo 如下: <div class="user-head ellipsis">{$_W['fans']['nickname']} :</div> // 对等于 判断语句 如果 $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 标签,与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来输出内容,比如格式化时间戳为日期时,此写法并不支持多行php语句,例如: <span class="help-block">{php echo date('Y-m-d H:i:s', $row['followtime'])}</span> 引用一个模板文件 在模板中如果需要引用其它模板文件可以使用以下的方法: //模块中的使用方法,不需要添加目录信息 {template 'header'} //系统的模板引用的方法,需要添加目录信息 {template 'common/header-base'} 创建一个URL地址 定义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') 函数,在模块中的模板中请按以下方法创建: {php echo $this->createMobileUrl('order')} 转义一个图片,附件地址 有调系统支持远程附件,如果你有用到图片或是附件请转义一下地址,具体使用如下: <i style="background:url({media $nav['icon']}) no-repeat;background-size:cover;width:18px;height:18px;"></i> 输出一对花括号 因为模板标签定界符是一对花括号,所以当你想输出一对花括号本身时可以使用以下方法: {##$order##} 则此花括号和变量不会被转义