function hook_field_info

Define Field API field types.

Return value

An array whose keys are field type names and whose values are arrays describing the field type, with the following key/value pairs:

  • label: The human-readable name of the field type.
  • description: A short description for the field type.
  • settings: An array whose keys are the names of the settings available for the field type, and whose values are the default values for those settings.
  • instance_settings: An array whose keys are the names of the settings available for instances of the field type, and whose values are the default values for those settings. Instance-level settings can have different values on each field instance, and thus allow greater flexibility than field-level settings. It is recommended to put settings at the instance level whenever possible. Notable exceptions: settings acting on the schema definition, or settings that Views needs to use across field instances (for example, the list of allowed values).
  • default_widget: The machine name of the default widget to be used by instances of this field type, when no widget is specified in the instance definition. This widget must be available whenever the field type is available (i.e. provided by the field type module, or by a module the field type module depends on).
  • default_formatter: The machine name of the default formatter to be used by instances of this field type, when no formatter is specified in the instance definition. This formatter must be available whenever the field type is available (i.e. provided by the field type module, or by a module the field type module depends on).
  • no_ui: (optional) A boolean specifying that users should not be allowed to create fields and instances of this field type through the UI. Such fields can only be created programmatically. Defaults to FALSE.

See also

hook_field_info_alter()

Related topics

14 functions implement hook_field_info()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

datetime_field_info in drupal/core/modules/datetime/datetime.module
Implements hook_field_info().
email_field_info in drupal/core/modules/email/email.module
Implements hook_field_info().
entity_reference_field_info in drupal/core/modules/entity_reference/entity_reference.module
Implements hook_field_info().
field_entity_field_info in drupal/core/modules/field/field.module
Implements hook_entity_field_info() to define all configured fields.
field_test_field_info in drupal/core/modules/field/tests/modules/field_test/field_test.field.inc
Implements hook_field_info().

... See full list

4 invocations of hook_field_info()
field_help in drupal/core/modules/field/field.module
Implements hook_help().
field_sync_field_status in drupal/core/modules/field/field.module
Refreshes the 'active' and 'storage[active]' values for fields.
field_system_info_alter in drupal/core/modules/field/field.module
Implements hook_system_info_alter().
_field_info_collate_types in drupal/core/modules/field/field.info.inc
Collates all information on field types, widget types and related structures.

File

drupal/core/modules/field/field.api.php, line 159

Code

function hook_field_info() {
  return array(
    'text' => array(
      'label' => t('Text'),
      'description' => t('This field stores varchar text in the database.'),
      'settings' => array(
        'max_length' => 255,
      ),
      'instance_settings' => array(
        'text_processing' => 0,
      ),
      'default_widget' => 'text_textfield',
      'default_formatter' => 'text_default',
    ),
    'text_long' => array(
      'label' => t('Long text'),
      'description' => t('This field stores long text in the database.'),
      'settings' => array(
        'max_length' => '',
      ),
      'instance_settings' => array(
        'text_processing' => 0,
      ),
      'default_widget' => 'text_textarea',
      'default_formatter' => 'text_default',
    ),
    'text_with_summary' => array(
      'label' => t('Long text and summary'),
      'description' => t('This field stores long text in the database along with optional summary text.'),
      'settings' => array(
        'max_length' => '',
      ),
      'instance_settings' => array(
        'text_processing' => 1,
        'display_summary' => 0,
      ),
      'default_widget' => 'text_textarea_with_summary',
      'default_formatter' => 'text_summary_or_trimmed',
    ),
  );
}