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
支持oicq头像的留言簿(一)
Oct 09 PHP
PHP array_push 数组函数
Dec 26 PHP
php的ajax简单实例
Feb 27 PHP
php实现文件下载实例分享
Jun 02 PHP
ThinkPHP3.1查询语言详解
Jun 19 PHP
使用PHP接受文件并获得其后缀名的方法
Aug 05 PHP
YII CLinkPager分页类扩展增加显示共多少页
Jan 29 PHP
php处理复杂xml数据示例
Jul 11 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
PHP格式化显示时间date()函数代码
Oct 03 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 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日期时间函数的高级应用技巧
2009/05/16 PHP
php debug 安装技巧
2011/04/30 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
PHP中的self关键字详解
2019/06/23 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
Python列表操作方法详解
2020/02/09 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
暇步士官网:Hush Puppies
2016/09/22 全球购物
联想中国官方商城:Lenovo China
2017/10/18 全球购物
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
医院实习接收函
2014/01/12 职场文书
无偿献血倡议书
2014/04/14 职场文书
爱护公物演讲稿
2014/09/09 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
借钱欠条怎么写
2015/07/03 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书