我希望把所有的view文件都通过Theme管理起来,但是对于Widget部分的View好像没有办法配置到对应的Theme目录下。
看源码中,CWidget 的 getViewPath()方法中,好像已经定义死了,必须是跟Widget类同级的views目录下
代码如下:(版本 yii-1.1.2.r2086)
return self::$_viewPaths[$className] = dirname($class->getFileName()) . DIRECTORY_SEPARATOR . 'views'
现在的解决办法是修改了这块的源码:
if(($theme=Yii::app()->getTheme())!==null){
return self::$_viewPaths[$className] = Yii::app() -> getTheme() -> getBasePath(). DIRECTORY_SEPARATOR . 'widget';
}
else{
return self::$_viewPaths[$className] = dirname($class->getFileName()) . DIRECTORY_SEPARATOR . 'views';
}
始终觉得改源码不是一个好的解决方案,请问各位还有什么好的解决办法吗??