2013-10-02 3 views
2

J'ai juste besoin d'un peu d'aide ici pour installer Smarty dans Codeigniter.Comment accéder à la bibliothèque smarty dans un dossier tiers en utilisant Codeigniter?

ce que je faisais est:

  1. Extrait Smarty, renomme à Smarty et mis dans le dossier tiers
  2. Activer Smarty dans autoload.php
  3. Créer un dossier de modèles dans les vues (modèles, templates_c)
  4. Page Exécuter exemple (Dans mon cas, je lance l'index par défaut auquel le message de bienvenue)

le résultat est: Impossible de charger la classe demandée: Smarty

Dans mon autoload.php j'ai ajouté Smarty:

$autoload['packages'] = array(APPPATH.'third_party','smarty'); 


/* 
| ------------------------------------------------------------------- 
| Auto-load Libraries 
| ------------------------------------------------------------------- 
| These are the classes located in the system/libraries folder 
| or in your application/libraries folder. 
| 
| Prototype: 
| 
| $autoload['libraries'] = array('database', 'session', 'xmlrpc'); 
*/ 

$autoload['libraries'] = array('smarty'); 

Je ne sais pas où est mon erreur. J'espère que vous pouvez m'aider. Je suis un débutant en smarty.

Répondre

4

Vous devrez créer une classe de bibliothèque pour étendre smarty et charger automatiquement cela. Dans votre dossier /application/library/ créer un nouveau fichier appelé smartylib.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

// path to SMARTY library 
include APPPATH.'thirdparty/Smarty/libs/Smarty.class.php'; 

class Smartylib extends Smarty { 

    function __construct() { 
     parent::__construct(); 
    } 
} 

Puis autoload dans votre autoload.php

$autoload['libraries'] = array('smartylib'); 

Vous devrez peut-être faire des trucs de configuration pour Smarty dans votre construction. Jetez un oeil à la documentation Smarty sur extending smarty

Vous pourrez alors l'utiliser dans votre contrôleur:

$this->smartylib->assign('name','Ned'); 
$this->smartylib->display('index.tpl'); 
+0

Merci pour le c omment. Je vais essayer ça. :) – Jerielle

0

De plus, si vous le souhaitez ou besoin d'utiliser comme

$this->smarty->assign('name', 'Ned'); 

S'il vous plaît CLONE l'objet 'smartylib' en 'smarty' sur la fonction Controller __Consructor()

$this->smarty = clone $this->smartylib; 
Questions connexes