yii支持module和theme,分別都有不少文章,可是如何更好的結合起來,不多有人關注。php
yii提供了一個默認的方式,即在webroot的theme目錄下增長一個module目錄解決。web
默認方案知足了大部分人的須要,可是都說是模塊了,確定要通用啊。那爲了更好的知足通用性,確定但願吧模塊的一些主題內容放在模塊本身的目錄下。app
好吧,let me try。在module的類裏面重載下面的函數便可。yii
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(); }
說明下:ide
若是在配置裏面沒有設置了theme的話,按yii默認處理,即讀取模塊的views目錄。函數
若是設置了theme,會去模塊的主題目錄下查找對應的,存在的話,直接設置,沒有的話,仍是按照yii默認處理,即去應用的主題目錄下查找模塊目錄。blog