上文中后台模板框架已经搭建起来了,但还是有些不协调,像是有两个User标题,或者我们想自己在gii生成时添加或删除些公用的东西。这就需要我们定义自己的gii模板。

我们以CRUD的模板为例,默认的gii模板位置是在:vendor/yiisoft/yii2-gii/generators/crud的default目录下,我们当然可以在此新建一个和default并列的目录,但是并不推荐在这里新建,因为这里是vendor目录,正如上章所说的,vendor目录下的东西尽量不要去更改,这样你在git发布时或团队共享时不需要提交vendor目录,比较方便。

正确的方法是,将default文件夹复制出来,移动到你想移动到的位置,我这里移动到了backend/views/gii/crud目录下,然后更改改backend/common/main-local.php下的gii配置:

$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
'generators' => [ //here
'crud' => [ // generator name
'class' => 'yii\gii\generators\crud\Generator', // generator class
templates' => [ //setting for out templates
'vishun' => '@backend/views/gii/crud/default', // template name => path to template
]
]
],
];

这样,再访问gii中的CRUD生成器就会发现多了一个选择:(如果改的是backend的配置,那么只能通过后台的url访问gii才会出现多出来的选项)

aaarticlea/png;base64,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" alt="" />

记得要改拷贝过来的内容,例如删除掉多出来的标题什么的,然后重新生成一遍,就可以看到改变后的效果了。如果是团队合作,也应该将这个写入到环境中去。

再说下AdminLTE,我们在其官方演示站时,会发现模板集成了很多的漂亮功能,例如在Forms/Advanced Elements中select2,下拉菜单是箭头的样式。用firebug查看其css编发现引用了select2.min.css这个css。再回到我们自己的站点同样看下,便会发现我们站点没有这么一个css。所以我们要着手将其引入,但在此之前,需要先了解Yii2中如何在页面中引入js或者css。下面以引入js为例,css与此相同:

方法一、直接同在html中一样:(不建议使用,会导致依赖顺序错乱)

//外部js文件
<script src="你的js路径/plugins/select2/select2r.min.js">
//或者
<?=Html::jsFile('你的js路径/plugins/select2/select2r.min.js')?>
//内部js
<script> var a='abc' </script>

方法二、用$this->registerJs$this->registerJsFile方法(可控依赖顺序,但是引入外部js时建议用方法三)

$this->registerJs("var options = ".json_encode($options).";", View::POS_END, 'my-options');//引入内部js
$this->registerJsFile('http://example.com/js/main.js', ['depends' => [\yii\web\JqueryAsset::className()]]);//引入外部js文件

方法三、引入外部js式时,利用Yii2新功能注册资源包来部署(功能更强大,例如可以转换less,压缩合并等),可参照backend/assets/AppAsset.php文件:

namespace backend\assets;
use yii\web\AssetBundle; class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/site.css',
];
public $js = [
];
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
];
}

定义此类后,在视图文件中:

backend\assets\AppAsset::register($this);

即可将定义的site.css以及关联的'yii\web\YiiAsset'和'yii\bootstrap\BootstrapAsset'定义的css和js引入。更多功能请看YII2权威指南中的“客户端脚本”和“资源”两个章节。

既然已了解以上引入方法,可以继续我们引入select2的计划,我们先看下我们站点引入了哪些资源,在你copy后的layouts/main.php中:

if (class_exists('backend\assets\AppAsset')) {
backend\assets\AppAsset::register($this);
} else {
app\assets\AppAsset::register($this);
}
dmstr\web\AdminLteAsset::register($this);

先是注册了本来就有的AppAsset,然后又注册了dmstr\web命名空间下的AdminLteAsset,我们追溯到此文件下就会发现里面只引入了vendor/almasaeed2010/dist文件中的AdminLTE.min.css和变动的*.min.css这两个css文件(almasaeed2010文件是我们compose下载yii2-adminlte-asset自动下载的依赖文件),但我们打开vendor/almasaeed2010/adminlte/plugins下,会发现还有很多的功能,我们上方提到的select2也在其中。我们当然可以在AdminLteAsset.php的平级建立Select2Asset.php文件,但理由同上方gii模板时说的,最好不要改动vendor下的文件,所以我们将此文件建立在backend/assets中,具体文件内容可参考:

<?php
namespace backend\assets;
use yii\web\AssetBundle; class Select2Asset extends AssetBundle
{
public $sourcePath = '@vendor/almasaeed2010/adminlte/plugins/select2';//路径
public $css = [
'select2.min.css',//css
];
public $js = [
'select2.min.js'//js
];
public $depends = [
'dmstr\web\AdminLteAsset',//依赖关系
];
}

同时在layouts/main.php中:

backend\assets\Select2Asset::register($this);
// dmstr\web\AdminLteAsset::register($this);

可以将AdminLteAsset这行注释掉,因为我们在Select2Asset中写明了依赖AdminLteAsset,所以会自动注册依赖文件的css和js,这时我们再次查看元素,就会发现多了select2.min.css和select2.min.js,有了这两个我们便可以使用三角样式的下拉菜单了。

以上就这样了,睡觉先。

Yii2的相关学习记录,自定义gii模板和引用vendor中的js、css(四)的更多相关文章

  1. Yii2的相关学习记录,后台模板和gii(三)

    前面已经可以正常登录,但我们需要体验下最常用的增删查改的操作.这里就需要gii,通过gii可以方便的生成表单.表格的框架,不需要我们再写重复的东西. gii访问地址:http://localhost/ ...

  2. Yii2的相关学习记录,alert等美化、confirm异步、session中的flash及小部件的使用(六)

    呃,系统自带的alert.confirm等弹出框实在是难看,作为一个颜控,这能忍? 这里我用的是kartik-v/yii2-dialog,这个是基于bootstrap3-dialog这个来做了一些常用 ...

  3. Yii2的相关学习记录,初始化Yii2(二)

    前面已经将Yii2下载下来了,那我们就需要能实际的使用. 一.初始化,因为我都是在windows系统下,所以用cmd命令打开下载下来的Yii2的根目录.然后运行下面命令: init 会提示选择0为开发 ...

  4. Yii2的相关学习记录,前后台分离及migrate使用(七)

    最近一直忙其它的(其实是懒!),将<深入理解Yii2>看了一遍,一些当初没明白的稍微明了了点,然后又看yii2的图片上传等处理.富文本.restful什么的,但由于没进行到这里,只看也不管 ...

  5. Yii2的相关学习记录,下载Yii2(一)

    原先学习过Yii1的相关知识,虽然也是半懂不懂的,但稍微的结构是了解的.现在利用晚上的时间学习下Yii2的使用,打算建一个后台管理系统,这里记录下,以免自己以后忘记. 目前已看一部分Yii2的权威指南 ...

  6. Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客

    ==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...

  7. java 项目相关 学习记录

    一位资深程序员大牛给予Java初学者的学习路线建议  [任何时期都可以好好看看] https://www.imooc.com/article/8993 https://www.jianshu.com/ ...

  8. Spring Boot学习记录(二)–thymeleaf模板

    自从来公司后都没用过jsp当界面渲染了,因为前后端分离不是很好,反而模板引擎用的比较多,thymeleaf最大的优势后缀为html,就是只需要浏览器就可以展现页面了,还有就是thymeleaf可以很好 ...

  9. Fiddler使用 断点 模拟返回 AutoResponder Mock 模拟数据 相关学习记录

    断点 测试中有时需要改变发出去的请求信息,需要用到打断点的方法.断点包含两种方式: before response:在request请求的时候,未到达服务器之前,一般用来修改请求参数 after re ...

随机推荐

  1. 数据结构(树链剖分):BZOJ 4034: [HAOI2015]T2

    Description 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树中 ...

  2. Introduction to Glide, Image Loader Library for Android, recommended by Google

    In the passed Google Developer Summit Thailand, Google introduced us an Image Loader Library for And ...

  3. How To Create a New User and Grant Permissions in MySQL

    How to Create a New User Let’s start by making a new user within the MySQL shell: CREATE USER 'newus ...

  4. 什么是:VGA SVGA XGA SXGA

    经常可以看到VGA这些专业术语,通常这些重要技术指标指的是液晶屏(TFT LCD)的分辨率. TFT是英文Thin Film Transistor的缩写,中文意思是薄膜晶体管. VGA(Video G ...

  5. python--把一个方法变成属性调用

    # coding=utf-8 ''' 装饰器(decorator)可以给函数动态加上功能,对于类的方法,装饰器一样起作用.Python内置的@property装饰器就是负责把一个方法变成属性调用的: ...

  6. Redis 实现用户积分排行榜

    排行榜功能是一个很普遍的需求.使用 Redis 中有序集合的特性来实现排行榜是又好又快的选择. 一般排行榜都是有实效性的,比如“用户积分榜”.如果没有实效性一直按照总榜来排,可能榜首总是几个老用户,对 ...

  7. Hadoop入门--HDFS(单节点)配置和部署 (一)

    一 配置SSH 下载ssh服务端和客户端 sudo apt-get install openssh-server openssh-client 验证是否安装成功 ssh username@192.16 ...

  8. Ubuntu中使用终端运行Hadoop程序

    接上一篇<Ubuntu Kylin系统下安装Hadoop2.6.0> 通过上一篇,Hadoop伪分布式基本配好了. 下一步是运行一个MapReduce程序,以WordCount为例: 1. ...

  9. JSON字符串与JSON对象的区别及转换

    JSON对象是直接可以使用JQuery操作的格式,和js中的对象一样,可以用对象(类名)点出属性(方法). JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用 ...

  10. App列表之分组ListView

    吸引用户的眼球,是我们至死不渝的追求:      第一时间呈现最有价值的信息,简明大方,告诉客户,你的选择是多么的明智,这正是你寻觅已久的东西. 分组的应用场合还是很多的,有数据集合的地方往往要分组显 ...