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桌面中心(四) 数据显示
Mar 11 PHP
PHP中动态显示签名和ip原理
Mar 28 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
Feb 03 PHP
二招解决php乱码问题
Mar 25 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
php牛逼的面试题分享
Jan 18 PHP
深入PHP curl参数的详解
Jun 17 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
Yii把CGridView文本框换成下拉框的方法
Dec 03 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 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
制作美丽的拉花
2021/03/03 冲泡冲煮
php中用文本文件做数据库的实现方法
2008/03/27 PHP
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
比较搞笑的js陷阱题
2010/02/07 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
django-初始配置(纯手写)详解
2019/07/30 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
keras在构建LSTM模型时对变长序列的处理操作
2020/06/29 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
师范毕业生自荐信
2013/10/17 职场文书
路政管理专业个人自荐信范文
2013/11/30 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
通报表扬范文
2015/01/17 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
检讨书格式范文
2015/05/07 职场文书
海上钢琴师观后感
2015/06/03 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
mysql函数全面总结
2021/11/11 MySQL