Discuz!官方推荐 Nemo 模板引擎
时间:2006-10-24
来源:互联网
Nemo,这是本模板引擎的名字,估计大家都想到了“Finding Nemo”中那只鱼。嘿嘿,是的。本模板引擎就像那只鱼那样,别看小巧,但是本事大哦。
本模板引擎为 PHPSo.Com 自主开发的模板引擎,具有如下的特点:
语法方面,内置 for、radio、select、include、switch 等模板流程语法,方便的控制模板的显示流程。习惯方面,模板的语法标记,可以书写成HTML标记及注释两种书写,适合不同的开发习惯。
速度方面,模板自动编译,以及优化过的模板缓存文件,模板调用速度超快。
如何获得本程序?
下载方式推荐用 SVN 下载 http://svn.phpso.com/nemo
SVN 软件及语言包,请到 http://www.tortoisesvn.org/ 网站下载
或者直接到官方网站 http://mvc.phpso.com 下载
如何使用?
include 'nemo.php';
define("_TPLPath_", 'tpl/');//定义模板路径
define("_TPLCachePath_", 'cache/');//定义模板缓存路径
include template('demo.htm');
我的模板路径是变化的咋办?
template函数参数说明:
include template(模板文件[, 模板文件的路径][, 模板编译缓存文件的路径][, 用户模板替换包][, 用户模板替换包路径]);
由此可以看到,“[, 模板文件的路径][, 模板编译缓存文件的路径]”2个参数用户可以自己在template中添加路径,如果参数不填写或者参数为空则依然按照常量的值读取。
如何生成静态页?
使用Nemo Html插件,请参考 writedemo.php 以及脚本样例 _script.php
/*
提供 $_GET['v'] 参数的数组, 批量生成指定脚本文件的 html 页
@parm1 string 脚本文件
@parm2 string $_GET变量的值
@parm3 array $_GET变量值的数组
@parm4 string 生成完毕后返回的页面
*/
nemo_html('_script.php', 'v', array(1,2,3,4,5,6,7), $_SERVER['PHP_SELF'].'?ok=1');
变量语法
变量语法是模板中直接书写PHP变量的方法。在Nemo中,变量可以直接书写在模板中,无需事先声明。书写时无需在变量两边添加大括号“{}”,数组变量的键值也无需添加引号。调用类中的变量,可以直接使用“->”。
如:$array[monkey] $float $n->tplfile
语法:{变量:date 日期格式}
解释:按照指定的日期格式显示时间戳
对于时间戳内容的变量,本语法可以直接按照指定的日期格式显示变量的值,日期格式允许用变量代替。
日期格式请参考 PHP 手册 http://php.liukang.com/manual/zh/function.date.php
如:{$time:date $a} 将显示 2006-04-14
语法:{变量:float 格式}
解释:按照指定的格式显示浮点数
对于浮点数,本语法可以将变量按照格式所指定的位数设置进行显示。格式写法为“M.D”,M 代表整数位,D 代表小数位。格式允许用变量代替。
如:{$float:float 3.4} 将显示 123.4567
语法:{变量:format 格式}
解释:按照指定的格式显示变量
本语法会按照指定的格式显示变量,格式定义规则按照 PHP 的函数 sprintf 为准,格式允许用变量代替。
格式请参考 PHP 手册 http://php.liukang.com/manual/zh/function.sprintf.php
如:{$float:format %010d} 将显示 0000000123
语法:{变量:specialchar}
解释:将变量的内容转换为可显形式
本语法适用于把变量显示在 INPUT 表单的值中,使之能够完整的显示出自串的原始内容。本函数调用 PHP 的 htmlspecialchars 函数,如要对此函数附加参数,请用“{变量:specialchar 参数}”格式引用。
参数含义请参考 PHP 手册 http://php.liukang.com/manual/zh/function.htmlspecialchars.php
如:<input name='name' value='{$specialchar:specialchar}'>
语法:{变量:default 默认值}
解释:当变量无效显示默认值
本语法会自动判断变量是否定义或者为空,如符合则显示默认值,默认值允许用变量代替。
如:{$error:default 没有错误}
流程语法
流程语法为控制模板显示方式的语法,把 PHP 代码中用于显示的流程语句写在此处,可以有效的 PHP 代码的效率,这也是 MVC 设计理论的重点。流程语法有2种书写方法:
<!--语法标记-->
按照HTML注释的书写方法,这样可以方便使用UltraEdit等直接编辑源码的程序员方便的查看到流程语句而设定的。
<语法标记-->
按照HTML标记的书写方法,这样是照顾到使用Dreamweaver等可视化工具制作模板的人员,因为HTML中未定义的标记在编辑状态中是不会显示的,因此不会影响设计模板的可视化效果。大家可以依照习惯选用。
语法:<!--include:模板文件-->
模板运行到此处将引用指定的模板文件的内容到当前位置,如果定义了常量 _TPLPath_ ,将到指定的目录中去读取子模板文件。
如:<!--include:header.htm-->
语法:定义:<!--func 函数名:函数参数-->......<!--/func-->
调用:<!--func:函数名(参数)-->
自定义一个模板函数,你可以把模板中经常重复的内容写进此语法,需要的时候直接调用函数即可。同时调用语法也可以调用其它函数。
如:<!--func aaa:$a,$b-->
$a:<br>
<!--loop:$b-->{[name]}<br><!--/loop--> <br>
<!--/func-->
<!--func:aaa('for_option', $for_option)-->
语法:<!--if:条件表达式-->...<!--else-->...<!--/if-->
<!--if:条件表达式-->...<!--elseif:条件表达式-->...<!--elseif:条件表达式-->...<!--/if-->
模板运行到此处将按照 if 条件表达式的状态显示相应的内容。条件表达式中的变量书写规则同变量语法中的声明。
如:
<!--if:$if==1-->
条件成立
<!--else-->
条件不成立
<!--/if-->
语法:<!--switch:变量-->...<!--case:值1-->...<!--case:值2-->...<!--case:值n-->...<!--/switch-->
当一个变量存在多个不同的值显示不同的内容时,可以用此语法。值可以写成字符也可以写成变量。
<!--switch:变量-->...<!--case:值1--> 中为所有值都不符合时显示的默认内容。
如:
<!--switch:$switch-->默认
<!--case:1-->Case 1
<!--case:2-->Case 2
<!--case:3-->Case 3
<!--/switch-->
循环语法包含3类,一类是 for 标准与法,一类是用于 HTML 标记的 for_xxx 系列语法,最后一类是 loop 特殊循环语法。
语法:<!--for:数组变量 键变量 值变量-->...<!--/for--> <!--for:数组变量值变量-->...<!--/for-->
数组变量可以通过此语法显示其内容,如果为多维数组,可以继续嵌套。
如:
<!--for:$for $k $v-->
$k = $v
<!--/for-->
.....
更多说明内容看这里
[ 本帖最后由 monkeye 于 2006-10-24 15:24 编辑 ]
作者: monkeye 发布时间: 2006-10-24
作者: colordog 发布时间: 2006-10-24
作者: szy_session1987 发布时间: 2006-10-24
支持一下
作者: fengyun 发布时间: 2006-10-25
作者: xiaojia 发布时间: 2006-10-25
作者: MySQL 发布时间: 2006-10-26
作者: kenus 发布时间: 2006-10-26
作者: Freddy 发布时间: 2006-10-27

作者: laopi 发布时间: 2006-10-28
作者: softly 发布时间: 2006-10-29
作者: h4cker 发布时间: 2006-10-29
作者: hongyu.info 发布时间: 2006-10-29
这个好!!!不知道smarty中可以吗?一个一个定义代码长了好多不说,也挺烦人的。
作者: 馒头 发布时间: 2006-10-30
作者: happy_ben 发布时间: 2006-11-03
小顶哈
作者: sorryisdj 发布时间: 2006-11-04
作者: 馒头 发布时间: 2006-11-07
作者: 水镜 发布时间: 2006-11-10


作者: phpclass 发布时间: 2006-11-13
作者: tingoooo 发布时间: 2006-11-13
作者: 飘雪 发布时间: 2006-11-13
作者: 水镜 发布时间: 2006-11-17
作者: 水镜 发布时间: 2006-11-17
作者: li23108 发布时间: 2007-07-25
作者: 被淹死的鱼 发布时间: 2008-03-09
作者: quanhaier 发布时间: 2008-03-10

作者: spjhf 发布时间: 2008-03-10
引用:
原帖由 tingoooo 于 2006-11-13 15:56 发表功能没有smarty强大
作者: anyforever 发布时间: 2008-03-10
作者: ct_174880859 发布时间: 2008-03-12

作者: abcdefgxw 发布时间: 2008-07-06
作者: forweike 发布时间: 2008-07-07
作者: 汉化天空 发布时间: 2008-07-14
作者: kingboer 发布时间: 2008-07-17
作者: yesin 发布时间: 2008-07-17
作者: wangyl 发布时间: 2008-07-17
作者: 我要读书网 发布时间: 2008-07-18
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28