Yii2创建多界面主题(Theme)的方法


Posted in PHP onOctober 08, 2016

本文实例讲述了Yii2创建多界面主题(Theme)的方法。分享给大家供大家参考,具体如下:

Yii2界面主题上的设计总体上和Yii1.x保持一致,区别在于两个地方:

1. 由于Yii2引入了独立的视图(View)类,因此界面主题(Theme)也交由视图来管理;

2. 视图文件和Web资源在目录上做了分离(在应用程序模板中,分别对应于views和web目录)

以高级应用程序模板为例,

首先在frontend/views和frontend/web目录下分别创建一个themes/{your theme name}目录,比如themes/basic。

然后在应用程序配置中,修改配置如下:

'view' => [
  'theme' => [
    'pathMap' => ['@frontend/views' => '@frontend/themes/basic/views'],
    'baseUrl' => '@web/themes/basic',
  ],
],

修改AppAssets的$baseUrl变量为:

class AppAsset extends AssetBundle
{
  public $basePath = '@webroot';
  public $baseUrl = '@web/themes/basic';
...
}

最后在views/themes/basic下面创建页面(如site.php),在web/themes/basic下面创建资源(如css/site.css)。

这样,你就可以使用这个新建的界面主题了,在渲染视图时,Yii2会首先查找你定义的theme目录,然后查找默认目录。

要创建多界面主题,只需要按相同步骤在themes目录下添加新的theme,比如themes/advanced。

如果要在视图文件中显式引用某个界面主题下的资源,可以使用 $this->theme->baseUrl ...

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php获得文件扩展名三法
Nov 25 PHP
检查url链接是否已经有参数的php代码 添加 ? 或 &
Feb 09 PHP
PHP计算2点经纬度之间的距离代码
Aug 12 PHP
PHP Switch 语句之学习笔记
Sep 21 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
Symfony2实现在controller中获取url的方法
Mar 18 PHP
PHP错误机制知识汇总
Mar 24 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
yii框架搜索分页modle写法
Dec 19 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
Apr 15 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 PHP
php微信开发之自定义菜单完整流程
Oct 08 #PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 #PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
Oct 08 #PHP
ThinkPHP发送邮件示例代码
Oct 08 #PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 #PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 #PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
Oct 08 #PHP
You might like
PHP中文汉字验证码
2007/04/08 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
匹配任意字符的正则表达式写法
2010/04/29 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
Vue插件之滑动验证码
2019/09/21 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
bpython 功能强大的Python shell
2016/02/16 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
环境科学专业大学生自荐信格式
2013/09/21 职场文书
城市轨道专业个人求职信范文
2013/09/23 职场文书
测绘工程本科生求职信
2013/10/10 职场文书
中专生求职自荐信范文
2013/12/22 职场文书
读书活动实施方案
2014/03/10 职场文书
大学军训决心书
2015/02/05 职场文书
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python
python中subplot大小的设置步骤
2021/06/28 Python
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS