yii支持module和theme,分别都有很多文章,但是如何更好的结合起来,很少有人关注。
yii提供了一个默认的方式,即在webroot的theme目录下增加一个module目录解决。
默认方案满足了大部分人的需要,但是都说是模块了,肯定要通用啊。那为了更好的满足通用性,肯定希望吧模块的一些主题内容放在模块自己的目录下。
好吧,let me try。在module的类里面重载下面的函数即可。
public function getViewPath()
{
// 存在主题的话,去查看module有没有对应的
if(yii::app()->theme!==null)
{
$viewPath = dirname(__FILE__).DIRECTORY_SEPARATOR.'themes'.DIRECTORY_SEPARATOR.yii::app()->theme->name;
if(file_exists($viewPath))
{
return $viewPath.DIRECTORY_SEPARATOR.'views';
}
}
return parent::getViewPath();
}
说明下: