您的位置:首页 > 其它

Smarty学习笔记(二)

2015-08-27 17:17 246 查看
一.基本语法

1.$samrty->assign(key,value);

$samrty->assign(array(key=>value,key=>value));

2.$samrty->display();

3.注册插件

$samrty->registPlugin("function","functionname","HTML自定义标签名");

4.注释{*注释内容*}

二.三种主要变量

1.从PHP中分配变量

2.从配置文件中读取变量

<{config_load file="xxx.conf" section="xxxx"}>//加载配置文件

<body text="<{#bodycolor#}>">

<body text="<{$samrty.conf.bodycolor}>">

bodycolor=blue;

[section1]

bodycolor=green;

[section2]

bodycolor=red;

3.保留变量

$_GET

$_POST

$_SESSION

$_SERVE

$_ENV

$_COOKIE

$samrty->assgin("username","content")

<{$username}>

<{$smarty.session.username}>

<{smarty["session"]["username"]}>

三.变量调节器(变量修改器)

使用场合:

例子1:标题分配到模板中,在模板中处理截取一个,显示一个

例子2:时间在数据库中都是以时间戳来保存,交给模板,模板中先输出什么格式都可以。

使用语法:

<{$var|函数名:参数1:参数2.。。。}>

$smarty->registerPlugin("mofifier","标签名","自定义函数名");

;

组合变量修改器:

同一个变量使用多个修改器一起处理

<{$var|函数1|函数2|。。。}>

四.自定义函数插件

三类:1.变量调节器;2.函数;3.块函数

两种做法:

1.使用registerPlugin()方法注册;

2.开发samrty插件

声明位置:可以Smarty类库中的缘由plugins目录下创建,也可以使用自己指定的目录

$smarty->addPluginsDir(目录);

文件的命名:修改器:modifier.修改器名称.php

函数:function.函数名称.php

块函数:block.块函数名称.php

函数的命名:修改器:samrty_modifier_修改器名称();

函数:smarty_function_函数名称();

块函数:smarty_block_块函数名称();

3.参数规则:修改器:修改器:samrty_modifier_修改器名称($var,$a...);

函数:smarty_function_函数名称($args,$smarty);

块函数:smarty_block_块函数名称($args,$contet,$smarty,$repeat);

五. 内置函数

1.变量的声明方式:

<{assign var="one" value="1111"}>

<{assign "two" value="2222"}>

<{$there="333333"}>

<{$var}>,<{append}>(声明变量),<{assign}>//三种

2.函数的声明

<{function name="test"}>

aaaaaaaaaaa<br>

<{/function}>

<{test}>

3.数组的变量

<{foreach $array as $key=>$value}>

<{/foreach}>

属性:

顺序索引:index(从0开始),iteration(从1开始);

<{section}>

<{section loop="$lamp" name="one"}>

<{$smarty.section.one.index}>----<{$lamp[one]}><br>

<{/seciton}>

<{include file="name" assign="var"}>//将导入文件存入变量

六模板继承

模板之间的事,和PHP 程序没有关系

1.在模板中使用<{extends}>函数实现模板继承

<{extends file="one.tpl"}>

<{extends "one.tpl"}>

必须在子模板的第一行

可使用display()方法代替{extend}

display("extends:one.tpltwo.tpl|there.tpl")

2.在子模板中覆盖父模板中的部分内容区域:

在父模板声明一个区域“块”<{block}>

注意:1.块对父模板没作用;2.子模板只能识别块标签

合并子模板和父模板的<{block}>:

追加append(后)/prepend(前)

<{$smarty.block.child}>在父模板中写,可使子模板在任何位置追加//保留变量

<{$samrty.block.parent}>子模板中写,可将父模板中的内容内容插入到子模板中的任何位置

七.smarty的缓存控制

1.建议缓存

$smarty->cacheing=true;

$smarty->setCacheDir(目录);

2.处理缓存的生命周期

$smarty->cache_lifetime=60*60*24*7;

3.每个模板可以设置多个缓存

display()上面处理

$smarty->dispaly("name.tpl",$_SERVER["REQUEST_URI"])

4.位缓存实例消除处理开销

$smarty->isCached("name.tpl",$_SERVER["REQUEST_URI"])

5.关闭局部缓存

<{nocache}><{/nocache}>

6.清除缓存

$smart->clearCache()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: