Mercurial > hg > rr-repo
comparison sites/all/modules/webform/components/fieldset.inc @ 0:ff03f76ab3fe
initial version
author | danieleb <danielebarchiesi@me.com> |
---|---|
date | Wed, 21 Aug 2013 18:51:11 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:ff03f76ab3fe |
---|---|
1 <?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 '#attributes' => array('class' => array('webform-component-fieldset'), 'id' => 'webform-component-' . $component['form_key']), | |
66 '#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 $element['#attributes']['id'] = 'webform-component-' . str_replace('_', '-', implode('--', array_slice($element['#parents'], 1))); | |
78 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 } |