一.下载Smarty模板引擎包.把Smarty搬迁到CI中去.
下载地址1:http://www.smarty.net/download [官网有时会比较卡]
下载地址2:https://pan.baidu.com/s/1Z04vu63tzRBFbi3efxKYCA [百度云]
1.下载好了之后.解压复制整个lib文件夹.放到CI框架项目/libraries文件夹下,并重命名为:Smarty文件夹.
2.然后在Smarty文件夹下新建文件名为:Cismarty.php.里面的代码为:
<?php
// +----------------------------------------------------------------------
// | Smarty模板控制器 Author:xiaochuan 28126649@qq.com
// +----------------------------------------------------------------------
if(!defined('BASEPATH')) EXIT('No direct script asscess allowed');
require_once( APPPATH . 'libraries/Smarty/Smarty.class.php' );
class Cismarty extends Smarty {
protected $ci;
protected $complie_dir;
protected $template_ext;
public function __construct(){
parent::__construct();
$this->ci = & get_instance();
//加载smarty的配置文件
$this->ci->load->config('smarty');
//获取相关的配置项
$this->template_dir = $this->ci->config->item('template_dir');
$this->complie_dir = $this->ci->config->item('compile_dir');
$this->cache_dir = $this->ci->config->item('cache_dir');
$this->config_dir = $this->ci->config->item('config_dir');
$this->template_ext = $this->ci->config->item('template_ext');
$this->caching = $this->ci->config->item('caching');
$this->cache_lifetime = $this->ci->config->item('lefttime');
//获取模板标签配置项
$this->left_delimiter = $this->ci->config->item('left_delimiter');
$this->right_delimiter = $this->ci->config->item('right_delimiter');
}
}二.配置,让Smarty正常运行在CI框架中.
1.我们上面已经新建了一个专门调用Smarty模板引擎的PHP文件了.现在我们只需要让程序每次运行时都自动的去运行该文件就好了.那我们去配置一下:在项目目录config文件夹下找到config.php.然后在$autoload['libraries']后加上Smarty/Cismarty.
//配置Cismarty.php文件为预加载
$autoload['libraries'] = array('Smarty/Cismarty');
//下面就可以正常使用了.用法如下:
$this->cismarty->assign('name',$data);
$this->cismarty->display('模板名');三.为了方便使用Smarty,自己又简化了一下上面的用法.
1.在我们的核心类里加两个方法.代码如下:
/**
* 模板赋值
* author: xiaochuan
* @access public
* @param
* @return
*/
public function assign($key,$val)
{
$this->cismarty->assign($key,$val);
}
/**
* 调用模板
* author: xiaochuan
* @access public
* @param
* @return
*/
public function display($html=null)
{
if(empty($html)) $html = $this->router->method;
$this->cismarty->display($this->router->class.'/'.$html.$this->config->item('template_ext'));
}好处:如果模板名跟方法名同名我们就不用在display后写模板名了.最后用法变成了.
//最终用法:
$this->assign('name',$data);
$this->display();是不是方便很多了.
转载请注明来源地址:小川编程 » https://www.youhutong.com/index.php/article/index/36.html
1、本站发布的内容仅限用于学习和研究目的.请勿用于商业或非法用途,下载后请24小时内删除。
2、本站所有内容均不能保证其完整性,不能接受请勿购买或下载,如需完整程序,请去其官方购买正版使用
3、本站联系方式Email:admin@youhutong.com ,收到邮件会第一时间处理。
4、如侵犯到任何版权问题,请立即告知本站(立即在线告知),本站将及时删除并致以最深的歉意