diff --git a/core/modules/field/modules/email_field/email_field.info b/core/modules/field/modules/email_field/email_field.info new file mode 100644 index 0000000..3e5f6d1 --- /dev/null +++ b/core/modules/field/modules/email_field/email_field.info @@ -0,0 +1,7 @@ +name = Email +description = Defines a field type for email addresses +package = Core +version = VERSION +core = 8.x +dependencies[] = field +dependencies[] = text diff --git a/core/modules/field/modules/email_field/email_field.install b/core/modules/field/modules/email_field/email_field.install new file mode 100644 index 0000000..a7f6c9d --- /dev/null +++ b/core/modules/field/modules/email_field/email_field.install @@ -0,0 +1,17 @@ + array( + 'type' => 'varchar', + 'length' => 254, + 'not null' => FALSE, + ), + ); + return array( + 'columns' => $columns, + ); +} diff --git a/core/modules/field/modules/email_field/email_field.module b/core/modules/field/modules/email_field/email_field.module new file mode 100644 index 0000000..afefb9c --- /dev/null +++ b/core/modules/field/modules/email_field/email_field.module @@ -0,0 +1,87 @@ + array( + 'label' => t('Email'), + 'description' => t('This field stores an email address in the database.'), + 'settings' => array(), + 'instance_settings' => array(), + 'default_widget' => 'email_default', + 'default_formatter' => 'text_plain', + ), + ); +} + +/** + * Implements hook_field_widget_info(). + */ +function email_field_field_widget_info() { + return array( + 'email_default' => array( + 'label' => t('Email'), + 'field types' => array('email'), + 'settings' => array(), + 'behaviors' => array( + 'multiple values' => FIELD_BEHAVIOR_DEFAULT, + 'default value' => FIELD_BEHAVIOR_DEFAULT, + ), + ), + ); +} + +/** + * Implements hook_field_widget_form(). + */ +function email_field_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; + +} + +/** + * Implements hook_field_is_empty(). + */ +function email_field_field_is_empty($item, $field) { + return !isset($item['value']) || $item['value'] === ''; +} + +/** + * Implements hook_field_formatter_info_alter(). + */ +function email_field_field_formatter_info_alter(&$info) { + $info['text_plain']['field types'][] = 'email'; +} + +/** + * Implements hook_field_formatter_info(). + */ +function email_field_field_formatter_info() { + return array( + 'email_mailto' => array( + 'label' => t('Mailto Link'), + 'field types' => array('email'), + ), + ); +} + +/** + * Implements hook_field_formatter_view(). + */ +function email_field_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'] + ); + } + return $element; +}