CCK & Views 模块使用小结(Drupal6.x)之四

来源:互联网 发布:醋昆布 知乎 编辑:程序博客网 时间:2024/04/29 02:55

CCK & Views 模块使用小结(Drupal6.x)之四


开始Views的总结不是很容易,与CCK不同,CCK的应用反复在字段添加、编辑、设置之间,往返于多个页面,但其实过程是比较单一的,因为每个 字段的处理都相对独立。Views,特别是Views2,在一个界面中完成了所有的工作,各个参数之间相互关联,在我看来,难度确实要高于CCK很 多...

但Views确实是让人惊喜的,特别对于我这样的程序盲。尽管如上所说它拥有太多的关联的参数,但Views2提供了尽量友好的方式,来进行相应功能的设置。

因为Views是一组查询,所以,根据不同的主表(primary table)Views被分为节点Node、评论Comment、节点修订Node revision、文件File、术语Term、用户User几个类型。您希望抽取站内某些注册的用户信息并显示出来,那么选择Views应主要考虑 User类型。 Views2安装后提供了很多预置的Views,可以启用、编辑查看相应的设置。

Views是一整套工具,因此除了上述核心内容之外,还提供了数据输入、输出的工具,控制缓存、预览等功能的设置,以及提供对Views1版本的转换。

后面将以创建具体的内容为例,为我们之前的本本创建一系列的“视图”,具体需求后面描述。

插播一项关于View Reference模块的信息

View Reference是CCK模块,用来为节点提供Views的引用,就在今天(2008-Aug-30),View Reference发布了6.x-2.0版本。

现在,View Reference终于增加了对arguments的支持(包括php代码模式的arguments)。这意味着Views的应用灵活性再进一步。

将Views与CCK结合,是Views应用的重要方式之一。

我们将可能存在的需求罗列一下,然后尝试使用Views来完成这些需求,最后再来看看,Views都为我们提供了什么。

关于本本的一些扩展需求

通过CCK模块,我们创建了符合展现一个“本本”所需要的相关信息,但最终,它们都以一篇文章的方式表现了出来。我们的客户不会仅仅满足于这种形式的表现,那么我们可以考虑通过如下的形式来表现这些产品:

本期主打,这是比较有意思的一个功能,我们最新的本本比如Macbook pro,或者按照某个规则指定的产品,将以独立的形式出现在首页顶部的某个位置,类似这个样子(抱歉,这不是Macbook):

分类产品,也是很典型的样式,比如我们按Macbook、MacBook air或者Macbook pro分类展现我们的新本本,前5款(或者更少/更多)将出现在这个分类产品列表里面,类似这个样式:

产品列表,对于客户快速查阅本本的型号、价格和规格,这个模式可能更方便,没有参考图,类似最常见的Excel电子表单。

不好意思,拖的越来越久了...

需求分析——本期主打

从前面给出的本期主打样图来看,构成元素还是比较简单:一幅图片、三组文字(权且认为是简述、标题、摘要)以及一个More按钮。这些元素的关系也 很简单,都是某主打产品节点信息的一部分。至于布局,按我的惯性理解,CSS可以完成大部分的布局需求,所以最后应该是以使用CSS润饰收尾的。

知道了这部分内容的构成,主要思路就很简单了:
1、抽取节点的内容(字段)——》2、设置基本布局——》3、CSS细节调整;
其中第1、2部分就是通过Views来实现的。
当然,我们还需要考虑其他的问题,才能最终满足实际应用,比如:

这项内容(本本)的状态,是否允许未发布的内容(本本)也显示出来?要查看(访问)这项内容,是否需要某些权限的许可(比如访客是否可以直接看到——当然)?再或者,以什么标准判定内容是“本期主打”?

等等,这些方面的问题/需求,也大多能在Views中得到解决。

关子卖的够多了,下面开始进入具体的Views操作。

创建一个Views(定制视图)

快速创建一个Views

进入 Administer ? Site building ? Views 页面(路径admin/build/views);

点击 Add 添加一个 Views,如图设置之后点击继续;
 

进入Views编辑页面,各区域名称分别为如下所示,不求精确,仅进行辨识;
在页面添加分析区下拉菜单处选择区块Block,然后点击增加显示(Add display);在Views设置区Fields部分点击右上角的十字图标,开始添加字段,Views设置区下方将呈现如下设置界面;

 


 

在字段组Group下拉框处,选择Content,点选如下几项;
 Content: Image: 外观 (field_benben_images);Content: Text: 特性 (field_benben_feature);如图所示: