Drupal6.x中CCK & Views 模块使用小结(二)
现在我们来创建存储本本外观的字段,如前设定,是采用图片类型的。在CCK扩展模块中,6.x版本下有两个可选途径:imagefield、 imceimage。这两个模块各具特点,imagefield具备丰富直观的设置界面,而imceimage结合imce模块,具备更强大的文件管理功能,这个根据需要来选用。
供选择参考的更细节一些的差别是:
imagefield特点是:
imagefield可以指定上传图片最小分辨率、最大分辨率,可以指定单个上传图片文件最大文件大小、每个文章中总计最大的上传文件大小,还可以预先设置ALT文本和Title文本;结合token模块在设置字段时可以使用通配标记(token)为路径、ALT文本和Title文本指定预置设置。这些设置对于操作员编辑时是不可更改的,因而可以更好的保证上传的图像文件按照预定的方式存储、标记;但随之的问题是,每个上传的imagefield都是独立的记录,假如在多个文章中需要用到同一个图片,就需要多次上传,这是一个缺点。
imceimage特点:
imceimage特性不多,大部分功能如上传、调整大小、生成缩略图等主要由IMCE来完成,唯一的,对应imagefield的缺点,imceimage可以在配置的文件库中重复使用已有的图片,而不同重新上传。
对于这两个模块的选择,我的个人建议是,需要固定出现的图片、无需重复利用的图片采用imagefield,比如本本的尺寸标记图;而可能需要重复利用的图片,使用imceimage,比如本本制造商的LOGO。
创建imagefield图像字段
大部分设置方式和文本类型的一致,没有特殊的地方抓图说明就是了,先是创建字段的第一步,如图:
指定控件类型,imagefield只有image控件供选用。
点击继续进入设置界面。图像类型的字段设置同样也是三组:基本信息、当前内容类型设置以及全局设置(关于当前内容类型设置和字段设置后面会有描述)。
当前内容类型设置各选项如下:
其中显示分组和帮助文本域文本类型的一样,属于通用属性,不再描述。先看看下图中这些部分:
图像最小分辨率、最大分辨率以WIDTHxHEIGHT (例如640x480)指定了允许上传、显示的图像尺寸,当小于指定尺寸时拒绝上传,大于指定尺寸时则自动调整尺寸至允许值。都设置为0则不做限制;
允许上传文件扩展名指定了允许的文件类型,均以空格间隔的扩展名作为标记。
文件路径确定了图片上传后保存于"files" 的相对位置,您可以直接输入路径指定,也可以采用下面提供的标记(Token)自动生成,关于标记(Token)的介绍,可以直接查看其说明信息。我的设置为:benben\[uid]\[site-date],上传的图片将保存在"files" 文件夹下benben\用户ID\当前日期命名的文件夹内。
每个文件最大上传大小和每个节点最大上传大小,可以对上传文件大小进行限制,如果留空最大大小是由php.ini设置最大上传限制确定的。我这里不做设置。
当鼠标在图像上悬停片刻,会出现设置的ALT文本。我们在这里可以用两种方式来控制ALT文本的设置。启用自定义ALT文本,操作员创建图像时可以自定指定,默认ALT文本则使用标记(tokens)进行设置,用法同上。
Ttile文本设置方式与ALT文本类似,不再赘述。
全局设置各选项如下:
必须(Required)值数量(Number of values)默认列表值(Default list value)处理列表值的方式(How should the list value be handled必须、值数量,略过不表;
默认列表值,Drupal为上传的图像提供了列表样式,即把图片附在文章末。这里你可以确定在这里是否使用该功能。选择罗列则出现在文末列表中,否则可选择隐藏;
处理列表值的方式,可以让用户为每个文件自行配置(User Configurable),也可以强制按照默认列表值来处理(Enforce Default)。
增加图像类字段的方式说完了,还有四个类型的需要处理,先休息一下。
本本单价,数字类型的;本本评价,评论引用类型的;生产厂商网址,网址类型的;意见反馈邮箱,邮箱类型的;
创建数字、引用、网址、邮箱类型的字段
通过文本、图像类型字段的设置,我们可以看到一些CCK字段类型的共同点:
1、每个类型的字段都包含一组基本信息,即机器识读的“字段名称-FieldName”,用户识读的“标签-Label”,存储数据的“字段类型-Field type”以及处理数据录入的“控件类型-Widget type”。除标签、控件类型可以在创建后再次更改外,另外两项一旦设定就不能再变更,因此创建之前必须做好预期的设定。我个人的命名习惯是,通过下划线间隔,依次为内容类型、字段名、字段名分支。这会有一点例外,就是重复应用到多个内容类型的字段,不应采用这种命名方式;2、在针对具体内容类型私有设置中,则对字段“默认值-Default value”,字段的“显示分组-Display in group”以及“帮助文本-Help text”的信息进行设置,然后就是一些和字段类型相关的参数设置,比如图像(文件类)的存储路径、上传大小限制、命名规则等。对于这些与类型相关的设置选项,个人感觉主要在对这些类型的特点和应用需求的理解,比如,我们需要添加报价,作为应用于价格的数字类型字段,首先我想到的是保证价格的精确性,那就不能用整数类型了,再就是书写习惯,货币通常都是前缀货币符号,数字部分千位逗点分隔并保留两位小数的,这些需求都要在CCK字段的设置过程成给予确定(下一步CCK字段显示会再描述)。直接阅读这些字段各项设置的说明即可弄明白用法和注意事项,因为我们不是做说明书,就不一一列举了。3、全局设置组内的参数,是应用到所有引用了该字段的内容类型中的设置。如是否是“必要字段-Required”,“字段数据的个数-Number of values”以及“允许的值-Allowed values”等。再就是不同字段类型独有的公用属性。
每个类型的字段都包含一组针对某个发生引用内容类型的私有设置,以及一组用于所有引用发生引用内容类型的全局设置。这是因为,在CCK2中,可在不同类型的内容中引用同一个字段。通过这种方式可以降低重复维护多个字段的投入,也可以降低数据库表的复杂程度(个人看法)——虽然这个方法貌似存在一些问题(最最最后面,会发一些“牢骚 ”说说CCK2、Views的长短处)。在本例中,可以假设还存在一个“报价”内容类型,也需要一个本本的图片,我们可以如下图那样,仅需一次点击就添加这个字段:
添加完所有字段之后的管理字段界面如图,下一部分我们开始增加字段组(Add group)和字段显示(Display fields)的设置。