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对象类型判断
Aug 27 PHP
PHP 加密解密内部算法
Apr 22 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
Mar 24 PHP
PHP的加密方式及原理
Jun 14 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
PHP If Else(elsefi) 语句
Apr 07 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
微信支付开发动态链接Native支付
Jul 12 PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
Jun 15 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
Sep 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
帅气的琦玉老师
2020/03/02 日漫
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
ThinkPHP采用模块和操作分析
2011/04/18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
laydate日历控件使用方法详解
2017/11/20 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
微信小程序开发注意指南和优化实践(小结)
2019/06/21 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
总结Python编程中函数的使用要点
2016/03/20 Python
Python 使用Numpy对矩阵进行转置的方法
2019/01/28 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
生产班组长岗位职责
2014/01/05 职场文书
公司端午节活动方案
2014/02/04 职场文书
上课说话检讨书500字
2014/11/01 职场文书
2014年村委会工作总结
2014/11/24 职场文书
产品调价通知函
2015/04/20 职场文书
道歉的话语大全
2015/05/12 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
Python&Matlab实现灰狼优化算法的示例代码
2022/03/21 Python
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技