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