You are here

function hms_field_field_formatter_settings_form in HMS Field 7

Implements hook_field_formatter_settings_form().

File

./hms_field.module, line 180
Provides an hms_field functionality.

Code

function hms_field_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
  $display = $instance['display'][$view_mode];
  $settings = $display['settings'];
  $element = array();
  if ($display['type'] == 'hms_default_formatter') {
    $element['format'] = array(
      '#type' => 'select',
      '#title' => t('Display format'),
      '#options' => _hms_format_options(),
      '#description' => t('The display format used for this field'),
      '#default_value' => $settings['format'],
      '#required' => TRUE,
    );
    $element['leading_zero'] = array(
      '#type' => 'checkbox',
      '#title' => t('Leading zero'),
      '#description' => t('Leading zero values will be displayed when this option is checked'),
      '#default_value' => $settings['leading_zero'],
    );
  }
  elseif ($display['type'] == 'hms_natural_language_formatter') {
    $options = array();
    $factors = _hms_factor_map(TRUE);
    $order = _hms_factor_map();
    arsort($order, SORT_NUMERIC);
    foreach ($order as $factor => $info) {
      $options[$factor] = t($factors[$factor]['label multiple']);
    }
    $element['display_formats'] = array(
      '#type' => 'checkboxes',
      '#title' => t('Display fragments'),
      '#options' => $options,
      '#description' => t('Formats that are displayed in this field'),
      '#default_value' => $settings['display_formats'],
      '#required' => TRUE,
    );
    $element['separator'] = array(
      '#type' => 'textfield',
      '#title' => t('Separator'),
      '#description' => t('Separator used between fragments'),
      '#default_value' => $settings['separator'],
      '#required' => TRUE,
    );
    $element['last_separator'] = array(
      '#type' => 'textfield',
      '#title' => t('Last separator'),
      '#description' => t('Separator used between the last 2 fragments'),
      '#default_value' => $settings['last_separator'],
      '#required' => FALSE,
    );
  }
  return $element;
}