Smarty学习笔记(二)

一.基本语法
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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章