Yii2创建多界面主题(Theme)
2016-06-28 17:22
489 查看
Yii2界面主题上的设计总体上和Yii1.x保持一致,区别在于两个地方:
1. 由于Yii2引入了独立的视图(View)类,因此界面主题(Theme)也交由视图来管理;
2. 视图文件和Web资源在目录上做了分离(在应用程序模板中,分别对应于views和web目录)
以高级应用程序模板为例,
首先在frontend/views和frontend/web目录下分别创建一个themes/{your theme name}目录,比如themes/basic。
然后在应用程序配置中,修改配置如下:
修改AppAssets的$baseUrl变量为:
最后在views/themes/basic下面创建页面,在web/themes/basic下面创建资源(如css/site.css)。
这样,你就可以使用这个新建的界面主题了,在渲染视图时,Yii2会首先查找你定义的theme目录,然后查找默认目录。
要创建多界面主题,只需要按相同步骤在themes目录下添加新的theme,比如themes/advanced。
如果要在视图文件中显式引用某个界面主题下的资源,可以使用 $this->theme->baseUrl ...
1. 由于Yii2引入了独立的视图(View)类,因此界面主题(Theme)也交由视图来管理;
2. 视图文件和Web资源在目录上做了分离(在应用程序模板中,分别对应于views和web目录)
以高级应用程序模板为例,
首先在frontend/views和frontend/web目录下分别创建一个themes/{your theme name}目录,比如themes/basic。
然后在应用程序配置中,修改配置如下:
'components'=>[ ...
'view' => [ 'theme' => [ 'pathMap' => ['@app/views' => '@app/views/themes/basic'], 'baseUrl' => '@web/themes/basic', ], ],
... ]
修改AppAssets的$baseUrl变量为:
class AppAsset extends AssetBundle { public $basePath = '@webroot'; public $baseUrl = '@web/themes/basic'; ... }
最后在views/themes/basic下面创建页面,在web/themes/basic下面创建资源(如css/site.css)。
这样,你就可以使用这个新建的界面主题了,在渲染视图时,Yii2会首先查找你定义的theme目录,然后查找默认目录。
要创建多界面主题,只需要按相同步骤在themes目录下添加新的theme,比如themes/advanced。
如果要在视图文件中显式引用某个界面主题下的资源,可以使用 $this->theme->baseUrl ...
相关文章推荐
- PHP匿名函数的使用
- FFMpeg分析2:AVInputFormat和AVOutputFormat
- Thinkphp用exp表达式执行mysql语句,查询某字段不为空is not null,自动增值
- 使用ContentProvider 管理联系人
- php的序列化和反序列化有什么好处?
- php 文件分页类
- 解析PHP多种序列化与反序列化的方法
- thinkphp3.2与phpexcel带图片生成 完美案例
- FileOutputStream类
- PHP 数组和字符串互相转换实现方法
- thinkPHP 报错
- php防注入--sql
- Yii2.0框架的介绍和简单部署
- php学习笔记一
- 什么是PHP闭包???
- 当执行php脚本时用户关闭浏览器会发生什么?
- Cisco交换机STP--解决广播风暴
- php学习过程问题记录
- laravel请求
- php 连接sql 的时候无法识别地域