This repository has been archived by the owner on Dec 23, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebform_localization.install
138 lines (131 loc) · 3.98 KB
/
webform_localization.install
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?php
/**
* @file
* Webform Localization module install/schema hooks.
*/
/**
* Implements hook_install().
*/
function webform_localization_install() {
/**
* NOTE:
* We add a field to record the language of the submission since when using
* "Localization by String Translation" you can get single webform been
* submitted by several nodes in different languages.
*/
db_add_field('webform_submissions', 'language', array(
'description' => 'The {languages}.language source of this submission.',
'type' => 'varchar',
'length' => 12,
'not null' => TRUE,
'default' => '',
));
}
/**
* Implements hook_uninstall().
*/
function webform_localization_uninstall() {
db_drop_field('webform_submissions', 'language');
}
/**
* Implements hook_schema().
*/
function webform_localization_schema() {
$schema = array();
$schema['webform_localization'] = array(
'description' => 'Table for storing additional properties for webform localization.',
'fields' => array(
'nid' => array(
'description' => 'The node identifier of a webform.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
),
'expose_strings' => array(
'description' => 'Boolean value of a webform for expose component strings for translation or not.',
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
),
'single_webform' => array(
'description' => 'A Tanslation set Id for keep one single webform across a translation set.',
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
'webform_properties' => array(
'description' => 'Webform properties to be sync.',
'type' => 'text',
'not null' => TRUE,
),
'sync_components' => array(
'description' => 'Boolean value for whether the webform components must be sync across translated nodes.',
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
),
'sync_roles' => array(
'description' => 'Boolean value for whether the webform submission access roles must be sync across translated nodes.',
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
),
'sync_emails' => array(
'description' => 'Boolean value for whether the webform emails must be sync across translated nodes.',
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
),
),
'primary key' => array('nid'),
);
$schema['webform_component_localization'] = array(
'description' => 'Stores information about components properties sync for webform localization.',
'fields' => array(
'nid' => array(
'description' => 'The node identifier of a webform.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'cid' => array(
'description' => 'The identifier for this component within this node, starts at 0 for each node.',
'type' => 'int',
'size' => 'small',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'standar_properties' => array(
'description' => 'Standar properties of this component to be sync.',
'type' => 'text',
'not null' => TRUE,
),
'extra_properties' => array(
'description' => 'Additional properties of this component to be sync.',
'type' => 'text',
'not null' => TRUE,
),
),
);
return $schema;
}
/**
* Implements hook_schema_alter().
*
* Add webform_submissions table language field
*/
function webform_localization_schema_alter(&$schema) {
$schema['webform_submissions']['fields']['language'] = array(
'description' => 'The {languages}.language source of this submission.',
'type' => 'varchar',
'length' => 12,
'not null' => TRUE,
'default' => '',
);
}