You are here

function _webform_number_select_options in Webform 7.4

Same name and namespace in other branches
  1. 6.3 components/number.inc \_webform_number_select_options()
  2. 7.3 components/number.inc \_webform_number_select_options()

Generate select list options.

1 call to _webform_number_select_options()
_webform_render_number in components/number.inc
Implements _webform_render_component().

File

components/number.inc, line 764
Webform module number component.

Code

function _webform_number_select_options($component) {
  $options = array();
  $step = abs($component['extra']['step']);

  // Step is optional and defaults to 1.
  $step = empty($step) ? 1 : $step;

  // Generate list in correct direction.
  $min = $component['extra']['min'];
  $max = $component['extra']['max'];
  $flipped = FALSE;
  if ($max < $min) {
    $min = $component['extra']['max'];
    $max = $component['extra']['min'];
    $flipped = TRUE;
  }
  for ($f = $min; $f <= $max; $f += $step) {
    $options[$f . ''] = $f . '';
  }

  // @todo HTML5 browsers apparently do not include the max value if it does
  // not line up with step. Restore this if needed in the future.
  // Add end limit if it's been skipped due to step.
  // @code
  // if (end($options) != $max) {
  //   $options[$f] = $max;
  // }
  // @endcode
  if ($flipped) {
    $options = array_reverse($options, TRUE);
  }

  // Apply requisite number formatting.
  foreach ($options as $key => $value) {
    $options[$key] = _webform_number_format($component, $value);
  }
  return $options;
}