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(1)
Oct 09 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
zen cart新进商品的随机排序修改方法
Sep 10 PHP
PHP文件读写操作之文件读取方法详解
Jan 13 PHP
php中常用字符串处理代码片段整理
Nov 07 PHP
php4与php5的区别小结(配置异同)
Dec 20 PHP
比file_get_contents稳定的curl_get_contents分享
Jan 11 PHP
PHP获取网址的顶级域名函数代码
Sep 24 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 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 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
director.js实现前端路由使用实例
2015/02/03 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
React Native中TabBarIOS的简单使用方法示例
2017/10/13 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
python动态加载变量示例分享
2014/02/17 Python
ptyhon实现sitemap生成示例
2014/03/30 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
详解python中init方法和随机数方法
2019/03/13 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
你对IPv6了解程度
2016/02/09 面试题
党员岗位承诺书
2014/03/25 职场文书
白酒营销策划方案
2014/08/17 职场文书
营销与策划实训报告
2014/11/05 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
酒店前台辞职书
2015/02/26 职场文书