默认的模板文件定义规则是:模板目录/[分组名/]/[模板主题/]/模块名/操作名+模板后缀
模板目录默认是项目线面的Tpl,当定义分组的情况下,会按照分组名分开子目录,新模板主题默认为空(表示不启用模板主题功能),模板主题功能是为了多模块板切换而设计的,如果有多个模板主题的话,可以用DEFAULT_THEME参数设置默认的模板主题名。
在每个模板主题下面,十一项目的模块名为目录,然后是每个模块的具体操作模板文件,例如:User模块的add操作对应的模板文件就应该是:
Tpl/User/add.html
模板文件的默认后缀是.html,也可以修改修改TMPL_TEMPLDATE_SUFFIX来设定新的后缀名:'TMPL_TEMPLATE_SUFFIX' => '.tpl',
如果项目启用了模块分组功能(假设User模块属于Home分组),那默认对应的模板文件可能变成:Tpl/Home/User/add.html
分组模式下面,如果觉得目录结构太深,可以通过设置TMPL_FILE_DIR来简化模板的目录层次,例如:'TMPL_FILE_DIR' => '_'
默认模板文件就变成了
Tpl/Home/User_add.html
模板渲染
模板定义后就可以通过display和show方法来渲染输出。其中display方法需要有定义模板文件,而show方法则是直接渲染输出内容。
display方法调用格式:display('[主题:][模块:][操作]'[,'字符编码'][,'输出类型'])
display('完整模板文件名'[,'字符编码'][,'输出类型']);
模板文件位置对应于项目的入口文件,而不是模板目录
show方法调用格式:show('渲染内容'[,'字符编码'][,'输出类型'])
模板赋值
$this->assign('name',$value);
#或
$this->name = $value;
#模板中使用
{$name}
#数组形式
$array['name'] = 'thinkphp';
$array['email'] = 'fdsf@13.com';
$this->assign($array);
模板替换
!-Public-! | 替换成当前项目的公共模板目录,通常是/项目目录/Tpl/当前主题/Public/ |
!-TMPL-! | 替换成项目模板目录,通常是/项目目录/Tpl/当前主题 |
!-PUBLIC-! | 替换成当前网站公共目录,通常是/Public/ |
!-ROOT-! | 替换成当前网站的地址(不含域名) |
!-APP-! | 替换成当前项目的URL地址(不含域名) |
!-GROUP-! | 替换成当前分组的URL地址(不含域名) |
!-URL-! | 替换成当前模块的URL地址(不含域名) |
!-ACTION-! | 替换成当前操作的URL地址(不含域名) |
!-SELF-! | 替换成当前页面的URL |
可以自行添加:
'TMPL_PARSE_STRING' => array(
'!-PUBLIC-!'=>'/Common',//更改默认的!-PUBLIC-!替换规则
'__JS__'=>'/Public/Js',//增加新的Js类库替换规则
)