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); } } ?>