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 可阅读随机字符串代码
May 26 PHP
str_replace只替换一次字符串的方法
Apr 09 PHP
PHP 自定义错误处理函数的使用详解
May 10 PHP
php编写的抽奖程序中奖概率算法
May 14 PHP
PHP多态代码实例
Jun 26 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
Dec 08 PHP
浅谈关于PHP解决图片无损压缩的问题
Sep 01 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
laravel-admin的图片删除实例
Sep 30 PHP
php报错502badgateway解决方法
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
2020最新CPU的性能排名
2020/04/02 数码科技
PHP 高手之路(一)
2006/10/09 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
php pdo操作数据库示例
2017/03/10 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
2019/05/29 PHP
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
TypeScript入门-接口
2017/03/30 Javascript
Eclipse + Python 的安装与配置流程
2013/03/05 Python
详解django三种文件下载方式
2018/04/06 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
PyQt5每天必学之组合框
2018/04/20 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
简单的Python调度器Schedule详解
2019/08/30 Python
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
爱岗敬业演讲稿范文
2014/01/14 职场文书
考试退步检讨书
2014/01/15 职场文书
文明好少年事迹材料
2014/08/19 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
学校捐款活动总结
2015/05/09 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
采购员工作总结范文
2015/08/12 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers