Utilisation du moteur de modèles universel smarty dans le framework CI

PHP中文网
Libérer: 2023-03-15 15:20:02
original
2265 Les gens l'ont consulté

Version CI : 2.1.4 // La dernière version en ce moment
Version Smarty : Smarty-2.6.26 // Parce que j'ai déjà utilisé cette version, afin de prendre soin de mes propres habitudes d'utilisation, je l'ai fait N'utilisez pas la dernière version de Smaty ici, tout le monde comprend le principe d'extension et peut choisir la version de Smatry qu'il souhaite utiliser.


1. Téléchargez le package de code source Smarty depuis le site correspondant ; // J'utilise Smarty-2.6.26 ici
2. Copiez le dossier libs dans le package de code source dans le CI. projet Dans le dossier bibliothèques sous le répertoire, renommez-le en Smarty-2.6.26; //
3. Créez un nouveau fichier Cismarty.php dans le dossier bibliothèques du répertoire du projet, avec le contenu suivant :

<?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;); 
    } 
}
Copier après la connexion

4. Créez un nouveau fichier smarty.php dans le dossier config du répertoire du projet. Le contenu est le suivant :

<?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;
Copier après la connexion

5. un nouveau fichier dans le répertoire où se trouve le fichier d'entrée. Dossiers templates_c, cache, configs
6. Recherchez le fichier autoload.php dans le répertoire config sous le répertoire du projet
Modifiez ceci

. $autoload['libraries'] = array('Cismarty ');//Le but est : laisser le système se charger automatiquement lorsqu'il est en cours d'exécution, sans avoir à le charger manuellement dans le contrôleur


7 . Créez un nouveau fichier MY_Controller.php dans le dossier core du répertoire du projet comme suit : // Classe de contrôle de base étendue

<?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); 
    } 
}
Copier après la connexion

Configuration terminée


-. ----------------- --------------------------------- ----------------- --------------------------------- ----------------- -------------------------------
Exemple d'utilisation :
Dans le contrôleur, tel que :

<?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;); 
    } 
}
Copier après la connexion

Puis dans la vue : le dossier vue se trouve sous vues dans le répertoire du projet :
Nouveau fichier test. 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>
Copier après la connexion

Cet article s'adresse à : http://www.php.cn/php-weizijiaocheng-377484.html

Apprendre programmation sur le site Web chinois PHP www.php.cn

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal