微擎会生成tpl.php文件,微擎模板机制文档

微擎是一款后台管理系统,其模板风格定义在./themes/default/中,不支持风格切换。模板缓存存储在./data/tpl,通过template()函数展示或获取模板内容。模板语法包括变量输出、条件和循环语句。数据获取通过data标签调用模块model.php中的函数,支持多条件判断和循环遍历。模板嵌套和PHP语法嵌入提供更灵活的页面构建方式。
摘要由CSDN通过智能技术生成

微擎模板机制文档

2018-09-22

2016-1-28 22:44|发布者:商业源码网|查看: 781|评论: 0

摘要: 微擎本质是一套后台管理系统, 因此没有预留风格切换的功能(并且也完全没有这个必要). 系统风格定义于 ./themes/default/ 中. 按照功能点不同定义于各自的子文件夹中. 在进行模块开发的过程中尽量不要改动系统风格, ...

微擎本质是一套后台管理系统, 因此没有预留风格切换的功能(并且也完全没有这个必要). 系统风格定义于 ./themes/default/ 中. 按照功能点不同定义于各自的子文件夹中. 在进行模块开发的过程中尽量不要改动系统风格, 以方便升级时保证向后兼容.

所有的模板缓存均被解析成php文件存放在 ./data/tpl 中, 以 “模板标示符.tpl.php”形式保存. 页面缓存刷新原理: 当开发者编辑过模板文件之后, 模板解析器会匹配模板html文件与缓存php文件的最后修改时间, 如过模板html文件较新或无缓存文件, 则更新或生成缓存, 不新, 则不采取任何动作. 手动删除此目录的缓存不会影响系统的整体运行, 模板缓存仍然会进行自动生成.

PHP中使用 template() 函数显示已存在模板

在PHP代码中展示模板页请使用 template() 函数, 在开发模块时模块内部应该使用 $this->template() 函数, 这两个函数是用方式完全相同, 只是开发模块时特定模块的模板定义于当前模块文件夹内部(请参阅 "模块开发指南"). 此方法定义如下:

mixed function template(string $filename, int $flag = TEMPLATE_DISPLAY)

说明: 展示特定模板内容

参数:

$filename 模板名称, 格式为: "模板文件夹/模板名称无后缀", 如: common/header $flag 模板展示方式

$flag含义: TEMPLATE_DISPLAY 导入全局变量, 渲染并直接展示模板内容(默认值)

TEMPLATE_FETCH 导入全局变量, 渲染模板内容, 但不展示模板内容, 而是将其作为返回值获取. 可用于静态化页面.

TEMPLATE_INCLUDEPATH 不导入全局变量, 也不渲染模板内容, 只是将编译后的模板文件路径返回, 返回的模板编译路径可以直接使用 include 嵌入至当前上下文.

示例: 以下三种调用方式效果相同$list = array(); ... // 其他更多上下文数据 template("common/template"); //直接展示模板 $content = template("common/template", TEMPLATE_FETCH); //获取模板渲染出的内容 echo $content; //输出渲染的内容 include template("common/template", TEMPLATE_INCLUDEPATH); //嵌入模板编译路径

微擎模板语法

微擎模板使用模板标记来嵌入变量和实现简单的逻辑语法, 当前支持的模板标记包括以下:

变量输出 - {$var}

说明: 使用花括号包含的变量将直接输出至页面, 功能等同于<?php echo $var;?>

转义: 一般情况模板引擎能自动识别 javascript 中的花括号和变量输入的花括号. 如果遇到程序不能自动分辨的情况可以强制使用 "{##" 符号来代表 "{", 使用 "##}" 符号来代表 "}".

特殊情况: 变量输出语法同时支持直接输出数组元素或嵌套数组元素, 例如:{$row["name"]} {$_W["member"]["username"]}

条件语法 - {if condition}{/if}

说明: 使用条件语法能实现等同于if的条件分支判断.

逻辑语句: if后可以跟使用逻辑运算符连接起来的多条逻辑语句, 例如: {if $row["flag"] == "-1" && $row["role"] != "admin"}被禁用{/if}

else语句: 可以使用 {else} 来扩充条件判断, 例如:

{if $row["role"] == "admin"} 管理员 {else} 普通用户 {/if}

多条件判断: 可以使用 {else if condition} 来进行多个条件的判断, 例如:

{if $row["role"] == "founder"} 创始人 {else if $row["role"] == "admin"} 管理员 {else} 普通用户 {/if}

循环语法 - {loop $list $row}

说明: 使用循环语法能够遍历某个集合的内容. 示例:

{loop $wechats $wechat}

Name: {$wechat["name"]} {/loop}

扩展语法: 可以使用扩展的语法 {$loop $list $key $wechat} 来遍历集合的键名和键值, 例如:{loop $wechats $weid $wechat}

Id: {$key}; Name: {$wechat["name"]} {/loop}

模板嵌套 - {template $name}

说明: 在模板的当前位置嵌入另一个模板, 例如: 使用 {template common/header} 来嵌入标准页头.

PHP语法嵌入 - {php statement}

说明: 以上定义的模板语法已经能够实现大部分的页面嵌入情况, 如遇到不能满足需要的情况可以使用 PHP 语法嵌入标记, 例如:{php echo date("Y-m-d H:i:s", $row["dateline"]);}

数据获取标签 - {data module="" func="" return="" item="" limit="" assign=""}{/data}

func - 指定获取数据的函数,此函数定义在模块目录下的model.php文件中

module - 指定获取数据的模块。

assign - 指定该标签得到数据后,存入的变量名称。如果为空则存在与func同名的变量中,方便在下方的代码中使用。

item - 指定循环体内的迭代时的变量名。相当于foreach ($foo as $i => $row)中 $row变量。

limit - 指定获取变量时条数。

return - 为true时,获取到数据后直接循环输出,为false时,获取到数据后作为变量返回。默认为false

目前支持的获取数据func{data func="siteslidesearch"} 获取微站幻灯片

说明: 获取出4条幻灯片数据,示例:

{data module="" func="site_slide_search" return="" item="row" limit="4"}

Name: {$row["name"]} {/data}

{data func="site_article" cid=$cid return="true" assign="result" iscommend="true" ishot="true"}

说明: 根据当前分类$cid获取文章列表,把数据存放在result变量中。此数组中包含list数据和pager数据,iscommend 表示推荐文章,ishot表示热门文章。此标签可同时使用,也可单个使用。示例:{data module="site" func="site_article" cid=$cid return="true" assign="result"} {loop $result["list"] $row}

{$row["title"]} {/loop} {$result["pager"]}

{data func="site_category" parentid="0"}

说明:获取当前分类列表,parentid指定获取某个分类的子类。parentid为0是则获取所有的父分类,默认是获取全部分类,示例:

{data module="site" func="site_category"}{$row["name"]}{loop $row["children"] $item}{$item["name"]}{/loop}{/data}

88270598_1.gif鲜花

88270598_2.gif握手

88270598_3.gif雷人

88270598_4.gif路过

88270598_5.gif鸡蛋

收藏邀请

上一篇:微擎界面设计规范下一篇:微擎微站风格机制

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

http://www.pinlue.com/style/images/nopic.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值