CanPHP开发手册--smarty扩展实例

说明:
  • 将下载下来的smarty放到CanPHP/ext/smarty目录里面
  • 在公共模块的构造函数中通过require_once(CP_PATH.'ext/smarty/Smarty.class.php');来加载smarty
  • smarty参数配置和使用,请参考smarty手册
在公共模块,扩展smarty模板引擎样例:
说明:
  • $this->assign($name, $value);//赋值
  • $this->display();//显示模板
  • 在模板中,模板标签的使用,参考smarty手册
使用方法:
model=$model;
		//加载并实例化smarty类
		require_once(CP_PATH.'ext/smarty/Smarty.class.php'); 
		$Smarty=new Smarty(); 
		$Smarty->caching=false;     
		$Smarty->cache_lifetime=30;    
		$Smarty->template_dir="./template";    
		$Smarty->compile="./templates_c";    
		$Smarty->cache_dir="./smarty_cache";   
		$Smarty->left_delimiter="{";   
		$Smarty->right_delimiter="}";    
		$this->tpl=$Smarty;
		
	if(!isset(self::$global['config']))
		{
			global $config;
			self::$global['config']=$config;			
		}	
		$this->config=self::$global['config'];//配置
	}
	
		//模板变量解析
	public function assign($name, $value)
	{
		return $this->tpl->assign($name, $value);
	}

	
	//模板输出
	public function display($tpl='')
	{	
		//在模板中使用CP定义的常量,使用方式如{$__ROOT__} {$__APP__}
		$this->assign("__ROOT__",__ROOT__);
		$this->assign("__APP__",__APP__);
		$this->assign("__URL__",__URL__);
		$this->assign("__PUBLIC__",__PUBLIC__);
		
		//实现不加参数时,自动加载相应的模板
		$tpl=empty($tpl)?$_GET['_module'].'/'.$_GET['_action'].$this->config['TPL_TEMPLATE_SUFFIX'] : $tpl; 	
		return $this->tpl->display($tpl);	
	}
}
?>