作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
接下来,我们向module文件中添加以下代码:
<?php
/**
* Implements hook_field_info().
*/
function transliteration_title_field_info() {
return array(
'transliteration_title_field' => array(
'label' => 'Transliteration title',
'description' => t('This field stores and renderes transliteration title.'),
'instance_settings' => array(
'size' => 255,
'upper_lower_case' => 'strtolower',
'source_field_id' => 'title',
),
'default_widget' => 'transliteration_title_field',
'default_formatter' => 'transliteration_title_default',
),
);
}
我们在这里实现了hook_field_info(),在这个钩子中,我们返回了一个关联数组,通过这个关联数组,我们定义了一个新的字段transliteration_title_field,它包含以下键:
label:表示这个字段的名字。
description: 表示这个字段的描述。
instance_settings: 表示这个字段实例的配置,这里给出的是默认配置,在创建好该字段后,可以修改这一配置,这个配置中的键是随意的,取决于你的实际需要。这里我们包含了三个键,size是默认textfield的大小,upper_lower_case表示字符串大小写的情况, source_field_id表示源字段的机读名字。
default_widget:默认的字段输入控件。这里为transliteration_title_field。
default_formatter:默认的字段显示格式器。这里为transliteration_title_default。
此时,如果我们启用这个模块,然后进入一个内容类型的管理字段页面,在字段类型的选择列表中,还找不到我们定义的这个字段,如图所示:
我们新建的字段类型还没有显示出来
除了实现hook_field_info()钩子以外,我们还需要实现多个钩子,才能让这个模块工作起来。我们按照这样的一个顺序,添加字段、配置字段、输入字段、显示字段,这样的一个顺序来开发我们的模块,这也是我们使用一个字段类型的通常顺序。