Yii2创建多界面主题(Theme)的方法
本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
相关推荐
-
Yii2 GridView实现列表页直接修改数据的方法
什么意思呢?我来简单的描述下,小编妹子提的需求是这样的,你看啊,你这列表页的数据,能不能我就直接在列表上进行点一下就直接修改啊,我再点进去修改多麻烦,太不方便了.这尼玛,这需求,是不是真想给她一棒槌. ok,我们今天就来看看在yii2中如何去利用gridview实现列表上直接修改的功能,很全面哦,我们尽量各种类型的属性都给出实例. 第一步,我们先来部署好yii2-grid 利用composer安装yii2-grid composer require kartik-v/yii2-grid "@de
-
PHP的Yii框架中View视图的使用进阶
视图名 渲染视图时,可指定一个视图名或视图文件路径/别名,大多数情况下使用前者因为前者简洁灵活, 我们称用名字的视图为 视图名. 视图名可以依据以下规则到对应的视图文件路径: 视图名可省略文件扩展名,这种情况下使用 .php 作为扩展, 视图名 about 对应到 about.php 文件名: 视图名以双斜杠 // 开头,对应的视图文件路径为 @app/views/ViewName, 也就是说视图文件在 yii\base\Application::viewPath 路径下找, 例如 //site
-
Yii中CGridView关联表搜索排序方法实例详解
本文实例讲述了Yii中CGridView关联表搜索排序方法.分享给大家供大家参考.具体实现方法如下: 在Yii CGridView 关联表搜索排序实现方法有点复杂,今天看了一老外写的了篇游戏,下面我整理一下与各位朋友分享一下,相信会对大家Yii框架的学习有所帮助. 首先,检查你的blog demo里的protectedmodelsComment.php,确保Comment模型有一个search的方法,如果没有,就用gii生成一个,我下载到的blog demo里倒是没有. 然后,写代码的时间到了,
-
yii2中结合gridview如何使用modal弹窗实例代码详解
在上篇文章给大家介绍了Yii2中如何使用modal弹窗(基本使用),即以创建为例. 实际开发中,我们往往还会遇到列表页数据修改要使用modal的情况,如果是一般的循环展示,相信大多数人看了modal的基本使用都会操作,但是结合gridview估计有些人就开始吃不消了,我们看看如何解决这个问题! 1.gridview的操作增加[更新]按钮,并指定data-toggle data-target class以及data-id的值 [ 'class' => 'yii\grid\ActionColumn'
-
Yii中CGridView实现批量删除的方法
本文实例讲述了Yii中CGridView实现批量删除的方法.分享给大家供大家参考,具体如下: 1. CGridView中的columns添加 array( 'selectableRows' => 2, 'footer' => '<button type="button" onclick="GetCheckbox();" style="width:76px">批量删除</button>', 'class' =&g
-
yii通过小物件生成view的方法
本文实例讲述了yii通过小物件生成view的方法.分享给大家供大家参考,具体如下: 我们以manger为例子: 在生成的models 文件中,找到对应的表manger.php然后找到attributeLabels.比如:'name' => 'Name',这中,将后面的Name修改成想要的字段,比如当前我的是 用户名,则修改为'name'=>'用户名',这里就是小物件要显示的东西. 然后在controller 中model出来 $manger = Manger::model(); 把这个$man
-
Yii把CGridView文本框换成下拉框的方法
本文实例讲述了Yii把CGridView文本框换成下拉框的方法.分享给大家供大家参考.具体实现方法如下: 使用yii的朋友都知道Yii中的CGridView默认显示提文本框了,那么我们要怎么把它转换成下拉框呢?本文就此分析一下解决方法. 默认情况下CGridView会生成一个文本框,但是这并不友好,用户往往希望知道有什么可选的,特别是数据库里存的是数字id的时候,我们希望将数字转换为可读的文本,这时候只需要修改一下表头的"filter"属性就行了,比如: 复制代码 代码如下: <
-
yii2.0之GridView自定义按钮和链接用法
本文实例讲述了yii2.0之GridView自定义按钮和链接用法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?= GridView::widget([ 'dataProvider' => $dataProvider, //'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'
-
yii2.0数据库迁移教程【多个数据库同时同步数据】
本文讲述了yii2.0数据库迁移的方法.分享给大家供大家参考,具体如下: 创建迁移 使用如下命令来创建一个新的迁移: yii migrate/create <name> 必填参数 name 的作用是对新的迁移做一个简要的描述.例如,如果这个迁移是用来往多个数据库同一张表 ( 假设每个数据库都有news表 ) 添加字段的,那么你可以使用addColumn_news (该名称自定义)这个名称并运行如下命令: yii migrate/create addColumn_news 注意:因为 na
-
Yii中CGridView禁止列排序的设置方法
本文实例讲述了Yii中CGridView禁止列排序的设置方法.分享给大家供大家参考,具体如下: Yii中CGridView的功能是用来显示的数据列表.它支持排序,分页,和AJAX数据请求. 下面的代码演示了CGridView禁止列排序的设置方法: 'columns' => array ( array ( 'class' => 'CCheckBoxColumn', 'selectableRows' => '2', 'value' => '$data->id', 'id' =&g
-
Yii CGridView用法实例详解
本文实例讲述了Yii CGridView用法.分享给大家供大家参考,具体如下: CGridView的功能是用来显示的数据列表.它支持排序,分页,和AJAX数据请求. CGridView最好使用 data provider,最好是 CActiveDataProvider . 简单代码如下: $dataProvider=new CActiveDataProvider('Post'); $this->widget('zii.widgets.grid.CGridView', array( 'dataPr
-
Yii视图CGridView列表用法实例分析
本文实例讲述了Yii视图CGridView列表用法.分享给大家供大家参考,具体如下: CGridView列表实例 <!-- 列表 --> <?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'words-grid', 'dataProvider'=>$model->search(),//数据源 'filter'=>$model,//设置过滤器,筛选输入框 'columns'=>a
随机推荐
- Prototype Number对象 学习
- 详解cookie验证的php应用的一种SSO解决办法
- 可以改变一生的五句话
- 解决网页打开是乱码的问题
- Java多线程编程小实例模拟停车场系统
- 浅谈常用字符串与集合类转换的工具类
- 解决node.js安装包失败的几种方法
- 防止登录页面出现在frame中js代码
- Linux下实现免密码登录(超详细)
- java使用OGEngine开发2048
- jQuery实现向下滑出的二级菜单效果实例
- 详解轻巧AMH虚拟主机面板安装使用和GCE云空间搭建网站实例
- c#使用filesystemwatcher实时监控文件目录的添加和删除
- ASP.NET MVC的Localization本地化多语言支持
- laravel使用Redis实现网站缓存读取的方法详解
- 浅谈Vue组件及组件的注册方法
- Java简单工厂模式定义与用法实例分析
- Python测试Kafka集群(pykafka)实例
- springboot 场景启动器使用解析
- vue中实现动态生成二维码的方法