乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      YII框架分析筆記12:主題管理

       朱啟發(fā) 2014-11-05

      YII主題的控制由CThemeManager和CTheme管理,CThemeManager在應(yīng)用初始化時(shí)作為核心組件注冊(cè),主題默認(rèn)路徑是app/themes/。


      主題配置
      由于主題組件在應(yīng)用初始化時(shí)注冊(cè),其配置以及很方面,比如在app/themes/下有一個(gè)custom1主題
      在主配置文件中加入'theme'=>'custom1'鍵值對(duì),在主題注冊(cè)的時(shí)候會(huì)調(diào)用 CWebApplication::setTheme($value)初始化主題的名字。


      獲取主題
      主題的獲取從控制器渲染視圖說起,通過視action方法傳遞的視圖名稱獲取視圖文件的路徑

      1. CController::getViewFile()  
      2. public function getViewFile($viewName)  
      3. {  
      4.    
      5.     if(($theme=Yii::app()->getTheme())!==null && ($viewFile=$theme->getViewFile($this,$viewName))!==false)  
      6.         return $viewFile;  
      7.     $moduleViewPath=$basePath=Yii::app()->getViewPath();  
      8.     
      9.     if(($module=$this->getModule())!==null)  
      10.         $moduleViewPath=$module->getViewPath();  
      11.     return $this->resolveViewFile($viewName,$this->getViewPath(),$basePath,$moduleViewPath);  
      12. }   
      1. CTheme::etViewFile()  
      2. /** 
      3.  * Finds the view file for the specified controller's view. 
      4.  * @param CController $controller the controller 
      5.  * @param string $viewName the view name 
      6.  * @return string the view file path. False if the file does not exist. 
      7.  */  
      8. public function getViewFile($controller,$viewName)  
      9. {  
      10.     $moduleViewPath=$this->getViewPath();  //獲取視圖目錄路徑,默認(rèn)是app/themes/custom1/view  
      11.     if(($module=$controller->getModule())!==null)  
      12.         $moduleViewPath.='/'.$module->getId(); //如果存在module,目錄路徑app/themes/custom1/view/moduleId  
      13.     return $controller->resolveViewFile($viewName,$this->getViewPath().'/'.$controller->getUniqueId(),$this->getViewPath(),$moduleViewPath);  
      14. }  
      回到CController獲取具體視圖文件路徑,視圖名稱有三種特殊命名
      1、以//開頭是相對(duì)于應(yīng)用級(jí)別的視圖路徑
      2、以/開頭是相對(duì)于module基本的視圖路徑
      3、以xx.xx是別名視圖
      1. public function resolveViewFile($viewName,$viewPath,$basePath,$moduleViewPath=null)  
      2. {  
      3.     if(empty($viewName))  
      4.         return false;  
      5.   
      6.     if($moduleViewPath===null)  
      7.         $moduleViewPath=$basePath;  
      8.   
      9.     if(($renderer=Yii::app()->getViewRenderer())!==null)  
      10.         $extension=$renderer->fileExtension;  
      11.     else  
      12.         $extension='.php';  
      13.     if($viewName[0]==='/')  
      14.     {  
      15.         if(strncmp($viewName,'//',2)===0)  
      16.             $viewFile=$basePath.$viewName;  
      17.         else  
      18.             $viewFile=$moduleViewPath.$viewName;  
      19.     }  
      20.     else if(strpos($viewName,'.'))  
      21.         $viewFile=Yii::getPathOfAlias($viewName);  
      22.     else  
      23.         $viewFile=$viewPath.DIRECTORY_SEPARATOR.$viewName;  
      24.   
      25.     if(is_file($viewFile.$extension))  
      26.         return Yii::app()->findLocalizedFile($viewFile.$extension);  
      27.     else if($extension!=='.php' && is_file($viewFile.'.php'))  
      28.         return Yii::app()->findLocalizedFile($viewFile.'.php');  
      29.     else  
      30.         return false;  
      31. }  
      在視圖文件中,在對(duì)該主題在的樣式j(luò)s和圖片的引用的需要用到Y(jié)ii::app()- >theme->baseUrl來作為baseUrl。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多