优化ThinkPHP的T方法
ThinkPHP的目录管理有些问题。
当我设置了独立的模板目录以后模板目录会变成
模板目录/模块名称/模板主题/模板路径
然而很多CMS为了方便主题管理都是
模板目录/模板主题/模块名称/模板路径
这样的目录模式
所以改了下内核T方法/**<br>
* 获取模版文件 格式 资源://模块@主题/控制器/操作<br>
* @param string $template 模版资源地址<br>
* @param string $layer 视图层(目录)名称<br>
* @return string<br>
*/<br>
function T($template='',$layer=''){<br>
// 解析模版资源地址<br>
if(false === strpos($template,'://')){<br>
$template = 'http://'.str_replace(':', '/',$template);<br>
}<br>
$info = parse_url($template);<br>
$file = $info['host'].(isset($info['path'])?$info['path']:'');<br>
$module = isset($info['user'])?$info['user'].'/':MODULE_NAME.'/';<br>
$extend = $info['scheme'];<br>
$layer = $layer?$layer:C('DEFAULT_V_LAYER');<br>
// 获取主题<br>
$theme = substr_count($file,'/')
// 获取当前主题的模版路径<br>
$auto = C('AUTOLOAD_NAMESPACE');<br>
if($auto && isset($auto[$extend])){ // 扩展资源<br>
$baseUrl = $auto[$extend].$module.$layer.'/';<br>
}elseif(C('VIEW_PATH')){ <br>
// 改变模块视图目录<br>
$baseUrl = C('VIEW_PATH').($theme?$theme.'/':'');<br>
}elseif(defined('TMPL_PATH')){ <br>
// 指定全局视图目录<br>
$baseUrl = TMPL_PATH.($theme?$theme.'/':'').$module;<br>
}else{<br>
$baseUrl = APP_PATH.($theme?$theme.'/':'').$module.$layer.'/';<br>
}<br>
// 分析模板文件规则<br>
$depr = C('TMPL_FILE_DEPR');<br>
if('' == $file) {<br>
// 如果模板文件名为空 按照默认规则定位<br>
$file = CONTROLLER_NAME . $depr . ACTION_NAME;<br>
}elseif(false === strpos($file, '/')){<br>
$file = CONTROLLER_NAME . $depr . $file;<br>
}elseif('/' != $depr){<br>
$file = substr_count($file,'/')>1 ? substr_replace($file,$depr,strrpos($file,'/'),1) : str_replace('/', $depr, $file);<br>
}<br>
return $baseUrl.$file.C('TMPL_TEMPLATE_SUFFIX');<br>
}
AD:真正免费,域名+虚机+企业邮箱=0元

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

记事本++7.3.1
好用且免费的代码编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境