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 相关文章推荐
一个简单实现多条件查询的例子
Oct 09 PHP
PHP垃圾回收机制简单说明
Jul 22 PHP
基于php常用正则表达式的整理汇总
Jun 08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
PHP中基本HTTP认证技巧分析
Mar 16 PHP
PHP获取数组最大值下标的方法
May 12 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
joomla组件开发入门教程
May 04 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 PHP
thinkPHP实现基于ajax的评论回复功能
Jun 22 PHP
PHP PDOStatement::fetchObject讲解
Feb 01 PHP
解决在Laravel 中处理OPTIONS请求的问题
Oct 11 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分页显示制作详细讲解
2006/12/05 PHP
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
javascript中的float运算精度实例分析
2010/08/21 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
Python删除空文件和空文件夹的方法
2015/07/14 Python
Django中处理出错页面的方法
2015/07/15 Python
Python多进程同步简单实现代码
2016/04/27 Python
python在非root权限下的安装方法
2018/01/23 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
python实现图片上添加图片
2019/11/26 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
运动会四百米广播稿
2014/01/19 职场文书
献爱心活动总结
2014/05/07 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
Win11查看设备管理器
2022/04/19 数码科技