// +---------------------------------------------------------------------- namespace Think\Behavior; /** * 系统行为扩展:定位模板文件 * @category Think * @package Think * @subpackage Behavior * @author liu21st */ class LocationTemplate { // 行为扩展的执行入口必须是run public function run(&$templateFile){ // 自动定位模板文件 if(!is_file($templateFile)) $templateFile = $this->parseTemplateFile($templateFile); } /** * 自动定位模板文件 * @access private * @param string $templateFile 文件名 * @return string */ private function parseTemplateFile($template) { $template = str_replace(':','/',$template); if(''==$template) { // 如果模板文件名为空 按照默认规则定位 $template = CONTROLLER_NAME.'/'.ACTION_NAME; }elseif(false === strpos($template,'/')){ $template = CONTROLLER_NAME.'/'.$template; }elseif(false === strpos($template,'.')) { $template = $template; } $templateFile = MODULE_PATH.'view/'.$template.'.html'; if(!is_file($templateFile)) throw_exception(L('_TEMPLATE_NOT_EXIST_').'['.$templateFile.']'); return $templateFile; } }