Quickskin其实很简单.doc_第1页
Quickskin其实很简单.doc_第2页
Quickskin其实很简单.doc_第3页
Quickskin其实很简单.doc_第4页
Quickskin其实很简单.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Quickskin其实很简单,基本上看它的example就能看懂。我写这篇东西的目的,只是想给自己的学习留下一个小小的脚印。属性:bool $reuse_code默认值: false是否将编译好的模板储存起来以便以后使用。如果被设置成false,那么QuickSkin在每次被使用的时候编译模板string $template_dir默认值: _skins/模板读取目录。需要注意的是路径结尾的”/”是必需的!string $extensions_dir默认值: quickskin_extensions/扩展类存放的路径。扩展类是可选的。如果不使用扩展类,那么没有必要修改这个设置。结尾的”/”是必须的string $temp_dir默认值: _skins_tmp/编译之后的模板存放的目录。必须要保证PHP有写入该目录的权限。结尾的”/”是必须的string $cache_dir默认值: cache/输出的缓存文件存放闻之。必须要保证PHP有写入该目录的权限。结尾的”/”是必须的int $cache_lifetime默认的输入缓存有效时间,单位是秒。基本方法1.void set()用来设置QuickSkin一些属性,具体属性为第一部分的那些属性2.void assign()这个是QuickSkin中赋值的重要操作。主要用法有以下几种$tpl-assign(name,$asdf); 这个操作将$asdf这个值赋给模板变量name,在模板中出现name的时候,以$asdf替换 $tpl-assign($array=array();这里$array是一个一维数组。这里没有模板变量名。其实这是一种比较省事的赋值办法。这里的赋值结果是模板变量名位数组的index,值就为index对应的content的内容。比如$array(“name”=$name,”gender”=$gender) 那么上面赋值就相当于$tpl-assign(“name”,$name);$tpl-assign(“gender”,$gender); $tpl-assign(“first”,$array1=array();这个地方和上一个有些类似。但是first并非模板变量,而是命名空间。这种情况一般出现在两个数组index相同的情况下,为了区分。比如页面要显示两个人的资料,都有姓名,性别等内容。那么为了区分开,给每个数组一个命名空间,比如first和second。以上一例的数组为例,比如第一个人的姓名在模板中应该表示为,第二个就为.主要的作用就是区分。 $tpl-assign(“list”,$list=array(array();这里$list为一个二维数组,并且第一维的index为数字形式,比如$list1.$list2这样子,二维字段保持一致。这种赋值方法是用在下面控制中,作为循环输出的(具体见控制结构) 其实assign的用法不止这些,还有一些其他的,但是主要用法就这么四种,我在使用中也就用到这么四种。别的要么格式太怪,要么就是根本就不适用,所以没有写出,有兴趣可以看看QuickSkin官网的ExamplePS:assign的用法可以混用的,具体还是要看需求而定。不过我在使用中都是把所有变量定义在一个多维数组中。只需要assign一次就可以完成。比如$datatitle=“asdf”;$datalist=array(array(“name”=”Lorry”,”gender”=”male”),array(“name”=”duckdull”,”gender”=”female”);$tpl-assign($data);这样子一次性就完成了赋值,index就为模板变量名。比较好用3.void addtpl()将一个子模板加到主模版中。个人觉得这个比较有用,一定程度上可以避免在模板中使用这种格式,使得所有页面问题都交给模板,模板不需要考虑逻辑问题。举个简单的例子。VIP用户和非VIP用户的用户中心面板。除了侧边栏,其余的全部都相同。将侧边栏做成子模板,则可以在程序中判断加载拿一个子模板,达到VIP和非VIP侧边栏不同的效果。4.void append()追加模板变量的内容。模板变量可以为数组也可以为字符串。举例$tpl-assign(“list”,array(“name”=”Lorry”);$tpl-append(“list”,array(“name”=”duckdull”);那么这个时候,上面两句话就相当于$tpl-assign(“list”,array(array(“name”=”Lorry”),array(“name”=”duckdull”);即,从一维数组append成二维数组append也可以对字符串的变量进行操作,比如$tpl-assign(“TITLE”,”Hello “);$tpl-append(“TITLE”,”World”);$tpl-append(“TITLE”,”!”);上面就相当于$tpl-assign(“TITLE”,”HELLO World!”);5.void use_cache()设置quickskin使用缓存。当客户端在设置的缓存时间内进行页面请求时,直接读取缓存页面,而不是再次编译。需要设置cache_dir和cache_lifetime两个属性。6.string result()将模板生成的结果赋值给变量。7.void output()将模板生成结果输出到浏览器。8.void debug()我用了一下,没法使用,显示class.quickskinparse.php找不到。但是从changelog来看,应该是将class.quickskin.php和class.quickskinparse.php合并。所以个人怀疑这个所谓的项目改名就是将原先SmartTemplate改成了QuickSkin,其余的都保持没变。否则实在是不能解释为何出现class.quickskinparse.php丢失的情况。这个就是根据SmartTemplate的debug来写的的。Debug作用是将所有模板变量输出并且将生成的代码也输出。控制结构(这个部分是写在模板中的)打算分为三个部分说,有些单独说觉得很怪1.IF模块所有程序语言中都有if这个东西,条件判断的最基本的东西。QuickSkin中也有。语法是这样子类似于HTML中的注释。这里需要注意的是,首先,IF,ELSE, ENDIF全部需要大写,而且要和前后的”-“有一个空格!这个是必须,否则就被当成注释了!IF可以对模板变量有如下两个判断1.是否存在;2.是否等于(或者不等于某一个值)。分别举例如下判断id这个模板变量是否存在,也就是是否执行过$tpl-assign(“id”,$anything); 进行赋值过。而则是对name这个模板变量的值进行判断,看其是否等于Lorry。再比如就成了判断模板变量是不是不等于Lorry。PS:需要增加判断条件。如果一开始你用的是,那么就要写成注意,id要和后面的”-“有一个空格!就没有什么好说的,和PHP、C之类的完全保持一致。2.BEGINEND模块另一个控制模块登场!这个模块作用可是非常强大哦!可以将一个二维数组循环输出。用上面说到的一个数组打个比方吧。$tpl-assign(“list”,array(array(“name”=”Lorry”,”gender”=”male”),array(“name”=”duckdull”,”gender”=”female”);我们首先定义了一个模板变量,值为一个二维数组然后再模板中我们怎么将他们书出来呢?name gender看看发生了什么?输出结果是:Lorry male duckdull female怎么样?我们只是定义了一个二维数组,用模板把它们完全打印出来了哦!是不是代码比较简洁呢?以前还需要写foreach,现在,不用了,代码简洁,维护起来也很方便哦!PS:BEGIN和END也要和前后的”-”有一个空格,并且END后面要加上BEGIN后面一样的模板变量哦!2.INCLUDE模块INCLUDE模块的作用是将一个文件INCLUDE到当前的模板中,和PHP的in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论