【Yii】主题管理
来源:互联网 发布:台湾uu聊天室软件 编辑:程序博客网 时间:2024/06/07 05:05
YII主题的控制由CThemeManager和CTheme管理,CThemeManager在应用初始化时作为核心组件注册,主题默认路径是app/themes/。
主题配置
由于主题组件在应用初始化时注册,其配置以及很方面,比如在app/themes/下有一个custom1主题
在主配置文件中加入'theme'=>'custom1'键值对,在主题注册的时候会调用 CWebApplication::setTheme($value)初始化主题的名字。
获取主题
主题的获取从控制器渲染视图说起,通过视action方法传递的视图名称获取视图文件的路径
- CController::getViewFile()
- public function getViewFile($viewName)
- {
- if(($theme=Yii::app()->getTheme())!==null && ($viewFile=$theme->getViewFile($this,$viewName))!==false)
- return $viewFile;
- $moduleViewPath=$basePath=Yii::app()->getViewPath();
- if(($module=$this->getModule())!==null)
- $moduleViewPath=$module->getViewPath();
- return $this->resolveViewFile($viewName,$this->getViewPath(),$basePath,$moduleViewPath);
- }
- CTheme::etViewFile()
- /**
- * Finds the view file for the specified controller's view.
- * @param CController $controller the controller
- * @param string $viewName the view name
- * @return string the view file path. False if the file does not exist.
- */
- public function getViewFile($controller,$viewName)
- {
- $moduleViewPath=$this->getViewPath(); //获取视图目录路径,默认是app/themes/custom1/view
- if(($module=$controller->getModule())!==null)
- $moduleViewPath.='/'.$module->getId(); //如果存在module,目录路径app/themes/custom1/view/moduleId
- return $controller->resolveViewFile($viewName,$this->getViewPath().'/'.$controller->getUniqueId(),$this->getViewPath(),$moduleViewPath);
- }
1、以//开头是相对于应用级别的视图路径
2、以/开头是相对于module基本的视图路径
3、以xx.xx是别名视图
- 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
- $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;
- }
0 0
- 【Yii】主题管理
- YII框架分析笔记12:主题管理
- YII 主题设置
- Yii主题的简单操作
- YII url美化管理
- Yii的URL管理
- YII url美化管理
- yii 用户管理 controller
- yii 用户管理 model
- yii 用户管理 视图
- yii 用户管理 配置文件
- YII url美化管理
- YII日志管理
- Yii权限管理
- 关于YII动态切换主题的问题
- 主题切换及其管理
- 主题切换及其管理
- Yii 常量的轻松管理
- floyd判圈法-uva11549
- 2、Ubuntn、Mac、windows共享文件夹
- Android屏蔽HOME键
- LeetCode Longest Common Prefix
- Flex实例【Shangle.net】解析【填坑篇】
- 【Yii】主题管理
- ndk 9编译ffmpeg 2.2.
- &和&&的区别
- PB项目反编译总结
- Myeclipse Struts2 的配置。
- VBA文件对话框的应用(VBA打开文件、VBA选择文件、VBA选择文件夹)
- JNI编程注意事项
- WIN7 下 Qt Creator 安装 QWT
- 编程语言系列(三)--java语言基础知识点总结