亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

CI框架集成Smarty的方法分析

2024-05-04 23:46:17
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了CI框架集成Smarty的方法,對比分析并改進了網上已有的方法,詳細介紹了CI框架繼承Smarty模板的具體步驟與相關技巧,需要的朋友可以參考下
 

本文實例講述了CI框架集成Smarty的方法。分享給大家供大家參考,具體如下:

因為CI自帶的模板功能不是很方便,所以大家普遍采用集成Smarty的方式來彌補CI這方面的不足。

本人在網上看了不少CI集成Smarty的教程,包括咱們CI論壇里面的一個精華帖子

http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=10345。

自己對比了一下這些教程,我認為下面這個方案是所有里面最優秀的,強烈推薦給大家(當然也是我自己采取的方案)

出處:

http://www.cnmiss.cn/?p=261

原文里面的一些錯誤,我在本文里面已經做了修正

下面說下我認為它更加優秀的原因,對比下這個方案和我們論壇的方案,你會發現,這個方案多了一點就是它擴展了核心類,

它將Smarty類方法assign和display擴展到Ci的控制器中,所以我們在CI中使用Smarty的時候可以像這樣使用:

public function index(){    //$this->load->view('welcome_message');    $data['title'] = '標題';    $data['num'] = '123456789';    //$this->cismarty->assign('data',$data); // 也可以    $this->assign('data',$data);    $this->assign('tmp','hello');    //$this->cismarty->display('test.html'); // 也可以    $this->display('test.html');}

通過對核心控制器類的簡單擴展,大家在CI中使用Smary的時候和直接使用Smarty的用法習慣是一樣的,這是一個很大的優點啊。

而且從核心類庫的擴展來看,大家也可以看出該文作者對于CI框架的理解是很好的。

根據這篇文章,我不僅成功集成了Smaty,而且也進一步加強了對于CI的理解。

而且該方案將Smarty的配置文件放到了CI框架的config目錄下,對于兩者,使用都很規范。

最終實現了"CI和Smaty的無縫結合"。

下面開始是具體教程: // 我在原文的基礎上做了一些修改,更正了原文的一些錯誤 注意下文中有'//'的地方,是我自己修改過的地方,或是自己又增加的地方。

CI版本:2.1.4 // (本文發布時使用的版本)

Smarty版本:Smarty-2.6.26 // 因為我之前用這個版本,為了照顧自己的使用習慣,這里沒有使用最新的Smaty版本,大家理解了擴展原理,可以選擇自己想用的Smatry版本。

1、到相應站點下載Smarty的源碼包; // 我這里用的是 Smarty-2.6.26

2、將源碼包里面的libs文件夾copy到CI的項目目錄下面的libraries文件夾下,并重命名為Smarty-2.6.26;//

3、在項目目錄的libraries文件夾內新建文件Cismarty.php,里面的內容如下:

<?phpif(!defined('BASEPATH')) EXIT('No direct script asscess allowed');require_once( APPPATH . 'libraries/Smarty-2.6.26/libs/Smarty.class.php' );class Cismarty extends Smarty {  protected $ci;  public function __construct(){    $this->ci = & get_instance();    $this->ci->load->config('smarty');//加載smarty的配置文件    //獲取相關的配置項    $this->template_dir  = $this->ci->config->item('template_dir');    $this->complie_dir  = $this->ci->config->item('compile_dir');    $this->cache_dir   = $this->ci->config->item('cache_dir');    $this->config_dir   = $this->ci->config->item('config_dir');    $this->template_ext  = $this->ci->config->item('template_ext');    $this->caching    = $this->ci->config->item('caching');    $this->cache_lifetime = $this->ci->config->item('lefttime');  }}

4、在項目目錄的config文件夾內新建文件smarty.php文件,里面的內容如下:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');$config['theme']    = 'default';$config['template_dir'] = APPPATH . 'views';$config['compile_dir'] = FCPATH . 'templates_c';$config['cache_dir']  = FCPATH . 'cache';$config['config_dir']  = FCPATH . 'configs';$config['template_ext'] = '.html';$config['caching']   = false;$config['lefttime']   = 60;

5、在入口文件所在目錄新建文件夾templates_c、cache、configs;

6、在項目目錄下面的config目錄中找到autoload.php文件
修改這項

$autoload['libraries'] = array('Cismarty');//目的是:讓系統運行時,自動加載,不用人為的在控制器中手動加載

7、在項目目錄的core文件夾中新建文件MY_Controller.php 內容如下: // 擴展核心控制類

<?php if (!defined('BASEPATH')) exit('No direct access allowed.');class MY_Controller extends CI_Controller { // 原文這里寫錯  public function __construct() {    parent::__construct();  }  public function assign($key,$val) {    $this->cismarty->assign($key,$val);  }  public function display($html) {    $this->cismarty->display($html);  }}

配置完畢

使用方法實例:

在控制器中如:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');class Welcome extends MY_Controller { // 原文這里寫錯  public function index()  {    //$this->load->view('welcome_message');    $data['title'] = '標題';    $data['num'] = '123456789';    //$this->cismarty->assign('data',$data); // 亦可    $this->assign('data',$data);    $this->assign('tmp','hello');    //$this->cismarty->display('test.html'); // 亦可    $this->display('test.html');  }}

然后再視圖中:試圖文件夾位于項目目錄的views之下:

新建文件test.html

<!DOCTYPE html><html><head><meta charset="utf-8"><title>{ $test.title}</title> //( 原文是 <title>{$test['title']}</title>,是錯誤的寫法,也有可能是Smarty版本的原因)<style type="text/css"></style></head><body>{$test.num|md5} // 原文這里也寫錯了<br>{$tmp}</body></html>


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品日本精品| 日韩在线播放av| 欧美特级www| 国产精品久久久久久超碰| 国产精品一区二区久久国产| 亚洲深夜福利在线| 国产精品青青在线观看爽香蕉| 夜夜嗨av色一区二区不卡| 午夜免费在线观看精品视频| 亚洲精品午夜精品| 国产精品日韩电影| 国产精品扒开腿做爽爽爽的视频| 日韩视频―中文字幕| 国产欧美一区二区三区久久人妖| 亚洲欧美日韩视频一区| 亚洲天堂男人天堂| 日韩av色综合| 国产脚交av在线一区二区| 欧美怡春院一区二区三区| 亚洲精品久久久久中文字幕二区| 亚洲成人av片| 国产色视频一区| 国内精品久久久久| 欧美激情xxxx| 日韩精品免费在线| 国产成人精品久久| 欧美在线视频导航| 成人精品一区二区三区电影黑人| 成人国产亚洲精品a区天堂华泰| 国产精品成人v| 国产精品久久电影观看| 日本中文字幕成人| 日韩欧美在线观看视频| 在线激情影院一区| 国产69精品久久久久99| 中文字幕v亚洲ⅴv天堂| 国产精品久久91| 国产一区二区免费| 亚洲色图偷窥自拍| 亚洲精品福利在线观看| 国产91成人在在线播放| 亚洲va国产va天堂va久久| 88国产精品欧美一区二区三区| 国产成人精品999| 欧美午夜丰满在线18影院| 亚洲va码欧洲m码| 亚洲精品小视频| 萌白酱国产一区二区| 久久久久久亚洲精品中文字幕| 中文字幕国产精品| 国产偷国产偷亚洲清高网站| 久久精品电影网| 亚洲福利在线观看| 欧美噜噜久久久xxx| 国产精品免费在线免费| 97精品国产97久久久久久春色| 亚洲毛茸茸少妇高潮呻吟| 欧美激情xxxxx| 欧美成人小视频| 欧美成人性色生活仑片| 久久久久国色av免费观看性色| 日韩av在线网址| 亚洲欧美一区二区三区久久| 日本亚洲欧美成人| 亚洲色图美腿丝袜| 成人高清视频观看www| 国产999精品视频| 欧美裸体xxxx极品少妇软件| 日韩一区二区三区xxxx| 日韩成人性视频| 91av视频导航| 欧美麻豆久久久久久中文| 麻豆乱码国产一区二区三区| 日韩亚洲第一页| 久热在线中文字幕色999舞| 日韩一区二区久久久| 日韩美女av在线免费观看| 日韩av片永久免费网站| 国产精品av电影| 久久九九国产精品怡红院| 亚洲网在线观看| 成人福利网站在线观看| 中文字幕一精品亚洲无线一区| 久久人人看视频| www.欧美三级电影.com| 久久免费精品视频| 久久国产精品视频| 色综合视频网站| 久久天天躁狠狠躁夜夜躁| 亚洲第一精品电影| 国产欧美精品在线播放| 亚洲色图校园春色| 91亚洲午夜在线| 中文国产亚洲喷潮| 国产精品专区一| 国产一区二区三区精品久久久| 91欧美精品成人综合在线观看| 日本一区二区不卡| 亚洲黄色成人网| 亚洲无限乱码一二三四麻| 欧美精品www在线观看| 日本久久久久久| 久久久久久999| 黄色精品一区二区| 中文字幕无线精品亚洲乱码一区| 亚洲小视频在线观看| 久久久免费在线观看| 91免费看片网站| 亚洲开心激情网| 91国内在线视频| 国产一区二中文字幕在线看| 成人在线视频网站| 日本亚洲欧洲色α| 亚洲精品视频在线观看视频| 中文字幕亚洲欧美日韩高清| 亚洲a在线观看| 大量国产精品视频| 国产精品中文字幕在线| 成人h片在线播放免费网站| 久久99精品久久久久久琪琪| 91地址最新发布| 日本乱人伦a精品| 久久久久久这里只有精品| 97免费中文视频在线观看| 国产精品日韩在线观看| 国产色婷婷国产综合在线理论片a| 青草青草久热精品视频在线网站| 91免费看片在线| 欧美精品激情视频| 久久久久亚洲精品成人网小说| 欧美日韩福利视频| 欧美国产日韩在线| 欧美日韩人人澡狠狠躁视频| 少妇av一区二区三区| 91精品国产乱码久久久久久蜜臀| 国产精品狠色婷| 亚洲国产日韩欧美在线图片| 久久精品中文字幕电影| 日韩亚洲成人av在线| 欧美激情精品久久久久久变态| 欧美另类交人妖| 国产不卡在线观看| 欧美午夜性色大片在线观看| 欧美日本啪啪无遮挡网站| 这里只有精品视频在线| 一个人看的www久久| 在线精品视频视频中文字幕| 亚洲欧美日韩精品久久亚洲区| 国产99久久精品一区二区| 亚洲欧美在线看| 亚洲欧美国产视频| 综合久久五月天| 久久久久女教师免费一区| 欧美性极品xxxx做受| 久久久久久久久久久91| 综合欧美国产视频二区| 欧美美女15p| 亚洲国产古装精品网站| 欧美另类极品videosbestfree| 亚洲精品综合久久中文字幕| 日韩电影中文字幕在线观看| 欧美午夜久久久| 日韩av免费在线| 91探花福利精品国产自产在线|