-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathwebform_paymethod_select.form_builder.inc
More file actions
108 lines (94 loc) · 3.22 KB
/
webform_paymethod_select.form_builder.inc
File metadata and controls
108 lines (94 loc) · 3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
/**
* @file
*/
/**
* Implements hook_form_builder_types().
*/
function webform_paymethod_select_form_builder_element_types($form_type, $form_id) {
if ($form_type != 'webform') {
return;
}
$map = _form_builder_webform_property_map('paymethod_select');
unset($map['properties']['default_value']);
$fields['paymethod_select'] = array(
'title' => t('Payment method'),
'properties' => array_keys($map['properties']),
'default' => array('#form_builder' => array('element_type' => 'paymethod_select')),
'unique' => TRUE,
);
$fields['paymethod_select']['default'] += _form_builder_webform_default('paymethod_select');
return $fields;
}
/**
* Implements _webform_form_builder_map_<webform-component>().
*/
function _webform_form_builder_map_paymethod_select() {
return array(
'form_builder_type' => 'paymethod_select',
'properties' => array(
'payment_description' => array(
'storage_parents' => array('extra', 'payment_description'),
),
'selected_payment_methods' => array(
'storage_parents' => array('extra', 'selected_payment_methods'),
),
'currency_code' => array(
'storage_parents' => array('extra', 'currency_code'),
),
'currency_code_source' => array(
'storage_parents' => array('extra', 'currency_code_source'),
),
'currency_code_component' => array(
'storage_parents' => array('extra', 'currency_code_component'),
),
'line_items' => array(
'storage_parents' => array('extra', 'line_items'),
),
),
);
}
/**
* Callback referenced in _webform_form_builder_properties_<webform-component>
*/
function webform_paymethod_select_form_builder_all_properties_form(&$form_state, $form_type, $element, $property) {
$form[$property] = array(
'#form_builder' => array('property_group' => 'options'),
'#tree' => TRUE,
);
$component_edit_form = _webform_edit_paymethod_select($element['#webform_component']);
$form[$property] += $component_edit_form['extra'][$property];
return $form;
}
/**
* Callback referenced in _webform_form_builder_properties_<webform-component>
*/
function webform_paymethod_select_line_item_property_form(&$form_state, $form_type, $element, $property) {
$form['line_items'] = array(
'#form_builder' => array('property_group' => 'options'),
'#tree' => TRUE,
);
$component_edit_form = _webform_edit_paymethod_select($element['#webform_component']);
$form['line_items'] += $component_edit_form['extra']['line_items'];
$form['line_items']['#parents'] = array('line_items');
return $form;
}
/**
* Implements _webform_form_builder_properties_<webform-component>().
*/
function _webform_form_builder_properties_paymethod_select() {
return array(
'payment_description' => array(
'form' => 'webform_paymethod_select_form_builder_all_properties_form',
),
'selected_payment_methods' => array(
'form' => 'webform_paymethod_select_form_builder_all_properties_form',
),
'currency_code' => array(
'form' => 'webform_paymethod_select_form_builder_all_properties_form',
),
'line_items' => array(
'form' => 'webform_paymethod_select_line_item_property_form',
),
);
}