您的位置:首页 > 编程语言 > PHP开发

关于TP模板的目录设置和渲染问题

2015-05-07 16:22 309 查看
站点目录/Common/Conf/config.php中:
// 修改模板的目录 (此时视图目录失效)
// 原来:/站点目录/模块目录/视图目录/ [模板主题/]控制器名/动作名.后缀
// 现在:/模板目录/模块目录/ [模板主题/]控制器名/动作名.后缀
'VIEW_PATH'=>'./Public/',

// 指定视图目录,默认是View
'DEFAULT_V_LAYER'=>'View',

// 指定模板主题(不指定则无主题)
'DEFAULT_THEME'=>'Red',

// 用下划线修改目录层次,
// 原来:视图目录下新建ControlName文件夹,action.tpl文件
'TMPL_FILE_DEPR'=>'_',
// 现在:视图目录下新建ControlName_action.tpl文件

// 指定模板文件后缀,默认是html
'TMPL_TEMPLATE_SUFFIX'=>'.tpl',

在控制器的方法文件中:
class UserController extends Controller {
public function vv(){
// $this->display(); // 默认路径
// $this->assign('abc','new title'); // 指定变量和值
// $this->theme('default')->display(); // 指定模板主题
// $this->display('age'); // 指定模板文件

// $this->theme('Blue')->display('Admin@Person/salary/age'); //位置①
//指定 模板主题、模块、控制器、模板文件
$this->display('./Template/Public/User/index.html'); //位置②
//指定 绝对模板文件的绝对路径

}
}
需要说明的是:
位置①:如果在配置文件中设置有 'TMPL_FILE_DEPR'=>'_',
那么此时路径为:站点目录/Admin/视图目录/Blue/User_Person/salary/age.tpl

位置②:当绝对模板文件的路径存在并正确时,其它关于模板路径的配置全部失效,以此绝对路径为准

当使用T()方法获取或设置模板地址时:
T()返回的是当前模板的地址:
设置时,若使用了 'TMPL_FILE_DEPR'=>'_',
T('Admin@age') = ./站点/Admin/视图目录/Red/User_age.tpl
T ('Admin@salary/age') = ./站点/Admin/视图目录/Red/salary_age.tpl
T ('Admin@Person/salary/age' ) = ./站点/Admin/视图目录/Person/salary_age.tpl
注意与直接作display()参数的区别:
display('Admin@age') ./站点/Admin/视图目录/Red/User_age.tpl
display('Admin@salary/age') ./站点/Admin/视图目录/Red/User_salary/age.tpl
display('Admin@Person/salary/age') ./站点/Admin/视图目录/Red/User_Person/salary/age.tpl

若使用$this->display(T());同样可以渲染
一、此时不可再设置模板主题,即$this->theme('default')->display(T())时主题设置部分视为无效
此时模板主题使用配置文件中的设置
二、此时的路径已被转化为绝对路径,即相当于位置②的用法,只要路径正确即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息