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下判断数组中是否存在相同的值array_unique
Mar 25 PHP
PHP加速 eAccelerator配置和使用指南
Jun 05 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
php生成二维码的几种方式整理及使用实例
Jun 03 PHP
PHP二进制与字符串之间的相互转换教程
Oct 14 PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
tp5实现微信小程序多图片上传到服务器功能
Jul 16 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 15 PHP
php引用和拷贝的区别知识点总结
Sep 23 PHP
php给数组赋值的实例方法
Sep 26 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 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
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
2017/02/28 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
利用python获得时间的实例说明
2013/03/25 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
大型车展策划方案
2014/02/01 职场文书
领班岗位职责范文
2014/02/06 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
2015年简历自我评价范文
2015/03/11 职场文书
详解Spring事件发布与监听机制
2021/06/30 Java/Android