Ну, я сделал это всего несколько дней назад, это шаг к интеграции системы Smarty.
- Загрузите Smarty из http://www.smarty.net/download
- Поместите папку smarty в application / third_party
Создайте файл smarty.php в приложении / библиотеке и вставьте этот
require_once(APPPATH.'third_party/Smarty/libs/Smarty.class.php');
class CI_Smarty extends Smarty {
protected $CI;
private $module;
public function __construct()
{
parent::__construct();
// get CI istance
$this->CI =& get_instance();
// fetch the calling module, need to check for views inside it
$this->module = $this->CI->router->fetch_module();
// path
$this->setCompileDir(APPPATH . "cache/smarty/compiled");
$this->setCacheDir(APPPATH . "cache/smarty/cached");
$this->setTemplateDir(APPPATH . "views/templates");
// to use $this inside our views/template
$this->assignByRef('this', $this->CI);
log_message('debug', "Smarty Class Initialized");
}
public function display ($template, $cache_id = null, $compile_id = null, $parent = null) {
// automatically add .tpl extension if there is not in $template
if (strpos($template,'.') === FALSE) {
$template .= '.tpl';
}
if ( !empty($this->module)){
$template = APPPATH . 'modules/' . $this->module . '/views/' . $template;
}
// call the original smarty function
parent::display($template, $cache_id, $compile_id, $parent);
}
}
/* End of file Smarty.php */
/* Location: ./application/libraries/Smarty.php */
ps: извините за отступ
Теперь вы можете использоватьsmarty с $ this-> load-> library ('smarty') или автоматически загрузите его, добавив smarty к $ autoload в файле конфигурации.
Надеюсь, это поможет!^^