CI-Version: 2.1.4 // Die aktuellste Version
Smarty-Version: Smarty-2.6.26 // Da ich diese Version bereits zuvor verwendet habe, habe ich sie verwendet, um auf meine eigenen Nutzungsgewohnheiten zu achten Verwenden Sie hier nicht die neueste Smaty-Version. Jeder versteht das Erweiterungsprinzip und kann die Smaty-Version auswählen, die er verwenden möchte.
1. Laden Sie das Smarty-Quellcodepaket von der entsprechenden Site herunter // Ich verwende hier Smarty-2.6.26
2. Kopieren Sie den libs-Ordner im Quellcodepaket Projekt Benennen Sie es im Bibliotheksordner unter dem Verzeichnis in Smarty-2.6.26 um. //
3 Erstellen Sie eine neue Datei Cismarty.php im Bibliotheksordner des Projektverzeichnisses mit folgendem Inhalt:
<?php if(!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. Erstellen Sie eine neue Datei smarty.php im Konfigurationsordner des Projektverzeichnisses. Der Inhalt lautet wie folgt:
<?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 eine neue Datei in dem Verzeichnis, in dem sich die Eintragsdatei befindet.
6. Suchen Sie die Datei autoload.php im Verzeichnis config
$autoload['libraries'] = array('Cismarty ');//Der Zweck besteht darin, das System automatisch laden zu lassen, wenn es läuft, ohne es manuell in den Controller laden zu müssen
7 . Erstellen Sie eine neue Datei MY_Controller.php im Kernordner des Projektverzeichnisses wie folgt: // Erweiterte Kernsteuerungsklasse
<?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); } }
- ----------------- --------------------------------- ----------------- --------------------------------- ----------------- ----------------
Anwendungsbeispiel:
Im Controller, etwa:
<?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'); } }
Neuer Dateitest. 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>
http://www.php.cn/php-weizijiaocheng-377484.html
Das obige ist der detaillierte Inhalt vonVerwendung der universellen Template-Engine smarty im CI-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!