Skip navigation
Help

form_process_radios

7 form.inc form_process_radios($element)

Roll out a single radios element to a list of radios, using the options array as index.

Related topics

1 string reference to 'form_process_radios'

File

drupal/includes/form.inc, line 2904

Code

function form_process_radios($element) {
  if (count($element['#options']) > 0) {
    $weight = 0;
    foreach ($element['#options'] as $key => $choice) {
      // Maintain order of options as defined in #options, in case the element
      // defines custom option sub-elements, but does not define all option
      // sub-elements.
      $weight += 0.001;

      $element += array($key => array());
      // Generate the parents as the autogenerator does, so we will have a
      // unique id for each radio button.
      $parents_for_id = array_merge($element['#parents'], array($key));
      $element[$key] += array(
        '#type' => 'radio', 
        '#title' => $choice,
        // The key is sanitized in drupal_attributes() during output from the
        // theme function. 
        '#return_value' => $key, 
        '#default_value' => isset($element['#default_value']) ? $element['#default_value'] : NULL, 
        '#attributes' => $element['#attributes'], 
        '#parents' => $element['#parents'], 
        '#id' => drupal_html_id('edit-' . implode('-', $parents_for_id)), 
        '#ajax' => isset($element['#ajax']) ? $element['#ajax'] : NULL, 
        '#weight' => $weight,
      );
    }
  }
  return $element;
}