3 钩子hook_field_info

作者:老葛,北京亚艾元软件有限责任公司,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

 

    此时,如果我们启用这个模块,然后进入一个内容类型的管理字段页面,在字段类型的选择列表中,还找不到我们定义的这个字段,如图所示:

图片1.png 

            我们新建的字段类型还没有显示出来

 

    除了实现hook_field_info()钩子以外,我们还需要实现多个钩子,才能让这个模块工作起来。我们按照这样的一个顺序,添加字段、配置字段、输入字段、显示字段,这样的一个顺序来开发我们的模块,这也是我们使用一个字段类型的通常顺序。

 


Drupal版本: