You are here

4 钩子hook_field_widget_info

admin 的头像
Submitted by admin on 星期一, 2015-06-29 09:50

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

   让我们实现另一个钩子,向module文件中添加以下代码:

 

/**

 * Implements hook_field_widget_info().

 */

function transliteration_title_field_widget_info() {

  return array(

    'transliteration_title_field' => array(

      'label' => t('Transliteration title'),

      'field types' => array('transliteration_title_field'),

'multiple values' => FIELD_BEHAVIOR_DEFAULT,

    ),

  );

}

    这里我们定义了这个字段的输入控件,字段输入控件的名字,和字段的名字这里是一样的,在Drupal7里面,很多字段类型都采用了这种习惯。当然,一个字段可以有多个控件类型,我们这里只有一个而已。此时,当我们再次访问一个内容类型的管理字段页面时,我们就可以添加“Transliteration title”字段了,如图所示:

 

图片1.png 

          字段类型“Transliteration title”显示了出来

    我们看到,如果我们想要在管理字段页面显示出来我们的新建字段,我们需要实现两个钩子hook_field_info()hook_field_widget_info()

   我们创建一个测试节点类型,比如“test type”,然后向该内容类型添加一个名为“Test”的“Transliteration title”字段,此时一切都能正常工作。但是,当我们配置这个字段,没有我们想要的配置字段,当我们想为这个字段输入内容时,我们发现在节点的输入表单中找不到这个字段。当我们检查这个字段创建的数据库表时,我们发现它并没有包含用来保存用户输入的列,如图所示:

图片2.png 

           字段对应表field_data_field_test的结构

 


Drupal版本: