/**
* 获取模版文件 格式 资源://模块@主题/控制器/操作
* @param string $template 模版资源地址
* @param string $layer 视图层(目录)名称
* @return string
*/
function T($template='',$layer=''){
// 解析模版资源地址
if(false === strpos($template,'://')){
$template = 'http://'.str_replace(':', '/',$template);
}
$info = parse_url($template);
$file = $info['host'].(isset($info['path'])?$info['path']:'');
$module = isset($info['user'])?$info['user'].'/':MODULE_NAME.'/';
$extend = $info['scheme'];
$layer = $layer?$layer:C('DEFAULT_V_LAYER');
// 获取主题
$theme = substr_count($file,'/')<2 ? C('DEFAULT_THEME') : '';
// 获取当前主题的模版路径
$auto = C('AUTOLOAD_NAMESPACE');
if($auto && isset($auto[$extend])){ // 扩展资源
$baseUrl = $auto[$extend].$module.$layer.'/';
}elseif(C('VIEW_PATH')){
// 改变模块视图目录
$baseUrl = C('VIEW_PATH').($theme?$theme.'/':'');
}elseif(defined('TMPL_PATH')){
// 指定全局视图目录
$baseUrl = TMPL_PATH.($theme?$theme.'/':'').$module;
}else{
$baseUrl = APP_PATH.($theme?$theme.'/':'').$module.$layer.'/';
}
// 分析模板文件规则
$depr = C('TMPL_FILE_DEPR');
if('' == $file) {
// 如果模板文件名为空 按照默认规则定位
$file = CONTROLLER_NAME . $depr . ACTION_NAME;
}elseif(false === strpos($file, '/')){
$file = CONTROLLER_NAME . $depr . $file;
}elseif('/' != $depr){
$file = substr_count($file,'/')>1 ? substr_replace($file,$depr,strrpos($file,'/'),1) : str_replace('/', $depr, $file);
}
return $baseUrl.$file.C('TMPL_TEMPLATE_SUFFIX');
}
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。