summaryrefslogtreecommitdiffstats
path: root/core/modules/field/modules/email/email.module
blob: 70d47ddc5bd9477b5d71faf7bdd402bd4a4ab113 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php

/**
 * @file
 * Defines a simple e-mail field type.
 */

/**
 * Implements hook_help().
 */
function email_help($path, $arg) {
  switch ($path) {
    case 'admin/help#email':
      $output = '';
      $output .= '<h3>' . t('About') . '</h3>';
      $output .= '<p>' . t('The E-mail module defines a field for storing e-mail addresses, for use with the Field module. E-mail addresses are validated to ensure they match the expected format. See the <a href="@field-help">Field module help page</a> for more information about fields.', array('@field-help' => url('admin/help/field'))) . '</p>';
      return $output;
  }
}

/**
 * Implements hook_field_info().
 */
function email_field_info() {
  return array(
    'email' => array(
      'label' => t('E-mail'),
      'description' => t('This field stores an e-mail address in the database.'),
      'default_widget' => 'email_default',
      'default_formatter' => 'email_mailto',
    ),
  );
}

/**
 * Implements hook_field_info_alter().
 */
function email_field_info_alter(&$info) {
  if (module_exists('text')) {
    $info['email']['default_formatter'] = 'text_plain';
  }
}

/**
 * Implements hook_field_is_empty().
 */
function email_field_is_empty($item, $field) {
  return !isset($item['value']) || $item['value'] === '';
}

/**
 * Implements hook_field_formatter_info_alter().
 */
function email_field_formatter_info_alter(&$info) {
  if (isset($info['text_plain'])) {
    $info['text_plain']['field_types'][] = 'email';
  }
}