diff --git a/core/modules/field/modules/email/email.info b/core/modules/field/modules/email/email.info index 5c3d3ff929c94c3382130e3ad9baf3e8af5a9840..c5b7437c0e7bad8f933f18074b792529ef352aa0 100644 --- a/core/modules/field/modules/email/email.info +++ b/core/modules/field/modules/email/email.info @@ -4,4 +4,3 @@ package = Core version = VERSION core = 8.x dependencies[] = field -dependencies[] = text diff --git a/core/modules/field/modules/email/email.module b/core/modules/field/modules/email/email.module index 6d955d6bc6698c33c075afff85dc5d32cf75c305..70d47ddc5bd9477b5d71faf7bdd402bd4a4ab113 100644 --- a/core/modules/field/modules/email/email.module +++ b/core/modules/field/modules/email/email.module @@ -27,72 +27,32 @@ function email_field_info() { 'label' => t('E-mail'), 'description' => t('This field stores an e-mail address in the database.'), 'default_widget' => 'email_default', - 'default_formatter' => 'text_plain', + 'default_formatter' => 'email_mailto', ), ); } /** - * Implements hook_field_is_empty(). - */ -function email_field_is_empty($item, $field) { - return !isset($item['value']) || $item['value'] === ''; -} - -/** - * Implements hook_field_widget_info(). - */ -function email_field_widget_info() { - return array( - 'email_default' => array( - 'label' => t('E-mail'), - 'field types' => array('email'), - ), - ); -} - -/** - * Implements hook_field_widget_form(). + * Implements hook_field_info_alter(). */ -function email_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) { - $element['value'] = $element + array( - '#type' => 'email', - '#default_value' => isset($items[$delta]['value']) ? $items[$delta]['value'] : NULL, - ); - return $element; - +function email_field_info_alter(&$info) { + if (module_exists('text')) { + $info['email']['default_formatter'] = 'text_plain'; + } } /** - * Implements hook_field_formatter_info(). + * Implements hook_field_is_empty(). */ -function email_field_formatter_info() { - return array( - 'email_mailto' => array( - 'label' => t('Mailto link'), - 'field types' => array('email'), - ), - ); +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) { - $info['text_plain']['field types'][] = 'email'; -} - -/** - * Implements hook_field_formatter_view(). - */ -function email_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) { - $element = array(); - foreach ($items as $delta => $item) { - $element[$delta] = array( - '#type' => 'link', - '#title' => $item['value'], - '#href' => 'mailto:' . $item['value'], - ); + if (isset($info['text_plain'])) { + $info['text_plain']['field_types'][] = 'email'; } - return $element; } diff --git a/core/modules/field/modules/email/lib/Drupal/email/Plugin/field/formatter/MailToFormatter.php b/core/modules/field/modules/email/lib/Drupal/email/Plugin/field/formatter/MailToFormatter.php new file mode 100644 index 0000000000000000000000000000000000000000..388acd92f20dd7dc3818d104881893ecf6f2e47d --- /dev/null +++ b/core/modules/field/modules/email/lib/Drupal/email/Plugin/field/formatter/MailToFormatter.php @@ -0,0 +1,46 @@ + $item) { + $elements[$delta] = array( + '#type' => 'link', + '#title' => $item['value'], + '#href' => 'mailto:' . $item['value'], + ); + } + + return $elements; + } + +} diff --git a/core/modules/field/modules/email/lib/Drupal/email/Plugin/field/widget/EmailDefaultWidget.php b/core/modules/field/modules/email/lib/Drupal/email/Plugin/field/widget/EmailDefaultWidget.php new file mode 100644 index 0000000000000000000000000000000000000000..bb4e8595ea7042a6afd601db3bf53c5a1ac170d0 --- /dev/null +++ b/core/modules/field/modules/email/lib/Drupal/email/Plugin/field/widget/EmailDefaultWidget.php @@ -0,0 +1,39 @@ + 'email', + '#default_value' => isset($items[$delta]['value']) ? $items[$delta]['value'] : NULL, + ); + return $element; + } + +}