diff --git a/phone.module b/phone.module index 9979c2d..e0c8765 100644 --- a/phone.module +++ b/phone.module @@ -186,11 +186,48 @@ function phone_field_formatter_info() { 'phone' => array( 'label' => t('Default'), 'field types' => array('phone'), + 'settings' => array( + 'phone_link' => FALSE, + ), ) ); } /** + * Implements hook_field_formatter_settings_form(). + */ +function phone_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) { + $display = $instance['display'][$view_mode]; + $settings = $display['settings']; + + $element['phone_link'] = array( + '#title' => t('Output as link'), + '#type' => 'checkbox', + '#default_value' => $settings['phone_link'], + ); + + return $element; +} + +/** + * Implements hook_field_formatter_settings_summary(). + */ +function phone_field_formatter_settings_summary($field, $instance, $view_mode) { + $display = $instance['display'][$view_mode]; + $settings = $display['settings']; + + // Display this setting only if field is linked. + if ($settings['phone_link']) { + $summary[] = t('Output as link'); + } + else { + $summary[] = t('Output as plain text'); + } + + return implode('
', $summary); +} + +/** * Implements hook_field_formatter_view(). */ function phone_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) { @@ -200,9 +237,8 @@ function phone_field_formatter_view($entity_type, $entity, $field, $instance, $l if (isset($item['value'])) { $text = check_plain($item['value']); - // iPhone Support - if (strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone') !== FALSE) { - $text = '' . $text . ''; + if ($display['settings']['phone_link']) { + $text = '' . $text . ''; } } $element[$delta]['#markup'] = $text;