那夜我还很年幼~
我不去想身后会不会袭来寒风冷雨 既然目标是地平线 留给世界的只能是背影

前端时间,在网上查了下资料,在CI下自己配好了smarty模板。

 

1、下载Smarty-3.1.11

解压后里面有委多文件我们不管,把一个名叫libs的文件夹复制出来命名为smarty,当然你也可以命其它名字

放到ci的application/libraries/目录下,一般是放这里面。 但我项目有要求不能放在怕个目录里,我是放在项目的同级目录中

如:我项目文件夹是iptv_m  我把风smarty放在跟它同级

 

2、在ci的application/libraries/目录下,新建一个文件命名为Cismarty.php

内容如下

require_once('../smarty/Smarty.class.php');
    class Cismarty extends Smarty{
        protected $ci;
        public function __construct(){
            parent::__construct();
            $this->ci = & get_instance();
            $this->ci->load->config('smarty_config');

            $this->caching = $this->ci->config->item('caching');
            $this->cache_lifetime = $this->ci->config->item('cache_lifetime');
            $this->setTemplateDir($this->ci->config->item('TemplateDir'));
            $this->setCompileDir($this->ci->config->item('CompileDir'));
            $this->setCacheDir($this->ci->config->item('CacheDir'));
            $this->setConfigDir($this->ci->config->item('ConfigDir'));
            $this->left_delimiter = $this->ci->config->item('left_delimiter');
            $this->right_delimiter = $this->ci->config->item('right_delimiter');
            $this->php_handling = $this->ci->config->item('php_handling');
        }
    }

require_once('../smarty/Smarty.class.php');  //引用smarty模板

$this->ci = & get_instance(); //获取ci的实例,这样就可以使用ci的方法了 如:$this->ci->load->config('smarty_config');

$this->ci->load->config('smarty_config'); //加载配置文件,接下来就要建这个文件

 

3、在ci的application/config/目录下,新建smarty_config.php 用于设置smarty初始信息及目录

$config['base_skin']        =    'default';
$config['resource_domain']    =    'http://'.$_SERVER['HTTP_HOST'].'/iptv_m/resource';
//$config['cookie_domain']    =    '.abc.com';
$config['cookie_encrypt']    =    md5('www.test01.com.prefixxtt');
$config['base_res_upload']    =    $config['resource_domain'].'/image/upload/';
$config['base_res_admin_image']    =    $config['resource_domain'].'/image/admin/';
$config['base_res_image']    =    $config['resource_domain'].'/image/'.$config['base_skin'].'/';
$config['base_res_style']    =    $config['resource_domain'].'/style/'.$config['base_skin'].'/';
$config['base_res_script']    =    $config['resource_domain'].'/script/';
$config['base_res_plugin']    =    $config['resource_domain'].'/plugin/';
$config['base_res_kindeditor']    =    $config['resource_domain'].'/plugin/kindeditor/';
$config['default_face']        =    $config['resource_domain'].'/image/default/conpic1.gif';


然后application/config/目录下找到autoload.php 修改$autoload['libraries'] = array('Cismarty'); 目的是自动加载Cismarty.php 我们在页面上用的时候就不用手动去加载。

在ci的application/core/MY_Controller.php里,加上方法

public function assign($key,$val){
        $this->cismarty->assign($key,$val);    
    }
    
    public function display($html){
        $this->cismarty->display($html);    
    }


在控制器里面直接调用

 $this->assign('youhui',$youhui);
  $this->display('index.html');

 

在views里

 {foreach from=$youhui item="yhq"}
    <div><a href="{$yhq["url"]}" target="_blank"><img src="{getimg_mb fid="{$yhq["image"]}"}" title="{$yhq["title"]}" /></a>
   
    </div>
  {/foreach}

 

好了,ci配置smarty到此,配置完毕

 

 

 

posted on 2012-09-18 22:16  那夜我还很年幼~  阅读(155)  评论(0)    收藏  举报