`

ci中使用smarty

    博客分类:
  • PHP
阅读更多

1、到相应站点下载Smarty的源码包;
2、将源码包里面的libs文件夹copy到CI的项目目录下面的libraries文件夹下,并重命名为Smarty;
3、在项目目录的libraries文件夹内新建文件Cismarty.php,里面的内容如下:

1 <?php
2 if(!defined('BASEPATH')) EXIT('No direct script asscess allowed');
3  
4 require_once( APPPATH . 'libraries/Smarty/Smarty.class.php' );
5  
6 class Cismarty extends Smarty {
7  
8     protected $ci;
9  
10     public function  __construct(){
11  
12         $this->ci = & get_instance();
13  
14         $this->ci->load->config('smarty');//加载smarty的配置文件
15  
16         //获取相关的配置项
17         $this->template_dir   = $this->ci->config->item('template_dir');
18         $this->complie_dir    = $this->ci->config->item('compile_dir');
19         $this->cache_dir      = $this->ci->config->item('cache_dir');
20         $this->config_dir     = $this->ci->config->item('config_dir');
21         $this->template_ext   = $this->ci->config->item('template_ext');
22         $this->caching        = $this->ci->config->item('caching');
23         $this->cache_lifetime = $this->ci->config->item('lefttime');
24     }
25  
26 }

4、在项目目录的config文件夹内新建文件smarty.php文件,里面的内容如下:

1 <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2 $config['theme']        = 'default';
3 $config['template_dir'] = APPPATH . 'views';
4 $config['compile_dir']  = FCPATH . 'templates_c';
5 $config['cache_dir']    = FCPATH . 'cache';
6 $config['config_dir']   = FCPATH . 'configs';
7 $config['template_ext'] = '.html';
8 $config['caching']      = false;
9 $config['lefttime']     = 60;

5、在入口文件所在目录新建文件夹templates_c、cache、configs;

6、在项目目录下面的config目录中找到autoload.php文件
修改这项

1 $autoload['libraries'] = array('Cismarty');//目的是:让系统运行时,自动加载,不用认为的在控制器中手动加载

7、在项目目录的core文件夹中新建文件MY_Controller.php 内容如下:

1 <?php if (!defined('BASEPATH')) exit('No direct access allowed.');
2  
3 class Controller extends CI_Controller {
4  
5     public function __construct() {
6  
7         parent::__construct();
8  
9     }
10  
11     public function assign($key,$val) {
12         $this->cismarty->assign($key,$val);
13     }
14  
15     public function display($html) {
16         $this->cismarty->display($html);
17     }
18 }

//================================================================
配置完毕
//================================================================
使用方法:
在控制器中如:

1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2  
3 class Welcome extends Controller {
4  
5     public function __construct(){
6         parent::__construct();
7     }
8  
9     public function index()
10     {
11         $data['title'] = '测试';
12         $data['test'] = '123456789';
13         $this->assign('test',$data);
14         $this->assign('tmp','hello');
15         $this->display('test.html');
16     }
17 }

然后再视图中:试图文件夹位于项目目录的views之下:
新建文件test.html

1 <!DOCTYPE html>
2 <html>
3 <head>
4     <meta charset="utf-8">
5     <title>{$test['title']}</title>
6  
7 <style type="text/css">
8 </style>
9 </head>
10 <body>
11  
12 {$test['test']|md5}
13 <br>
14 {$tmp}
15 123
16  
17 </body>
18 </html>

分享到:
评论

相关推荐

    CI框架集成Smarty的方法分析

    4. **扩展核心类**:通过扩展CI的控制器,将Smarty的assign和display方法直接集成到控制器中,使得在CI中使用Smarty时,可以像使用原生方法一样方便。 ### 具体集成步骤与技巧 #### 1. 下载与配置Smarty 首先需要...

    整合Smarty的最新ci框架源码,完美配置

    3. **加载Smarty库**:在CI的`autoload.php`文件中,添加对Smarty库的自动加载,或者在需要使用Smarty的控制器中手动加载。 4. **创建控制器方法**:在控制器中,我们需要实例化Smarty,分配数据,并渲染模板。例如...

    CI框架整合smarty步骤详解

    - 将解压后的Smarty文件夹中的libs文件夹重命名为smarty,并复制到CI框架的libraries文件夹内。 第二步:配置CI框架以使用Smarty - 在CI框架的libraries目录下创建一个新的PHP文件,例如tp.php,这个文件名是自定义...

    smarty3.1.29模板

    1. **模板语法**:Smarty 提供了一套自定义的模板语法,比如使用`{foreach}`处理循环,`{if}`、`{elseif}`、`{else}`进行条件判断,以及`{assign}`变量赋值等,这些都使模板代码更接近自然语言。 2. **模板缓存**:...

    后盾网 CI框架 马震宇 模板

    7. **模板引擎的使用**:尽管课程名称中提到"模板",但在CI框架中,模板引擎通常是可选的,如使用Twig或Smarty,它们能进一步提升视图的可读性和复用性。 通过这个课程,你将不仅理解CI框架的基本原理,还能具备...

    CI框架的CMS系统

    CI允许开发者使用PHP语法直接在视图文件中编写,也可以使用模板引擎如Twig或Smarty进行更复杂的布局和逻辑处理。视图文件通常位于`application/views`目录下。 3. **Controller**:控制器是MVC中的核心组件,它处理...

    php ci 框架手册

    在提供的`user_guide`文件中,通常包含了关于CI框架的详细文档,包括安装、配置、核心类库介绍、数据库操作、错误处理、辅助函数、视图和控制器的使用方法,以及如何扩展CI框架等内容。新手可以按照这份指南逐步学习...

    CodeIgniter中使用Smarty3基本配置

    通过以上步骤,SMARTY3就能在CodeIgniter框架中使用了。这样一来,开发者便可以利用SMARTY3的模板管理和缓存功能,提高Web应用的性能和维护效率。在此过程中,了解SMARTY3的基本使用方法和CodeIgniter框架的加载机制...

    Smarty完全中文手册

    在模板中使用: ```html {$date|formatDate:'Y-m-d H:i:s'} ``` 六、模板继承与块(section) Smarty支持模板继承,通过`extends`和`block`关键字,实现模板的复用和定制。 ```html &lt;!-- base.tpl --&gt; &lt;title&gt;{...

    CI框架适配

    5. 视图与模板:视图是用户界面的部分,可使用CI的视图系统或第三方模板引擎如Twig、Smarty等进行渲染。适配过程中,需要根据设计稿创建相应的视图文件。 6. 库、辅助函数与插件:CI提供了丰富的库、辅助函数和插件...

    Codeigniter框架整合Smarty引擎DEMO

    在"CI_Smarty"类中添加以下方法: ```php public function initialize() { require_once(APPPATH . 'libraries/Smarty/libs/Smarty.class.php'); $this-&gt;smarty = new Smarty(); // 设置模板目录 $this-&gt;...

    CodeIgniter-CI框架-指南 初学必读

    了解如何正确使用Session、CSRF保护、加密服务等,以及如何避免常见的安全漏洞,是使用CI框架的重要环节。 **十、扩展与第三方库** CodeIgniter允许通过Composer安装第三方库,如-ionAuth(身份验证库)、TankAuth...

    ci商城练习

    8. **模板引擎和前端优化**:可能使用CI的视图助手或第三方模板引擎,如Twig或Smarty,提升代码可维护性和用户体验。 9. **错误处理和日志记录**:学习如何设置和处理错误,以及记录系统日志,为后期排查问题提供...

    CodeIgniter整合Smarty的方法详解

    开发者可以在CodeIgniter控制器中使用`assign`方法来传递数据到模板,然后使用`display`方法来渲染模板。由于Smarty支持编译和缓存,所以当频繁访问相同的页面时,可以显著减少服务器的负载,提高页面响应速度。 ...

    CodeIgniter集成smarty的方法详解

    1. 下载Smarty:首先需要从Smarty的官方网站下载最新版本的Smarty类库,并解压到CodeIgniter的libraries目录下,例如:ci/application/libraries/SMARTY-2.6.20。 2. 编写类库文件Mysmarty.php:创建一个继承自...

    smarty简介

    1. **foreach循环**:在Smarty中,`foreach`语句用于遍历数组或对象集合,语法如下: ``` {foreach from=$array item=item name=loop} {$item} {/foreach} ``` 其中`from`属性指定了循环的数据源,`item`属性...

    CodeIgniter框架实现的整合Smarty引擎DEMO示例

    以DEMO示例中的Welcome控制器为例,以下代码展示了如何在控制器中使用CI_Smarty类来加载和显示一个模板: ```php class Welcome extends CI_Controller { public function __construct() { parent::__construct()...

    基于PHP的留言本smarty版.zip

    5. **templates_c/** - Smarty编译后的模板文件存放目录,这些是模板文件被解析后生成的PHP代码。 6. **classes/** - 可能包含自定义的PHP类,如用户管理、留言管理等。 7. **database.sql** - 数据库创建和初始化的...

    CodeIgniter-3.1.10.zip

    5. **模板引擎**:尽管CI默认不强制使用模板引擎,但它推荐使用View助手函数或第三方模板库,如Twig或Smarty,以实现更灵活的视图渲染。 6. **分页类**:内置的分页类可以帮助开发者轻松实现页面的分页功能,提高...

Global site tag (gtag.js) - Google Analytics