<?php
include_once("libs/Smarty.class.php"); //包含smarty类文件
$smarty = new Smarty(); //建立smarty实例对象$smarty
//$smarty->config_dir="libs/Config_File.class.php"; // 目录变量,新版本可以去掉。老版本也可以去掉
$smarty->caching=false; //是否使用缓存,项目在调试期间,不建议启用缓存
$smarty->cache_lifetime = 20;
$smarty->template_dir = "./templates"; //设置模板目录
$smarty->compile_dir = "./templates_c"; //设置编译目录
$smarty->cache_dir = "./smarty_cache"; //缓存文件夹
//----------------------------------------------------
//左右边界符,默认为{},但实际应用当中容易与JavaScript相冲突
//----------------------------------------------------
$smarty->left_delimiter = "{";
$smarty->right_delimiter = "}";
?>
笔记:
smarty是一款基于php面向对象编程基础上开发的框架系统【模板引擎框架】
官方网址:smarty.net
基于smarty开发的一款非常经典的程序项目:www.phpyun.com【大型人才招聘系统】
smarty的目的:使得php程序和美工分离!
特点:
1、速度快!
2、缓存技术;【页面缓存】
3、编译!!!就是把视图中的标签替换成php。
如何配置smarty?
配置参考xdw.php
===========================
如何设置模板变量?$smarty->assign(“title”,$name);
其中 title就是模板变量
如何渲染模板?$smarty->display(“1.0.htm”);
模板中又该如何调用模板变量呢?
{$title}
注意:$不能少,{}边界付不能少!
{} 在配置文件中进行了定义!
{}和我们的js中的函数主体冲突!解决方法是:
{literal}
js
{/literal}
==============================================
模板中,标签的值的传递【模板方法的应用!】
模板方法的应用:
{$name|substr:’1′:’2′}
若我们需要自定义函数。则可以再配置文件中定义!
===========================================方案一:
第一步:
xdw.php
function abc($arr){ //这个参数是一个数组。
print_r($arr[‘con2’]);
}
中设置好函数;
第二步:在php页面中,如1.0.php中注册模板函数!
$smarty->register_function(“abc1″,”abc”);
视图中调用的方式如下:
{函数名 con=$title}
{abc1 con=$title con2=2 con3=3}
function abc($arr){ //这个参数是一个数组。
$arr[‘con’]
}
=========================================方案二:
到smarty核心文件夹下的plugins文件夹创建一个名为
function.xxx.php的文件。注意:xxx可以自定义。
如:xxx为xdw function.xdw.php文件
code:
<?php
function smarty_function_xdw($c, &$smarty){
return $c[‘con’];
}
?>
模板中的引用:
{函数名 con=666}
{xdw con=666}
提示:方案二定义的函数在模板中可直接被调用,不需要在控制器中注册。因为方案二中的函数都被默认注册了。
==================================================
smarty中数组值的传递和显示。
PHP:
$arr=array(“张三”,”李四”,”王五”);
$smarty->assign(“arr”,$arr);
HTML:
{foreach from=$arr item=t}
{$t}
{/foreach}
二维数组!
若定义的时候是键名=>值的方式定义!
则html中引用的时候按如下格式:
{foreach from=$arr item=t}
{$t.name} 提示若{$t[‘name’]}就报错了。
{/foreach}
{foreach key=i from=$arr item=t}
{$t.name}——-{$i}
{/foreach}
文件的包含!
{include file=”head.htm”}
{php}
php代码。
{/php}
关注公众号,了解更多it技术(it问答网)
6666
666