一, 有用
文件包
下载地址:
本帖隐藏的内容需要回复才可以浏览
二, demo:
http://hi.twomice.net/mysm/examples.php
三,
源代码在线看:
http://hi.twomice.net/mysm/_src/
四, 简易说明:
1. 关于这个 'my_SmartTemplate'
这是一个基于较为著名的
模板系统 SmartTemplate 的改造品, 它是我个人在学习使用 SmartTemplate
过程中根据自身的需求作出了适当调整而最后形成的. 其中一些设想与改进可能有一定代表性, 故在
此抛砖以引玉.
基于最新的 SmartTemplate 的代码, 原作者似乎不再更新该
套件了, 所以才会非正式发布该作品
2. 和原版 SmartTemplate 有什么主要区别?
1) 去除 Debugger 部分, 感觉没什么必要了
2) 加入 <!-- INCLUDE: /path/to/file --> 指令. 静态包含文件, 基于当前模板文件目录.
比如在 /path/to/tpl.html 中包含 /path/to/sub/head.html 则只要在 tpl.html 中加入
语句
复制内容到剪贴板
代码:
:<!-- INCLUDE: sub/head.html -->由于是静态载入, 故在 head.html 发生变化而 tpl.html 未更新时不会被重新 '编译'
3) 针对原有的
cache 系统作出一定修改, 因原 cache 是将整
页面的执行结果缓存, 用起来比较死板
典型的如,页面中有少量与 client 相关的
变量会导致这页难以使用 cache.
所以加入了
复制内容到剪贴板
代码:
<!-- NOCACHE BEGIN --> .......<!-- NOCACHE END --> 两个标签指令, 它们必须
成对出现. 位于标签内的模板内容将不会被 cache , 仍可接受 ::use_cache() 方法前分配的变量
替换.
4) 解析循环指令
复制内容到剪贴板
代码:
<!-- BEGIN *** --> ... <!-- END *** --> 的调整与修改
增加对一维数组的循环支持
内建变量由 ROWBIT ROWCNT 改为 _ROWBIT, _ROWCNT,并增加 _KEY, _VALUE 变量, 举例如下:
复制内容到剪贴板
代码:
$arr = array(0, 1, 2, 3, 4);
$tpl->assign('ARR', $arr);
...
<!-- BEGIN ARR -->
{_ROWCNT}. {_KEY} => {_VALUE} <br />
<!-- END ARR -->5) 针对 {EXTENSION:参数} 扩展的支持, 由动态包含扩展文件改为静态包含, 一个文件可支持多个函
数或多个扩展类(函数集) 其中扩展还可以是已存在的系统函数. 还可以用 {CLASS.method:param}
相对灵活一些
6) 增加全局变量和 _SERVER 变量的支持,即 {GLOBALS.hello} 或 {_SERVER.PHP_SELF}
7) 赋值: {.... > VAR} 扩展加入 {.... >> VAR} 意思就是追加在原 VAR 变量的末尾
在 IF, ELSE IF 语法支持使用变量于判断式两端
*) 其它一些小细节的调整与修改 ... 可见详细说明
3. 版权及其它责任声明?
无
[
本帖最后由 cfan 于 2007-12-3 09:20 编辑 ]