123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /**
- * @file
- * Webform module fieldset component.
- */
- /**
- * Implements _webform_defaults_component().
- */
- function _webform_defaults_fieldset() {
- return array(
- 'name' => '',
- 'form_key' => NULL,
- 'pid' => 0,
- 'weight' => 0,
- 'extra' => array(
- 'title_display' => 0,
- 'collapsible' => 0,
- 'collapsed' => 0,
- 'description' => '',
- 'private' => FALSE,
- ),
- );
- }
- /**
- * Implements _webform_edit_component().
- */
- function _webform_edit_fieldset($component) {
- $form = array();
- $form['display']['collapsible'] = array(
- '#type' => 'checkbox',
- '#title' => t('Collapsible'),
- '#default_value' => $component['extra']['collapsible'],
- '#description' => t('If this fieldset is collapsible, the user may open or close the fieldset.'),
- '#weight' => 0,
- '#parents' => array('extra', 'collapsible'),
- );
- $form['display']['collapsed'] = array(
- '#type' => 'checkbox',
- '#title' => t('Collapsed by Default'),
- '#default_value' => $component['extra']['collapsed'],
- '#description' => t('Collapsible fieldsets are "open" by default. Select this option to default the fieldset to "closed."'),
- '#weight' => 3,
- '#parents' => array('extra', 'collapsed'),
- );
- return $form;
- }
- /**
- * Implements _webform_render_component().
- */
- function _webform_render_fieldset($component, $value = NULL, $filter = TRUE) {
- $node = isset($component['nid']) ? node_load($component['nid']) : NULL;
- $element = array(
- '#type' => 'fieldset',
- '#title' => $filter ? _webform_filter_xss($component['name']) : $component['name'],
- '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : NULL,
- '#weight' => $component['weight'],
- '#description' => $filter ? _webform_filter_descriptions($component['extra']['description'], $node) : $component['extra']['description'],
- '#collapsible' => $component['extra']['collapsible'],
- '#collapsed' => $component['extra']['collapsed'],
- '#attributes' => array('class' => array('webform-component-fieldset'), 'id' => 'webform-component-' . $component['form_key']),
- '#pre_render' => array('webform_fieldset_prerender', 'webform_element_title_display'),
- '#translatable' => array('title', 'description'),
- );
- return $element;
- }
- /**
- * Pre-render function to set a fieldset ID.
- */
- function webform_fieldset_prerender($element) {
- $element['#attributes']['id'] = 'webform-component-' . str_replace('_', '-', implode('--', array_slice($element['#parents'], 1)));
- return $element;
- }
- /**
- * Implements _webform_display_component().
- */
- function _webform_display_fieldset($component, $value, $format = 'html') {
- if ($format == 'text') {
- $element = array(
- '#title' => $component['name'],
- '#weight' => $component['weight'],
- '#theme_wrappers' => array('webform_element_text'),
- '#translatable' => array('title'),
- );
- }
- else {
- $element = _webform_render_fieldset($component, $value);
- }
- $element['#format'] = $format;
- return $element;
- }
|