Verwendung der universellen Template-Engine smarty im CI-Framework

PHP中文网
Freigeben: 2023-03-15 15:20:02
Original
2265 Leute haben es durchsucht

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(&#39;BASEPATH&#39;)) EXIT(&#39;No direct script asscess allowed&#39;); 
require_once( APPPATH . &#39;libraries/Smarty-2.6.26/libs/Smarty.class.php&#39; ); 
class Cismarty extends Smarty { 
    protected $ci; 
    public function  __construct(){ 
        $this->ci = & get_instance(); 
        $this->ci->load->config(&#39;smarty&#39;);//加载smarty的配置文件 
        //获取相关的配置项 
        $this->template_dir   = $this->ci->config->item(&#39;template_dir&#39;); 
        $this->complie_dir    = $this->ci->config->item(&#39;compile_dir&#39;); 
        $this->cache_dir      = $this->ci->config->item(&#39;cache_dir&#39;); 
        $this->config_dir     = $this->ci->config->item(&#39;config_dir&#39;); 
        $this->template_ext   = $this->ci->config->item(&#39;template_ext&#39;); 
        $this->caching        = $this->ci->config->item(&#39;caching&#39;); 
        $this->cache_lifetime = $this->ci->config->item(&#39;lefttime&#39;); 
    } 
}
Nach dem Login kopieren

4. Erstellen Sie eine neue Datei smarty.php im Konfigurationsordner des Projektverzeichnisses. Der Inhalt lautet wie folgt:

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

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(&#39;BASEPATH&#39;)) exit(&#39;No direct access allowed.&#39;); 
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); 
    } 
}
Nach dem Login kopieren
Konfiguration abgeschlossen



- ----------------- --------------------------------- ----------------- --------------------------------- ----------------- ----------------
Anwendungsbeispiel:
Im Controller, etwa:

<?php if ( ! defined(&#39;BASEPATH&#39;)) exit(&#39;No direct script access allowed&#39;); 
class Welcome extends MY_Controller { // 原文这里写错 
    public function index() 
    { 
        //$this->load->view(&#39;welcome_message&#39;); 
        $data[&#39;title&#39;] = &#39;标题&#39;; 
        $data[&#39;num&#39;] = &#39;123456789&#39;; 
        //$this->cismarty->assign(&#39;data&#39;,$data); // 亦可 
        $this->assign(&#39;data&#39;,$data); 
        $this->assign(&#39;tmp&#39;,&#39;hello&#39;); 
        //$this->cismarty->display(&#39;test.html&#39;); // 亦可 
        $this->display(&#39;test.html&#39;); 
    } 
}
Nach dem Login kopieren
Dann in der Ansicht: Der Ansichtsordner befindet sich unter Ansichten im Projektverzeichnis:

Neuer Dateitest. html

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>{ $test.title}</title> // 原文是 <title>{$test[&#39;title&#39;]}</title>,是错误的写法,也有可能是Smarty版本的原因 
<style type="text/css"> 
</style> 
</head> 
<body> 
{$test.num|md5} // 原文这里也写错了 
<br> 
{$tmp} 
</body> 
</html>
Nach dem Login kopieren
Diese Artikeladresse:

http://www.php.cn/php-weizijiaocheng-377484.html

Lernen Programmierung auf der chinesischen PHP-Website www.php.cn


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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage