原文出自我的个人博客:maziang.com
简介
Views模块在Drupal的重要程度不必多说,从Drupal官方网站上可以看出,Views模块是官网上下载量最高的第三方模块。
核心模块:Views实际上是引用了“视图”这个概念,就是说,我们可以在Drupal中把那些节点展示出来,但是没有集中展示的功能,没有按照条件筛选、排序然后展示出来的功能。比如我们想把所有的博客内容放在一起,再把所有的相册内容放在一起,那么就需要Views的帮助。
- PS:之前和Views模块一样重要的还有CCK模块,而在Drupal7发布的时候,已经把CCK这个重要模块的大多数功能集成进系统核心了。因此,Views的第一模块的地位,更没有人动摇了。实际上,因为Views的广泛使用,在Drupal8中,Views也要进入核心模块了。
这里就实际进行一次Views模块的学习,记录一下操作学习记录。
开发环境:
- 系统: Mac OS X 10.9.3
- PHP等: XAMPP
- Drupal: Drupal7.28
- Views: 7.x-3.8
Views的下载地址:Views
安装模块
从上面的地址下载到文件。views-7.x-3.8.tar
解压,得到views文件夹。复制到 drupal/sites/all/modules/ 文件夹下
然后打开Drupal的管理员界面,进入模块选项,就会发现模块的最下方多了Views的栏目。
如图:
我们发现Views模块是依赖于CTools模块的,没有这个模块就没法运行Views,所以我们再到官网上,搜索CTools模块,实际上ctools全名叫做Chaos tool suite,下载压缩包,解压,同样放在 drupal/sites/all/modules/ 目录下就可以了。
实际上ctools也是一个非常强大的模块,有很多功能,以后或许还需要专门学习,这里就先放在这里了。
下载完成后,我们再去看Views模块,就发现可以点选了。
我们把两个复选框点选,然后保存设置。网站提示:
必须启用 Chaos tools 模块以安装 Views UI。
需要继续上述步骤么?
选择继续,开启了ctools模块,这个时候Views模块就被激活了。安装成功。
中文支持
下面尝试多一点中文比较好,因为直接使用的话,Views都是英文的。
我到官网上下载到了这个文件:views-7.x-3.8.zh-hans.po
然后,首页->配置->地区和语言->翻译
在右上角选择导入,导入这个下载的.po文件,画面显示如下:
使用
配置Views有两个入口,第一种是在模块选项下面,在Views UI的最右面有“配置”两个字。
或者,在主页选择“结构”,然后直接就会看到Views。点击进去就是一样的效果。
实际上,刚才我们看到的还是Views,经过刚才的导入po文件,Views已经神奇地变成了“视图”二字。
不过可怜的是,下面的介绍还是英文的,但是我们也可以从下面的英文介绍中了解这个模块的功能:
Manage customized lists of content.
管理自定义的内容列表。
点击进入,界面如下:
令人遗憾的是,好像好不容易导入的中文支持,仅仅只是把Views翻译成了视图,刚才还说导入那么多条目呢,怎么还都是英文的!
稍安勿躁,也许真正的翻译,都在里头吧。好在这些英文也都看得懂,比如Archive、Backlinks等等。这个列表是已经帮我建好的一些默认的视图,也都是建站中常见的视图。本站上面,左上角,除了Home还有一个Archive对不对。
先不做自定义的视图了,先试一试这些已经有的。比如Front page(头版)。
打开这个功能,然后发现可以通过/frontpage来进行访问,于是很开心地输入了这个网址,获得了一个跟首页一样的。这才想起来,自己设置主页的时候很草率,并没有专门设置主页,主页就是一些最新文章的列表,而Frontpage也正好是最新文章的列表,可不是一模一样嘛。这么无聊,能设置什么吗?打开关于Front Page的设置。如图:
可以设置的东西还是很多很多的,首先吧发布日期弄成升序?保存。然后以前的那些文章,就变成了升序。还是超级简单的一个功能,在一定程度上小小的自定义。不过这也就是Views模块的方便之处。如果没有Views模块,直接拿着Drupal,怎样才能弄出来一个按照时间顺序升序来排列的文章列表呢?
其实这只是Views功能的一瞥,Views的各种筛选功能强大了去了,这些使用Drupal核心是达不到的,而且,这如果真的用底层的PHP和数据库对接,再不停地考虑数据库项目;甚至还需要在现实的时候兼顾美工效果,那工作量真是Hold不住哇。
新建用户列表
这里开始尝试一下Views模块的自定义功能。现在想要自定义一个用户列表。
首先,在进入结构->视图,然后新建视图。不要选择从模板新建。
试图名称:用户列表
机读名称:userlist
显示:用户
这个选择很重要,这决定了显示的内容类型。
接下来,生成一个页面,页面标题就是 用户列表,路径添加为userlist
保存并退出。
这个时候,在地址栏输入:http://localhost/Drupal/userlist 就得到了我们的用户列表:
显示的是本网站的三个用户,按照注册顺序逆序排列。
这里只有用户名,或许太简单了,如果我们需要一些更详细的信息和更好的显示,应当怎么办呢?
我们还是来到视图,然后进入编辑。在字段栏目中,点击添加字段。
然后在筛选中找到与用户相关的字段,我们吧“创建日期”、“用户e-mail”、“权限”、“语言”的复选框选定。点击应用。保存。
再回到http://localhost/Drupal/userlist 就可以发现,现在显示的内容就包含刚才选定的几个内容,只不过是非床混乱地不停地书写下来的。这个时候就可以在编辑里面,把格式改为“表格”或者其他的,再进行几个步骤的简单设置,就可以吧用户列表,按照想要的格式,规矩地显示出来了。
如图:
设置里面可以方便地进行设置,比如我觉得E-mail不好听,我甚至可以在字段标签中,把E-mail改为 电邮儿,保存之后,表格中的列标题就变成了 电邮儿。这只是一个修改的例子,里面可以修改的东西远远不止这一点,只要有查询上的需求,几乎都可以通过Views来进行实现。
和CCK进行结合
内容类型中,系统自带的有两种,一种是基本页面、一种是文章。假如我们自定义了一种内容类型,如“职员”,然后我想现实一个只包含“职员姓名”和“职员所使用的变成语言”这两种项目的职员列表怎么办?
首先,职员这种内容类型可能包含有很多很多的字段,比如姓名、性别、职位、薪酬等等。如果没有Views模块,我们一般只能中规中矩地进行显示。现在可以不这样了。
首先,点击结构->视图,然后添加视图,选取描述和路径。
重点在显示这里。第一个框选择“内容”,第二个框选择“职员”,这个很重要。其他的就无所谓了,根据自己的需要调整一下就可以了。
在弄完这些以后,选择继续编辑,在格式标签内的显示这里,吧内容改成字段,然后删除已有字段,添加自己需要的两个字段,分别是“姓名”、“编程语言”。选定以后,点击保存,就可以看到想要的结果了。应该说是非常方便。
第一部分先到这里。关于Views模块,并不是这么简单,关键是里面还有很多很多细节,相关的东西将会在下一个Part进行更细致的讲述。