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脚本的10个技巧(3)
Oct 09 PHP
基于mysql的论坛(3)
Oct 09 PHP
php 日期时间处理函数小结
Dec 18 PHP
php程序的国际化实现方法(利用gettext)
Aug 14 PHP
国外PHP程序员的13个好习惯小结
Feb 20 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
php加密解密实用类分享
Jan 07 PHP
深入讲解PHP Session及如何保持其不过期的方法
Aug 18 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
Oct 17 PHP
php使用Swoole实现毫秒级定时任务的方法
Sep 04 PHP
PHP使用非对称加密算法RSA
Apr 21 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 nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
2009/08/21 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
Mootools 1.2教程 类(一)
2009/09/15 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
select获取下拉框的值 下拉框默认选中方法
2018/02/28 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
python基于phantomjs实现导入图片
2016/05/13 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
Python定时任务APScheduler的实例实例详解
2019/07/22 Python
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
求职毕业生自荐书
2014/02/08 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
报效祖国演讲稿
2014/09/15 职场文书
优秀教育工作者事迹材料
2014/12/24 职场文书
项目安全员岗位职责
2015/02/15 职场文书
详解Java实践之建造者模式
2021/06/18 Java/Android
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python