本文实例讲述了CI框架集成Smarty的方法。分享给大家供大家参考,具体如下:
因为CI自带的模板功能不是很方便,所以大家普遍采用集成Smarty的方式来弥补CI这方面的不足。
本人在网上看了不少CI集成Smarty的教程,包括咱们CI论坛里面的一个精华帖子
http://codeigniter.org.cn/forums/forum.php"htmlcode">
public function index() { //$this->load->view('welcome_message'); $data['title'] = '标题'; $data['num'] = '123456789'; //$this->cismarty->assign('data',$data); // 也可以 $this->assign('data',$data); $this->assign('tmp','hello'); //$this->cismarty->display('test.html'); // 也可以 $this->display('test.html'); }
通过对核心控制器类的简单扩展,大家在CI中使用Smary的时候和直接使用Smarty的用法习惯是一样的,这是一个很大的优点啊。
而且从核心类库的扩展来看,大家也可以看出该文作者对于CI框架的理解是很好的。
根据这篇文章,我不仅成功集成了Smaty,而且也进一步加强了对于CI的理解。
而且该方案将Smarty的配置文件放到了CI框架的config目录下,对于两者,使用都很规范。
最终实现了"CI和Smaty的无缝结合"。
下面开始是具体教程: // 我在原文的基础上做了一些修改,更正了原文的一些错误 注意下文中有'//'的地方,是我自己修改过的地方,或是自己又增加的地方。
CI版本:2.1.4 // (本文发布时使用的版本)
Smarty版本:Smarty-2.6.26 // 因为我之前用这个版本,为了照顾自己的使用习惯,这里没有使用最新的Smaty版本,大家理解了扩展原理,可以选择自己想用的Smatry版本。
1、到相应站点下载Smarty的源码包; // 我这里用的是 Smarty-2.6.26
2、将源码包里面的libs文件夹copy到CI的项目目录下面的libraries文件夹下,并重命名为Smarty-2.6.26;//
3、在项目目录的libraries文件夹内新建文件Cismarty.php,里面的内容如下:
<"htmlcode"><"htmlcode">$autoload['libraries'] = array('Cismarty'); //目的是:让系统运行时,自动加载,不用人为的在控制器中手动加载7、在项目目录的core文件夹中新建文件MY_Controller.php 内容如下: // 扩展核心控制类
<"htmlcode"><"htmlcode"><!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>{ $test.title}</title> //( 原文是 <title>{$test['title']}</title>,是错误的写法,也有可能是Smarty版本的原因) <style type="text/css"> </style> </head> <body> {$test.num|md5} // 原文这里也写错了 <br> {$tmp} </body> </html>更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。
标签:CI框架,集成,Smarty
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。