目前CI框架已经推出了2.0的版本了。一直想尝试修改我的网站的核心。经过测试可以正常使用,以下提供配置方案和已经配置好的文件,
下面是配置步骤的详细说明一下:
第一步:安装CodeIngiter。 这个不需要详细说,下载地址为:http://codeigniter.com/downloads/
第二步:下载最新版本的 Smarty库,下载地址:http://www.smarty.net/download
第三步:在安装好的ci项目的根目录下的入口文件 index.php文件开头添加如下代码
define('APP_NAME','application');
if(!defined('ROOT'))define('ROOT',dirname(__FILE__));
if (!defined('DS')) define('DS', DIRECTORY_SEPARATOR);
第四步:在安装好的ci项目的根目录下application\config下添加smarty.php配置文件
<php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/* smarty 设置 */
$config['caching'] = false;
$config['cache_lifetime'] = 3600;
$config['template_dir'] = ROOT.DS.APP_NAME.DS.'views'.DS;
$config['compile_dir'] = ROOT.DS.APP_NAME.DS.'cache'.DS.'views_c'.DS;
$config['cache_dir '] = ROOT.DS.APP_NAME.DS.'cache'.DS.'smarty_cache'.DS;
$config['left_delimiter'] = '<!--{';
$config['right_delimiter '] = '}---->';
第五步:在安装好的ci项目的根目录下\application\libraries,把下载好的smarty文件包中 libs 放到这里,并改名为smarty
第六步:在安装好的ci项目的根目录下\application\libraries下添加smarty扩展类CI_Smarty.php
<?php
require (ROOT.DS.APPPATH."libraries".DS."smarty".DS."Smarty.class.php");
class CI_Smarty extends Smarty
{
protected $ci;
public function __construct()
{
parent::__construct();
$this->ci = & get_instance();
$this->ci->load->config('smarty');
self::loadSetting();
}
public function loadSetting()
{
$this->caching = $this->ci->config->item('caching');
$this->cache_lifetime = $this->ci->config->item('cache_lifetime');
$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->left_delimiter = $this->ci->config->item('left_delimiter');
$this->right_delimiter = $this->ci->config->item('right_delimiter');
}
}
第七步:在application\config\autoload.php,设置自动加载smarty扩展类CI_Smarty.php
$autoload['libraries'] = array('ci_smarty');
第八步:在application\core 添加 MY_Controller.php 文件
<?php if ( ! defined('BASEPATH')) exit('No direct script 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()
{
$this->assign("hello","<a href='http://www.pvsky.com/blog'>我的博客</a>");
$this->display("test.html");
}
}
模板文件 \application\views\test.html
<html>
<head></head>
<body>
<!--{$hello}-->
</body>
</html>
访问你的本地 index.php 就可以看到