以插件形式加入smarty.
根据CI的规则。
下载smarty,并将其放到application/libraries/smarty下。
新建Cismarty.php,放在application/libraries下
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
- <?php defined('BASEPATH') or die('Access restricted!');
-
-
-
- require(APPPATH.'libraries/smarty/Smarty.class.php');
- class Cismarty extends Smarty
- {
- public $ext = 'tpl';
- public $dir = '';
- public $layout = 'layout/main';
-
-
-
-
-
-
-
- public function __construct($template_dir = '', $compile_dir = '', $config_dir = '', $cache_dir = '')
- {
- $this->Smarty();
- if(is_array($template_dir)){
- foreach ($template_dir as $key => $value) {
- $this->$key = $value;
- }
- }
- else {
- $this->cache_dir = $cache_dir ? $cache_dir : BASEPATH . 'cache/';
- $this->template_dir = $template_dir ? $template_dir : APPPATH . 'views/';
- $this->compile_dir = $compile_dir ? $compile_dir : APPPATH . 'tpl_c/';
- $this->compile_check = true;
- $this->debugging = false;
- $this->caching = 0;
- $this->cache_lefetime= 6000;
- $this->left_delimiter= '<!--{';
- $this->right_delimiter= '}-->';
- }
- }
-
-
-
-
-
-
- public function show($tpl){
- $this->assign('jsFiles',$this->getJsHtml());
- $this->assign('jsFiles1',$this->getJsHtml(1));
- $this->assign('LAYOUT', $this->dir ? $this->dir.'/'.$tpl.'.'.$this->ext : $tpl.'.'.$this->ext);
- $this->display($this->layout.'.'.$this->ext);
- }
-
-
-
-
-
-
- public function addCss($file) {
- if (strpos($file,'/')==false) {
- $file = config_item('css') . $file;
- }
- $GLOBALS['cssFiles'][$file] = $file;
- }
-
-
-
-
-
-
- public function addJs($file,$btm=NULL) {
- if (strpos($file,'/')==false) {
- $file = config_item('js') . $file;
- }
- if ($btm==NULL) {
- $GLOBALS['jsfiles'][$file] = $file;
- } else {
- $GLOBALS['jsbtmfiles'][$file] = $file;
- }
- }
-
-
-
-
-
- public function getJsHtml($btm=NULL) {
- $html = '';
- if (!$GLOBALS['jsfiles']) {
- return;
- }
- $jsFile = $btm?'jsbtmfiles':'jsfiles';
- if (@$GLOBALS[$jsFile]) {
- foreach ($GLOBALS[$jsFile] as $value) {
- $html .= $this->jsInclude($value,true)."/n";
- }
- return $html;
- } else {
- return ;
- }
- }
-
-
-
-
-
-
-
- public function addTag($tag, $attribute = NULL, $content = NULL) {
- $this->js();
- $html = '';
- $tag = strtolower($tag);
- $html .= '<'.$tag;
- if ($attribute!=NULL) {
- if (is_array($attribute)) {
- foreach ($attribute as $key=>$value) {
- $html .= ' '.strtolower($key).'="'.$value.'"';
- }
- } else {
- $html .= ' '.$attribute;
- }
- }
- if ($content) {
- $html .= '>'.$content.'</'.$tag.'>';
- } else {
- $html .= ' />';
- }
- $this->output .= $html;
- return $html;
- }
-
-
-
-
-
- public function addText($content) {
- $this->js();
- $content = htmlentities($content);
- $this->output .= $content;
- return $content;
- }
-
-
-
-
-
-
- public function js($jscode = NULL, $end = false) {
- if (!$this->inJsArea && $jscode) {
- $this->output .= "/n<mce:script language='JavaScript' type='text/javascript'><!--
- /n
- $this->inJsArea = true;
- }
- if ($jscode==NULL && $this->inJsArea==true) {
- $this->output .= "/n
-
- $this->inJsArea = false;
- } else {
- $this->output .= "/t$jscode/n";
- if ($end) {
- $this->js();
- }
- }
- return;
- }
-
-
-
-
-
-
- public function jsAlert($message, $end = false) {
- $this->js('alert("' . strtr($message, '"', '//"') . '");', $end);
- }
-
-
-
-
-
-
- public function jsInclude($fileName,$return = false, $defer = false) {
- if (!$return) {
- $this->js();
- }
- $html = '<mce:script language="JavaScript" type="text/javascript" src="'
- . $fileName . '" mce_src="'
- . $fileName . '"' . ( ($defer) ? ' defer' : '' )
- . '></mce:script>';
- if (!$return) {
- $this->output .= $html;
- } else {
- return $html;
- }
- }
-
-
-
-
-
- public function cssInclude($fileName,$return = false) {
- if (!$return) {
- $this->js();
- }
- $html = '<LINK href="' . $fileName . '" mce_href="' . $fileName . '" rel=stylesheet>' . chr(13);
- if (!$return) {
- $this->output .= $html;
- } else {
- return $html;
- }
- }
-
-
-
-
-
- public function output($print = false) {
- $this->js();
- if ($print) {
- echo $this->output;
- $this->output = '';
- return;
- } else {
- $output = $this->output;
- $this->output = '';
- return $output;
- }
- }
- }
- ?>
打开配置文件(config/autoload.php)
$autoload['libraries'] = array('cismarty');//加入cismarty
这样在所有应用中,都可以使用$this->cismarty来调用smarty实例了。
Cismarty类已经在原有的smarty::display基础上做了小的改动,已经支持layout功能
默认加载view/layout/main.tpl作为布局文件。
可以通过$this->cismarty->layout = "xxxx"来更改
http://blog.csdn.net/a600423444/article/details/5892726
分享到:
相关推荐
集成过程包括安装Smarty库、配置CodeIgniter以使用Smarty,以及设置模板目录等步骤。 1. **安装Smarty**:首先,你需要下载Smarty的最新版本,并将其解压到CodeIgniter的`application/third_party`目录下,这通常...
在这个类的构造函数中,加载Smarty的配置文件,并根据CodeIgniter的配置文件来设置Smarty的参数,比如缓存生命周期、缓存开关、模板目录、编译目录、缓存目录和配置目录等。这些参数允许开发者定义Smarty模板的存储...
在这个自定义的类中,需要配置模板目录、编译目录等参数,并引入CodeIgniter的配置文件及URL帮助函数,以便能获取到CodeIgniter的根目录和URL。 3. 自动加载Smarty:在CodeIgniter的autoload.php文件中添加SMARTY库...
然后,你需要下载Smarty模板引擎的PHP库,将其解压并放置在CodeIgniter的"libraries"目录下,通常这个目录下存放自定义的类库。 在整合过程中,你需要创建一个名为"Smarty"的新的库文件。这个文件将作为CodeIgniter...
在CodeIgniter框架中集成Smarty3模板引擎,需要先创建一个类库来管理Smarty的实例,并在控制器中进行调用。以下是具体的操作步骤和知识点详解: 一、创建Smarty类库 1. 将Smarty的libs文件夹复制到CodeIgniter的...
这个类是用于加载Smarty引擎的关键,它继承自Smarty类,并提供了对CodeIgniter框架特定路径的配置方法。 5. 在CI_Smarty类中,需要定义构造函数,并根据传入的参数或默认值来配置Smarty的模板目录(template_dir)...
在基于CodeIgniter 3.0.6的后台管理系统中,开发者首先需要配置数据库连接,使用MySQL存储用户、角色和权限信息。这通常涉及到创建相应的数据表,如用户表、角色表和权限表,以及它们之间的关联关系。接下来,使用...
后台管理程序由php开发,目前只实现了基本功能:模块管理... 使用codeigniter框架和Smarty模板 页面使用ACE Admin UI模板,为了结合frame做了二次修改 图形报表使用openflashchart,OFC php有不少BUG,我已经做了修复
7. **配置选项**:Smarty有许多可配置的选项,比如模板目录、编译目录、缓存目录等,可以根据项目需求进行灵活设置。 8. **模板设计模式**:Smarty支持多种模板设计模式,如块(block)、分配(assign)、函数...
4. 错误处理与日志:CodeIgniter提供了错误报告和日志记录功能,帮助开发者追踪并解决程序运行中的问题。通过调整错误级别设置,可以在开发阶段获取详细的错误信息,而在生产环境中则可以生成日志文件。 5. 模板...
- **URL伪静态**:CodeIgniter支持友好的URL结构,有助于SEO优化。 在CodeIgniter 2.1.2版本中,可能没有后来版本中的一些新特性和改进,比如改进的安全特性、更好的性能优化以及对新PHP版本的支持。但是,如果你...
标题中的“Netbeans对Codeigniter框架支持的插件”是指NetBeans IDE为了方便开发者使用Codeigniter框架而设计的扩展工具。Codeigniter是一款轻量级、高效的PHP框架,常用于快速开发Web应用程序。NetBeans作为一个...
配置类库在CodeIgniter中扮演着核心角色,帮助开发者管理并设置应用的各个组件,如数据库连接、URL路由、邮件发送等。 配置类库是CodeIgniter的核心部分之一,它允许开发者在应用的生命周期内定义和改变各种设置。...
5. **模板引擎**:虽然CodeIgniter本身不强制使用特定的视图模板,但它有一个简单的模板解析器,允许开发者创建自定义的模板引擎或者选择第三方库如Twig或Smarty。 6. **错误处理和调试**:内置的错误报告和日志...
在CodeIgniter框架中集成Smarty模板引擎和ADODB数据库抽象层库的方法涉及到几个关键步骤,包括创建特定的文件和配置文件来让CodeIgniter能够加载和使用这些库。下面详细阐述这些集成知识点。 1. 创建CodeIgniter库...
10. 配置(Configuration):CodeIgniter的配置文件允许开发者自定义框架的行为,如数据库连接、字符集、URL分隔符等。大部分配置项位于`config/`目录下的PHP文件中。 11. 布景类(Benchmarking):CodeIgniter的布景类...
8. **模板继承和布局**:Smarty提供了一种布局(layout)的概念,可以创建一个基础布局模板,其他模板可以引用这个布局,并在其内部添加自己的内容。 9. **预处理和后处理**:Smarty允许在模板处理前或处理后执行...
5. **模板引擎**:虽然视图文件可以是纯PHP,但CodeIgniter还支持使用模板引擎,如Smarty,以增强视图的灵活性和可读性。 6. **安全**:提供了输入过滤、输出编码等功能,帮助防止SQL注入和跨站脚本攻击。 **使用...
2. **数据库支持**:CodeIgniter支持多种数据库系统,包括MySQL、PostgreSQL、SQLite等,通过其简单的数据库抽象层和活动记录库,使得数据库操作变得非常直观。 3. **安全与防止XSS攻击**:CodeIgniter提供了输入...