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 相关文章推荐
在windows iis5下安装php4.0+mysql之我见
Oct 09 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
Sep 11 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
Sep 30 PHP
PHP 开发环境配置(测试开发环境)
Apr 28 PHP
php自定义的格式化时间示例代码
Dec 05 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
CentOS下PHP安装Oracle扩展
Feb 15 PHP
Yii2 assets清除缓存的方法
May 16 PHP
PHP文件操作详解
Dec 30 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
Yii框架通过请求组件处理get,post请求的方法分析
Sep 03 PHP
Laravel框架自定义分页样式操作示例
Jan 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
人大复印资料处理程序_补充篇
2006/10/09 PHP
ThinkPHP路由详解
2015/07/27 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
2015/03/15 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
k8s node节点重新加入master集群的实现
2021/02/22 Javascript
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
酒店行政人事部经理职务说明书
2014/02/26 职场文书
元旦联欢会感言
2014/03/04 职场文书
经营理念标语
2014/06/21 职场文书
公司领导班子对照材料
2014/08/18 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
Python学习开发之图形用户界面详解
2021/08/23 Python
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js