关于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())时主题设置部分视为无效
此时模板主题使用配置文件中的设置
二、此时的路径已被转化为绝对路径,即相当于位置②的用法,只要路径正确即可
// 修改模板的目录 (此时视图目录失效)
// 原来:/站点目录/模块目录/视图目录/ [模板主题/]控制器名/动作名.后缀
// 现在:/模板目录/模块目录/ [模板主题/]控制器名/动作名.后缀
'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())时主题设置部分视为无效
此时模板主题使用配置文件中的设置
二、此时的路径已被转化为绝对路径,即相当于位置②的用法,只要路径正确即可
相关文章推荐
- 关于图片显示的问题(设置附件目录权限的技巧)
- 关于设置IIS目录的属性问题
- 关于使用vue.js的模板渲染时出现一瞬间的设置的模板的解决方案
- 关于ubuntu下apache虚拟目录的设置问题
- 关于设置网站虚拟目录的几个问题解决方法
- 关于TP5视图分离到根目录的解决方法 原有: 为了方便前端开发,我想把视图(view)部分分离出来专门给前端进行修改 过程:在进行视图设置分离的过程遇到了问题 参考了官方文档http://www
- 关于CodeSmith主模板与子模板同时从一个基类继承后的参数传值问题(提供模板下载)
- 关于border-radius设置问题
- android关于控件中setTag(key,Object)的设置的相关问题
- 关于模拟器上网和邮箱设置的问题
- 关于网页控件设置成disabled以后,提交不到后台的问题
- Eclipse中tomcat加载目录的设置引起的java.io.FileNotFoundException问题
- 关于任务栈返回设置的问题
- IOS开发:关于设置UIView的背景为图片的方法以及问题
- Django设置模板目录
- 关于div行高的巨细问题(如何设置 div 的最小高度)
- Android 关于ScrollView的子布局无法设置高度的问题
- 关于select函数中timeval和fd_set重新设置的问题
- tp模板引擎标签配置,引用文件路径设置添加
- 关于Web开发中Cookie的时间设置问题