CodeIgniter集成smarty的方法详解


Posted in PHP onMay 26, 2016

本文实例讲述了CodeIgniter集成smarty的方法。分享给大家供大家参考,具体步骤如下:

1.下载smarty

解压到ci的libraries目录 如:

ci/application/libraries/Smarty-2.6.20

2.编写Mysmarty.php 自己的类库文件

代码如下:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
require "Smarty-2.6.20/libs/Smarty.class.php";
/**
* @file system/application/libraries/Mysmarty.php
*/
class Mysmarty extends Smarty
{
  function Mysmarty()
  {
    $this->Smarty();
    $config =& get_config();
    // absolute path prevents "template not found" errors
    $this->template_dir = (!empty($config['smarty_template_dir']) ? $config['smarty_template_dir'] : BASEPATH . 'application/views/');
    $this->compile_dir = (!empty($config['smarty_compile_dir']) ? $config['smarty_compile_dir'] : BASEPATH . 'cache/'); 
    //use CI's cache folder
    if (function_exists('site_url')) {
      // URL helper required
      $this->assign("site_url", site_url()); // so we can get the full path to CI easily
    }
  }
  /**
  * @param $resource_name string
  * @param $params array holds params that will be passed to the template
  * @desc loads the template
  */
  function view($resource_name, $params = array())  {
    if (strpos($resource_name, '.') === false) {
      $resource_name .= '.html';
    }
    if (is_array($params) && count($params)) {
      foreach ($params as $key => $value) {
        $this->assign($key, $value);
      }
    }
    // check if the template file exists.
    if (!is_file($this->template_dir . $resource_name)) {
      show_error("template: [$resource_name] cannot be found.");
    }
    return parent::display($resource_name);
  }
} // END class smarty_library
?>

3.在autoload.php让ci自动加载smarty

$autoload['libraries'] = array('database', 'mysmarty');

或者 使用模板时再自己加载smarty

$this->load->library("mysmarty");

4.smarty变量赋值 display模板

$this->mysmarty->assign('test', 'Hello World.');
$this->mysmarty->view('smarty');

注:images css 等外部资源文件 放在ci系统文件夹外 网站根目录下

最好用:

$this->load->helper('url');

base_url()来访问:

base_url()."images/xxx.jpg"

不要放到system里

PHP 相关文章推荐
PHP 和 MySQL 开发的 8 个技巧
Oct 09 PHP
php Static关键字实用方法
Jun 04 PHP
php 代码优化之经典示例
Mar 24 PHP
PHP的范围解析操作符(::)的含义分析说明
Jul 03 PHP
PHP高自定义性安全验证码代码
Nov 27 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
php中将一个对象保存到Session中的方法
Mar 13 PHP
Yii2 GridView实现列表页直接修改数据的方法
May 16 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
PHPExcel简单读取excel文件示例
May 26 #PHP
php快速排序原理与实现方法分析
May 26 #PHP
深入理解PHP中的empty和isset函数
May 26 #PHP
CodeIgniter常用知识点小结
May 26 #PHP
php数组函数array_walk用法示例
May 26 #PHP
PHP发送AT指令实例代码
May 26 #PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
May 26 #PHP
You might like
PHP 5.0对象模型深度探索之绑定
2006/09/05 PHP
php实现aes加密类分享
2014/02/16 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
jQuery中hover与mouseover和mouseout的区别分析
2015/12/24 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
理解javascript async的用法
2017/08/22 Javascript
Vue.js用法详解
2017/11/13 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
vue.js click点击事件获取当前元素对象的操作
2020/08/07 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
打开电脑上的QQ的python代码
2013/02/10 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
python ---lambda匿名函数介绍
2019/03/13 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
python、Matlab求定积分的实现
2019/11/20 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
世界上最大的二手相机店:KEN
2017/05/17 全球购物
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
《燕子专列》教学反思
2014/02/21 职场文书
低碳环保倡议书
2014/04/14 职场文书
初中班主任评语大全
2014/04/24 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
励志演讲稿200字
2014/08/21 职场文书
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA