2013-10-02 28 views
2

我只需要在這裏介紹一下在Codeigniter中安裝Smarty的一些幫助。如何使用Codeigniter訪問第三方文件夾中的smarty庫?

我所做的是:

  1. 提取智者,重命名爲智者,並把第三方的文件夾
  2. 啓用autoload.php
  3. 創建視圖模板文件夾(模板,templates_c)
  4. 智者
  5. 運行示例頁面(在我來說,我運行默認的指數,歡迎消息)

結果是: 無法加載所請求的類:智者

在我autoload.php我加了智者:

$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'); 

我只是不知道哪裏是我的錯誤。我希望你能幫助我。我是聰明的初學者。

回答

4

您將需要創建一個庫類來擴展smarty和autoload。在你/application/library/文件夾中autoload.php

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

你可能需要做一些Smarty的配置的東西,在你的構建創建一個名爲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(); 
    } 
} 

然後自動加載它新的文件。採取extending smarty

看看Smarty的文檔,然後你就可以在你的控制器使用方法:

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

感謝您的c omment。我會嘗試。 :) – Jerielle

0

而且,如果你喜歡或者需要

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

使用請將「smartylib」對象轉換爲Controller __Consructor()函數中的「smarty」對象

$this->smarty = clone $this->smartylib; 
相關問題