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中取得image按钮传递的name值
Oct 09 PHP
html中select语句读取mysql表中内容
Oct 09 PHP
Smarty安装配置方法
Apr 10 PHP
PHP中文分词 自动获取关键词介绍
Nov 13 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
Oct 13 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 PHP
浅谈关于PHP解决图片无损压缩的问题
Sep 01 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
解决php extension 加载顺序问题
Aug 16 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
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
Python同步遍历多个列表的示例
2019/02/19 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
总经理司机岗位职责
2014/02/06 职场文书
身边的榜样活动方案
2014/08/20 职场文书
作风转变年心得体会
2014/10/22 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
放弃遗产继承公证书
2015/01/26 职场文书