danielebarchiesi@0
|
1 <?php
|
danielebarchiesi@0
|
2
|
danielebarchiesi@0
|
3 /**
|
danielebarchiesi@0
|
4 * @file
|
danielebarchiesi@0
|
5 * Webform module fieldset component.
|
danielebarchiesi@0
|
6 */
|
danielebarchiesi@0
|
7
|
danielebarchiesi@0
|
8 /**
|
danielebarchiesi@0
|
9 * Implements _webform_defaults_component().
|
danielebarchiesi@0
|
10 */
|
danielebarchiesi@0
|
11 function _webform_defaults_fieldset() {
|
danielebarchiesi@0
|
12 return array(
|
danielebarchiesi@0
|
13 'name' => '',
|
danielebarchiesi@0
|
14 'form_key' => NULL,
|
danielebarchiesi@0
|
15 'pid' => 0,
|
danielebarchiesi@0
|
16 'weight' => 0,
|
danielebarchiesi@0
|
17 'extra' => array(
|
danielebarchiesi@0
|
18 'title_display' => 0,
|
danielebarchiesi@0
|
19 'collapsible' => 0,
|
danielebarchiesi@0
|
20 'collapsed' => 0,
|
danielebarchiesi@0
|
21 'description' => '',
|
danielebarchiesi@0
|
22 'private' => FALSE,
|
danielebarchiesi@0
|
23 ),
|
danielebarchiesi@0
|
24 );
|
danielebarchiesi@0
|
25 }
|
danielebarchiesi@0
|
26
|
danielebarchiesi@0
|
27 /**
|
danielebarchiesi@0
|
28 * Implements _webform_edit_component().
|
danielebarchiesi@0
|
29 */
|
danielebarchiesi@0
|
30 function _webform_edit_fieldset($component) {
|
danielebarchiesi@0
|
31 $form = array();
|
danielebarchiesi@0
|
32 $form['display']['collapsible'] = array(
|
danielebarchiesi@0
|
33 '#type' => 'checkbox',
|
danielebarchiesi@0
|
34 '#title' => t('Collapsible'),
|
danielebarchiesi@0
|
35 '#default_value' => $component['extra']['collapsible'],
|
danielebarchiesi@0
|
36 '#description' => t('If this fieldset is collapsible, the user may open or close the fieldset.'),
|
danielebarchiesi@0
|
37 '#weight' => 0,
|
danielebarchiesi@0
|
38 '#parents' => array('extra', 'collapsible'),
|
danielebarchiesi@0
|
39 );
|
danielebarchiesi@0
|
40 $form['display']['collapsed'] = array(
|
danielebarchiesi@0
|
41 '#type' => 'checkbox',
|
danielebarchiesi@0
|
42 '#title' => t('Collapsed by Default'),
|
danielebarchiesi@0
|
43 '#default_value' => $component['extra']['collapsed'],
|
danielebarchiesi@0
|
44 '#description' => t('Collapsible fieldsets are "open" by default. Select this option to default the fieldset to "closed."'),
|
danielebarchiesi@0
|
45 '#weight' => 3,
|
danielebarchiesi@0
|
46 '#parents' => array('extra', 'collapsed'),
|
danielebarchiesi@0
|
47 );
|
danielebarchiesi@0
|
48 return $form;
|
danielebarchiesi@0
|
49 }
|
danielebarchiesi@0
|
50
|
danielebarchiesi@0
|
51 /**
|
danielebarchiesi@0
|
52 * Implements _webform_render_component().
|
danielebarchiesi@0
|
53 */
|
danielebarchiesi@0
|
54 function _webform_render_fieldset($component, $value = NULL, $filter = TRUE) {
|
danielebarchiesi@0
|
55 $node = isset($component['nid']) ? node_load($component['nid']) : NULL;
|
danielebarchiesi@0
|
56
|
danielebarchiesi@0
|
57 $element = array(
|
danielebarchiesi@0
|
58 '#type' => 'fieldset',
|
danielebarchiesi@0
|
59 '#title' => $filter ? _webform_filter_xss($component['name']) : $component['name'],
|
danielebarchiesi@0
|
60 '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : NULL,
|
danielebarchiesi@0
|
61 '#weight' => $component['weight'],
|
danielebarchiesi@0
|
62 '#description' => $filter ? _webform_filter_descriptions($component['extra']['description'], $node) : $component['extra']['description'],
|
danielebarchiesi@0
|
63 '#collapsible' => $component['extra']['collapsible'],
|
danielebarchiesi@0
|
64 '#collapsed' => $component['extra']['collapsed'],
|
danielebarchiesi@0
|
65 '#attributes' => array('class' => array('webform-component-fieldset'), 'id' => 'webform-component-' . $component['form_key']),
|
danielebarchiesi@0
|
66 '#pre_render' => array('webform_fieldset_prerender', 'webform_element_title_display'),
|
danielebarchiesi@0
|
67 '#translatable' => array('title', 'description'),
|
danielebarchiesi@0
|
68 );
|
danielebarchiesi@0
|
69
|
danielebarchiesi@0
|
70 return $element;
|
danielebarchiesi@0
|
71 }
|
danielebarchiesi@0
|
72
|
danielebarchiesi@0
|
73 /**
|
danielebarchiesi@0
|
74 * Pre-render function to set a fieldset ID.
|
danielebarchiesi@0
|
75 */
|
danielebarchiesi@0
|
76 function webform_fieldset_prerender($element) {
|
danielebarchiesi@0
|
77 $element['#attributes']['id'] = 'webform-component-' . str_replace('_', '-', implode('--', array_slice($element['#parents'], 1)));
|
danielebarchiesi@0
|
78 return $element;
|
danielebarchiesi@0
|
79 }
|
danielebarchiesi@0
|
80
|
danielebarchiesi@0
|
81 /**
|
danielebarchiesi@0
|
82 * Implements _webform_display_component().
|
danielebarchiesi@0
|
83 */
|
danielebarchiesi@0
|
84 function _webform_display_fieldset($component, $value, $format = 'html') {
|
danielebarchiesi@0
|
85 if ($format == 'text') {
|
danielebarchiesi@0
|
86 $element = array(
|
danielebarchiesi@0
|
87 '#title' => $component['name'],
|
danielebarchiesi@0
|
88 '#weight' => $component['weight'],
|
danielebarchiesi@0
|
89 '#theme_wrappers' => array('webform_element_text'),
|
danielebarchiesi@0
|
90 '#translatable' => array('title'),
|
danielebarchiesi@0
|
91 );
|
danielebarchiesi@0
|
92 }
|
danielebarchiesi@0
|
93 else {
|
danielebarchiesi@0
|
94 $element = _webform_render_fieldset($component, $value);
|
danielebarchiesi@0
|
95 }
|
danielebarchiesi@0
|
96
|
danielebarchiesi@0
|
97 $element['#format'] = $format;
|
danielebarchiesi@0
|
98
|
danielebarchiesi@0
|
99 return $element;
|
danielebarchiesi@0
|
100 }
|