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函数)
Oct 09 PHP
php学习之简单计算器实现代码
Jun 09 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
Jun 07 PHP
深入for,while,foreach遍历时间比较的详解
Jun 08 PHP
PHP学习笔记(一) 简单了解PHP
Aug 04 PHP
php数组查找函数总结
Nov 18 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
PHP中把有符号整型转换为无符号整型方法
May 27 PHP
PHP计算加权平均数的方法
Jul 16 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 PHP
PHP小程序支付功能完整版【基于thinkPHP】
Mar 26 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
基于jquery的Repeater实现代码
2010/07/17 Javascript
最佳JS代码编写的14条技巧
2011/01/09 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
2012/02/07 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python计算方程式根的方法
2015/05/07 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
2015/08/23 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
Python3.遍历某文件夹提取特定文件名的实例
2018/04/26 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
戴森美国官网:Dyson美国
2016/09/11 全球购物
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
博士学位自我鉴定范文
2013/12/26 职场文书
元旦促销方案
2014/03/15 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
煤矿安全承诺书
2014/05/22 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书