function form_process_checkboxes

Processes a checkboxes form element.

Related topics

1 string reference to 'form_process_checkboxes'
system_element_info in modules/system/system.module
Implements hook_element_info().

File

includes/form.inc, line 3330

Code

function form_process_checkboxes($element) {
    $value = is_array($element['#value']) ? $element['#value'] : array();
    $element['#tree'] = TRUE;
    if (count($element['#options']) > 0) {
        if (!isset($element['#default_value']) || $element['#default_value'] == 0) {
            $element['#default_value'] = array();
        }
        $weight = 0;
        foreach ($element['#options'] as $key => $choice) {
            // Integer 0 is not a valid #return_value, so use '0' instead.
            // @see form_type_checkbox_value().
            // @todo For Drupal 8, cast all integer keys to strings for consistency
            //   with form_process_radios().
            if ($key === 0) {
                $key = '0';
            }
            // 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(),
            );
            $element[$key] += array(
                '#type' => 'checkbox',
                '#title' => $choice,
                '#return_value' => $key,
                '#default_value' => isset($value[$key]) ? $key : NULL,
                '#attributes' => $element['#attributes'],
                '#ajax' => isset($element['#ajax']) ? $element['#ajax'] : NULL,
                '#weight' => $weight,
            );
        }
    }
    return $element;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.