Yii的views文件的默认扩展名是php,如果想把它改成html,不知道如何配置config文件
Yii的views文件的默认扩展名是php,如果想把它改成html,不知道如何配置config文件
本人是这方面的新手,希望各位前辈多多指教啊
谁来帮帮吧,好纠结啊!英语不好啊!唉
我解决了这个问题,把方案公布给大家!希望可以帮助也需要的朋友!
我先说下思路吧!在google上面搜了好久,也没有十分对口这个问题的,不过有很多和这个相关的话题!
没办法还是细心的看了下相关的源代码!看了之后发现无论是视图在哪里放着(主题或者modules亦或者是/protected/views/下),它最终都是需要resolveViewFile(CController类下)来找到视图文件的路径的!原方法的思路是如果没有配置第三方的renderer,那么默认的视图后缀名为’.php’,然后在查找视图文件时,先按设置的查找视图文件,如果不存在再尝试着’.php’来查找,如果还找不到就返回false拉!
我定义了一个BaseController类,并对这个方法进行了重写!下面是我的代码:
<?php
class BaseController extends CController
{
public $fileExtension='.html';
public function resolveViewFile($viewName,$viewPath,$basePath,$moduleViewPath=null)
{
if(empty($viewName))
return false;
if($moduleViewPath===null)
$moduleViewPath=$basePath;
if(($renderer=Yii::app()->getViewRenderer())!==null)
$extension=$renderer->fileExtension;
else
{
if(!empty($this->fileExtension))
{
$extension = $this->fileExtension;
}else
{
$extension='.php';
}
}
if($viewName[0]==='/')
{
if(strncmp($viewName,'//',2)===0)
$viewFile=$basePath.$viewName;
else
$viewFile=$moduleViewPath.$viewName;
}
else if(strpos($viewName,'.'))
$viewFile=Yii::getPathOfAlias($viewName);
else
$viewFile=$viewPath.DIRECTORY_SEPARATOR.$viewName;
if(is_file($viewFile.$extension))
return Yii::app()->findLocalizedFile($viewFile.$extension);
else if($extension!=='.php' && is_file($viewFile.'.php'))
return Yii::app()->findLocalizedFile($viewFile.'.php');
else
return false;
}
}