Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung der universellen Template-Engine smarty im CI-Framework

Verwendung der universellen Template-Engine smarty im CI-Framework

PHP中文网
PHP中文网Original
2017-08-26 10:09:342246Durchsuche

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;); 
    } 
}

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;

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); 
    } 
}
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;); 
    } 
}
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>
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!

Stellungnahme:
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