smarty笔记-多蔚老师

发布于 2022-11-07 20:09:57
<?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问答网

0 条评论

发布
问题