• CI 2.2 + smarty 3.1.18 完美整合配置成功


    CI 2.2 + smarty 3.1.18 配置成功


    一、准备文档下载  (CI 框架和smarty)


    二、将Smarty-3.1.18 源码包里面的libs文件夹copy到ci的项目目录application下面的libraries文件夹下,并重命名为Smarty


    三、application下面的libraries文件夹下,创建文件 Ci_smarty.php

     
    <?php
    if(!defined('BASEPATH')) exit('No direct script access allowed');
    require(APPPATH.'libraries/Smarty/Smarty.class.php');
    class Ci_smarty extends Smarty
    {
        protected $ci;
        
        public function __construct()
        {
            parent::__construct();
            
            $this->ci = & get_instance();
            $this->ci->load->config('smarty');//加载smarty的配置文件
            //获取相关的配置项
            $this->cache_lifetime  = $this->ci->config->item('cache_lifetime');
            $this->caching         = $this->ci->config->item('caching');
            $this->template_dir    = $this->ci->config->item('template_dir');
            $this->compile_dir     = $this->ci->config->item('compile_dir');
            $this->cache_dir       = $this->ci->config->item('cache_dir');
            $this->use_sub_dirs    = $this->ci->config->item('use_sub_dirs');
            $this->left_delimiter  = $this->ci->config->item('left_delimiter');
            $this->right_delimiter = $this->ci->config->item('right_delimiter');
        }
    }
     

    四、在config文件下创建smarty.php

     
    <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
     
    $config['cache_lifetime']     =     60;         //更新周期
    $config['caching']            =     false;      //是否使用缓存,项目在调试期间,不建议启用缓存
    $config['template_dir']       =     APPPATH.'views';      //设置模板目录
    $config['compile_dir']        =     APPPATH.'views/template_c';      //设置编译目录
    $config['cache_dir']          =     APPPATH.'views/cache';    //缓存文件夹
    $config['use_sub_dirs']       =     true;      //子目录变量(是否在缓存文件夹中生成子目录)
    $config['left_delimiter']     =     '<{';
    $config['right_delimiter']    =     '}>';
     

    顺便再CI项目目录下的 views 目录下创建目录:template_c,cache  (创建的时候注意权限)

    五、application->config找到autoload.php,修改如下

    $autoload['libraries'] = array('Ci_smarty');

    六、在application->core下,新建MY_Controller.php,

     
    <?php if (!defined('BASEPATH')) exit('No direct access allowed.');
    class MY_Controller extends CI_Controller { 
        public function __construct() {
            parent::__construct();
        }
        
        public function assign($key,$val) {
            $this->ci_smarty->assign($key,$val);
        }
     
        public function display($html) {
            $this->ci_smarty->display($html);
        }
    } 
     

    到此已经配置成功
    下面进行测试
    在application->controllers目录下新建welcome.php

     
    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    class Welcome extends MY_Controller 
    {
        public function index()
        {
            $test='配置成功';
            $this->assign('test',$test);
            $this->display('index.html');
        }
    }
     

    在application->views目录下新建index.html

     
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>smarty配置测试</title>
    </head>
    <body>
        <{$test}>
    </body>
    </html>
     

    转自:http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=18162

  • 相关阅读:
    【转载】大连商品交易所-套利交易相关问题
    LC 1340. Jump Game V
    1057 Stack
    1059 Prime Factors
    LC 1425. Constrained Subset Sum
    LCP 13. 寻宝
    P3381 【模板】最小费用最大流
    P3376 【模板】网络最大流
    LC 面试题51. 数组中的逆序对
    LC 466. Count The Repetitions
  • 原文地址:https://www.cnblogs.com/zhhtao/p/4303350.html
Copyright © 2020-2023  润新知