function theme_fieldset

Returns HTML for a fieldset form element and its children.

Parameters

$variables: An associative array containing:

  • element: An associative array containing the properties of the element. Properties used: #attributes, #children, #collapsed, #description, #id, #title, #value.

Related topics

File

drupal/core/includes/form.inc, line 2867
Functions for form and batch generation and processing.

Code

function theme_fieldset($variables) {
  $element = $variables['element'];
  element_set_attributes($element, array(
    'id',
  ));
  _form_set_attributes($element, array(
    'form-wrapper',
  ));
  if (!empty($element['#description'])) {
    $description_id = $element['#attributes']['id'] . '--description';
    $element['#attributes']['aria-describedby'] = $description_id;
  }
  $legend_attributes = array();
  if (isset($element['#title_display']) && $element['#title_display'] == 'invisible') {
    $legend_attributes['class'][] = 'element-invisible';
  }
  $output = '<fieldset' . new Attribute($element['#attributes']) . '>';
  if (!empty($element['#title'])) {

    // Always wrap fieldset legends in a SPAN for CSS positioning.
    $output .= '<legend' . new Attribute($legend_attributes) . '><span class="fieldset-legend">' . $element['#title'] . '</span></legend>';
  }
  $output .= '<div class="fieldset-wrapper">';
  if (!empty($element['#description'])) {
    $attributes = array(
      'class' => 'fieldset-description',
      'id' => $description_id,
    );
    $output .= '<div' . new Attribute($attributes) . '>' . $element['#description'] . '</div>';
  }
  $output .= $element['#children'];
  if (isset($element['#value'])) {
    $output .= $element['#value'];
  }
  $output .= '</div>';
  $output .= "</fieldset>\n";
  return $output;
}