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代码技巧的小结
Jun 02 PHP
解析strtr函数的效率问题
Jun 26 PHP
php 常用算法和时间复杂度
Jul 01 PHP
php实现cc攻击防御和防止快速刷新页面示例
Feb 13 PHP
ThinkPHP3.1基础知识快速入门
Jun 19 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
php输出xml必须header的解决方法
Oct 17 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
Mar 07 PHP
PHP数据库处理封装类实例
Dec 24 PHP
总结的一些PHP开发中的tips(必看篇)
Mar 24 PHP
thinkPHP5.0框架应用请求生命周期分析
Mar 25 PHP
PHP设计模式之观察者模式定义与用法示例
Aug 04 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
php URL验证正则表达式
2011/07/19 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
php生成二维码图片方法汇总
2016/12/17 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
PHP实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
json字符串对象转换代码实例
2019/09/28 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
Python 查看文件的编码格式方法
2017/12/21 Python
Python解决八皇后问题示例
2018/04/22 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
护士自荐信
2013/10/25 职场文书
运动会稿件300字
2014/02/14 职场文书
企业文明单位申报材料
2014/05/16 职场文书
董事长年会致辞
2015/07/29 职场文书
预备党员入党感想
2015/08/10 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书