聚焦:CCK
CCK是一个极其灵活的表单创建框架。虽然Drupal的核心模块已经提供了创建不同内容类型(比如 Job Opening或 Application)的功能。但是它没有提供向新创建表单里面添加数据域的机制,在CCK被集成到Drupal的内核中以前(期望将来的版本会这样)。安装CCK是每个Drupal站点必须的第一步。在一个新安装的Drupal中,只有两个内容类型:Story 和Page。他们基本上是相同的,都是一个包含一个标题域和一个主体域的表单。任何新创建的内容类型也都是这样(这里主体域是可选项)。如果我们想在内容类型中添加其他的数据项,需要安装一个像CCK这样的第三方模块。图3-2显示了在用cck添加新的数据项之前的Strory内容类型。
在启用了CCk模块之后,你可以向内容类型中任意添加数据项。结合上Drupal核心模块创建自定义内容类型的功能,我们就可以用CCK创建完全自定义的表单,自由添加内容了。图3-3展示了添加了诸如文本域,图像域,一组单选按钮等自定义数据项的表单。
在添加了数据域后,CCK可以自动完成信息到数据库的保存任务,在数据提交之后,就可以用各种各样的方式显示数据了。

图3-3 添加了新的数据域的Story内容类型表单
数据域
从功能上讲,CCK建立两种用户端组件。第一种就是数据域,这些数据域让用户可以把数据保存到你的站点上,例如:整数,小数,文本。当我们在选择一个数据域添加到内容类型上去的时候,首先你必须决定在当前场合所需要的数据类型。输入到表单的基本数据类型如文本,数字或者一些更特殊的,比如一个节点或用户的关系,都包含在CCK核心的数据域类型中,如表3-1所示。其它的模块比如 Fivestar (http://drupal.org/project/fivestar), ImageField (http://drupal.org/project/imagefield), 和 Date (http://drupal.org/project/date), 可以添加更多的数据域类型。我们将在以后的第4,7,9章中讨论到。你可以到http://drupal.org/
project/Modules/category/88.看到全部CCK数据项类型的介绍。
表 3-1. CCK 内建的数据域类型
| 数据项类型 | 一般用法 |
|---|---|
| Integer | 存储数字的最有效方式。用做产品编号,标号,任何用到数字的地方,比如专辑的张数,会议的出席人数 |
|
Decimal |
存储带小数数字的最有效方式,用于金额 |
| Float | 存储数字的最精确方式,试用于高精确度的场合,比如科学测量 |
| text |
可以存储任何的文本串。用于名字,描述,也可以用于更长的文本内容比如传记 |
| Node Reference | 节点引用,可以在一个数据域中引用任何站上的节点。用于在内容间建立关联。 |
| User Reference | 用户引用,可以在一个数据域中引用任何用户。用于在一个用户和一个内容间建立关联,比如 销售经理和联系人 |
|
CCK 与 Taxonomy 比较 Taxonomy和CCK都可以用来在创建内容的表单上创建可选的列,下面有一些指导意见来帮助你做出选择:
|
Widgets
数据的类型一旦确定,就该考虑它在表单的外观了。在CCK的术语中,表单的元素被叫做widgets。你是否需要一个下拉列表框或者一组单选按钮哪?还是需要选择框或一个自动填充的文本域?选择widget和用户输入数据紧密相关。记住widgets的不同适合你选择的数据类型相关的.CCK中包含的Widget类型显示在表3-2中,在数据项中,相关的模块经常出现更多的可选widget。
表3-2 CCK中内建的Widget类型
| Widget类型 | 一般用法 |
| Text field | 这种widget用来输入大段的文本,比如传记,产品介绍。即支持普通文本也支持格式化文本 |
|
Single on/off checkbox |
用于只需回答是或不是的地方。例如用来询问用户是否要添加一个邮件列表 |
| Checkboxes/Radio buttons | 用于用到多项选择的地方。Checkboxes用于支持多选的数据域。通常,在性别数据域中用单选,而在喜欢的颜色数据域中用Checkboxes |
| Select list |
下拉列表框是checkboxes 和 radio buttons的一种变体。用于从多个选项中选取一个,可以占一行的空间显示多个选项 |
| Autocomplete text field | 输入前面几个字符,可以自动提示输入的文本框。比如输入“st”,就会有相关的提示,如“Stewart,” “Studebaker,”和“Style“。用于要选择的条目太多,下拉列表不好显示的地方。但是这要求用户知道开头的字母 |
Text area (multiple rows) |
这种widget用来输入大段的文本,比如传记,产品介绍。即支持普通文本也支持格式化文本 |
格式化
和输入数据项的配置不同,格式化工具让你更够调整显示在用户站点上的数据的样式,例如,整数可以显示为在千位上加逗号。如图3-4所示

其他的模块可能添加附加的格式,给你一个很多显示的方式,例如在第七章中用到的ImageCache模块就是一个例子,它允许你的显示图像后改变它的大小。记住格式是依赖于数据的类型的,如果你要显示数字,你可以建立整数或者浮点数的数据项。CCK 不允许你在数据项建好以后改变数据的类型,你需要删除这个项,然后添加一个你需要的类型的项

Comments
Post new comment