You are here

function sliderfield_field_widget_settings_form in SliderField 7

Same name and namespace in other branches
  1. 7.2 sliderfield.module \sliderfield_field_widget_settings_form()

Implements hook_field_widget_settings_form().

File

./sliderfield.module, line 139
Defines a Slider widget for use with decimal, number, and float fields.

Code

function sliderfield_field_widget_settings_form($this_field, $instance) {
  $widget = $instance['widget'];
  $settings = $widget['settings'];
  switch ($widget['type']) {
    case 'sliderfield_basic':
      $form['step'] = array(
        '#type' => 'textfield',
        '#title' => t('Step'),
        '#default_value' => isset($settings['step']) ? $settings['step'] : 1,
        '#description' => t('The step that the slider should use.'),
        '#element_validate' => array(
          '_element_validate_number',
        ),
        '#required' => TRUE,
      );
      break;
    case 'sliderfield_adjust':
      $entity_fields = field_info_instances($instance['entity_type'], $instance['bundle']);
      $all_fields = field_info_fields();
      $supported_field_types = array(
        'number_decimal',
        'number_integer',
        'number_float',
      );
      $valid_fields = array();

      // Get a list of all valid fields that we both support and are part of this entity
      foreach ($all_fields as $field) {
        if (array_key_exists($field['field_name'], $entity_fields)) {
          if (in_array($field['type'], array_values($supported_field_types)) && $field['field_name'] != $this_field['field_name']) {
            $valid_fields[$field['field_name']] = $entity_fields[$field['field_name']]['label'];
          }
        }
      }
      $valid_fields = array(
        '' => '--',
      ) + $valid_fields;
      $form['sliderfield_adjust_field'] = array(
        '#type' => 'select',
        '#title' => t('Adjust the Maximum value from field'),
        '#default_value' => isset($settings['sliderfield_adjust_field']) ? $settings['sliderfield_adjust_field'] : '',
        '#options' => $valid_fields,
        '#description' => t('Select which field you would like to use to adjust the slider\'s Maximum value.'),
      );
      break;
  }
  return $form;
}