function Checkboxes::processCheckboxes
Processes a checkboxes form element.
1 call to Checkboxes::processCheckboxes()
- ViewsUiThemeHooks::preprocessBuildGroupFilterForm in core/modules/ views_ui/ src/ Hook/ ViewsUiThemeHooks.php 
- Prepares variables for Views UI build group filter form templates.
File
- 
              core/lib/ Drupal/ Core/ Render/ Element/ Checkboxes.php, line 60 
Class
- Checkboxes
- Provides a form element for a set of checkboxes.
Namespace
Drupal\Core\Render\ElementCode
public static function processCheckboxes(&$element, FormStateInterface $form_state, &$complete_form) {
  $value = is_array($element['#value']) ? $element['#value'] : [];
  $element['#tree'] = TRUE;
  if (count($element['#options']) > 0) {
    if (!isset($element['#default_value']) || $element['#default_value'] == 0) {
      $element['#default_value'] = [];
    }
    $weight = 0;
    foreach ($element['#options'] as $key => $choice) {
      // Integer 0 is not a valid #return_value, so use '0' instead.
      // @see \Drupal\Core\Render\Element\Checkbox::valueCallback().
      // @todo For Drupal 8, cast all integer keys to strings for consistency
      //   with \Drupal\Core\Render\Element\Radios::processRadios().
      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;
      // Only enabled checkboxes receive their values from the form
      // submission, the disabled checkboxes use their default value.
      $default_value = NULL;
      if (isset($value[$key]) || !empty($element[$key]['#disabled']) && in_array($key, $element['#default_value'], TRUE)) {
        $default_value = $key;
      }
      $element += [
        $key => [],
      ];
      $element[$key] += [
        '#type' => 'checkbox',
        '#title' => $choice,
        '#return_value' => $key,
        '#default_value' => $default_value,
        '#attributes' => $element['#attributes'],
        '#ajax' => $element['#ajax'] ?? NULL,
        // Errors should only be shown on the parent checkboxes element.
'#error_no_message' => TRUE,
        '#weight' => $weight,
      ];
    }
  }
  return $element;
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
