1
|
<?php
|
2
|
/**
|
3
|
* This is the expertsdb_address_all_countries module for use with expertsdb_address.
|
4
|
*
|
5
|
*/
|
6
|
|
7
|
/**
|
8
|
* Implementation of hook_help
|
9
|
*
|
10
|
* Display help and module information
|
11
|
* @param string section which section of the site we're displaying help
|
12
|
* @return help text for section
|
13
|
*/
|
14
|
function expertsdb_address_all_countries_help($section='') {
|
15
|
|
16
|
$output = '';
|
17
|
|
18
|
switch ($section) {
|
19
|
case "admin/help#expertsdb_address_all_countries":
|
20
|
$output = '<p>'. t("Adds support for all countries to expertsdb_address, but without regions."). '</p>';
|
21
|
break;
|
22
|
}
|
23
|
|
24
|
return $output;
|
25
|
} // function expertsdb_address_all_countries_help()
|
26
|
|
27
|
|
28
|
/**
|
29
|
* Adds all contries to the states table. Adds all_countries to the countries table. Returns whether all queries succeeded.
|
30
|
*
|
31
|
* @return boolean $query_ok
|
32
|
*/
|
33
|
function expertsdb_address_all_countries_installstates($query_ok) {
|
34
|
if(!$query_ok) return;
|
35
|
|
36
|
if (!db_table_exists('expertsdb_address_states') or !db_table_exists('expertsdb_address_countries')) return FALSE;
|
37
|
|
38
|
return _expertsdb_address_all_countries_installer('install');
|
39
|
|
40
|
} // function expertsdb_address_mexico_installstates()
|
41
|
|
42
|
|
43
|
function _expertsdb_address_all_countries_installer($mode = FALSE){
|
44
|
if(!$mode) return;
|
45
|
/* $states = array (
|
46
|
// @TODO: enter all international states here
|
47
|
array("Aguascalientes","AGS"),
|
48
|
);*/
|
49
|
|
50
|
/* foreach ($states as $state) {
|
51
|
if(!db_query("INSERT INTO {expertsdb_address_states} (state_name, state_abbrv, country_code) VALUES ('{$state[0]}', '{$state[1]}', 'MX')")) return FALSE;
|
52
|
}
|
53
|
*/
|
54
|
|
55
|
$countries = array(
|
56
|
array("Andorra", "AD"),
|
57
|
array("United Arab Emirates", "AE"),
|
58
|
array("Afghanistan", "AF"),
|
59
|
array("Antigua and Barbuda", "AG"),
|
60
|
array("Anguilla", "AI"),
|
61
|
array("Albania", "AL"),
|
62
|
array("Armenia", "AM"),
|
63
|
array("Netherlands Antilles", "AN"),
|
64
|
array("Angola", "AO"),
|
65
|
array("Antarctica", "AQ"),
|
66
|
array("Argentina", "AR"),
|
67
|
array("American Samoa", "AS"),
|
68
|
array("Austria", "AT"),
|
69
|
array("Australia", "AU"),
|
70
|
array("Aruba", "AW"),
|
71
|
array("Åland Islands", "AX"),
|
72
|
array("Azerbaijan", "AZ"),
|
73
|
array("Bosnia and Herzegovina", "BA"),
|
74
|
array("Barbados", "BB"),
|
75
|
array("Bangladesh", "BD"),
|
76
|
array("Belgium", "BE"),
|
77
|
array("Burkina Faso", "BF"),
|
78
|
array("Bulgaria", "BG"),
|
79
|
array("Bahrain", "BH"),
|
80
|
array("Burundi", "BI"),
|
81
|
array("Benin", "BJ"),
|
82
|
array("Saint Barthélemy", "BL"),
|
83
|
array("Bermuda", "BM"),
|
84
|
array("Brunei Darussalam", "BN"),
|
85
|
array("Bolivia", "BO"),
|
86
|
array("Brazil", "BR"),
|
87
|
array("Bahamas", "BS"),
|
88
|
array("Bhutan", "BT"),
|
89
|
array("Bouvet Island", "BV"),
|
90
|
array("Botswana", "BW"),
|
91
|
array("Belarus", "BY"),
|
92
|
array("Belize", "BZ"),
|
93
|
array("Canada", "CA"),
|
94
|
array("Cocos (Keeling) Islands", "CC"),
|
95
|
array("Congo, the Democratic Republic of the", "CD"),
|
96
|
array("Central African Republic", "CF"),
|
97
|
array("Congo", "CG"),
|
98
|
array("Switzerland", "CH"),
|
99
|
array("Côte d'Ivoire", "CI"),
|
100
|
array("Cook Islands", "CK"),
|
101
|
array("Chile", "CL"),
|
102
|
array("Cameroon", "CM"),
|
103
|
array("China", "CN"),
|
104
|
array("Colombia", "CO"),
|
105
|
array("Costa Rica", "CR"),
|
106
|
array("Cuba", "CU"),
|
107
|
array("Cape Verde", "CV"),
|
108
|
array("Christmas Island", "CX"),
|
109
|
array("Cyprus", "CY"),
|
110
|
array("Czech Republic", "CZ"),
|
111
|
array("Germany", "DE"),
|
112
|
array("Djibouti", "DJ"),
|
113
|
array("Denmark", "DK"),
|
114
|
array("Dominica", "DM"),
|
115
|
array("Dominican Republic", "DO"),
|
116
|
array("Algeria", "DZ"),
|
117
|
array("Ecuador", "EC"),
|
118
|
array("Estonia", "EE"),
|
119
|
array("Egypt", "EG"),
|
120
|
array("Western Sahara", "EH"),
|
121
|
array("Eritrea", "ER"),
|
122
|
array("Spain", "ES"),
|
123
|
array("Ethiopia", "ET"),
|
124
|
array("Finland", "FI"),
|
125
|
array("Fiji", "FJ"),
|
126
|
array("Falkland Islands (Malvinas)", "FK"),
|
127
|
array("Micronesia, Federated States of", "FM"),
|
128
|
array("Faroe Islands", "FO"),
|
129
|
array("France", "FR"),
|
130
|
array("Gabon", "GA"),
|
131
|
array("United Kingdom", "GB"),
|
132
|
array("Grenada", "GD"),
|
133
|
array("Georgia", "GE"),
|
134
|
array("French Guiana", "GF"),
|
135
|
array("Guernsey", "GG"),
|
136
|
array("Ghana", "GH"),
|
137
|
array("Gibraltar", "GI"),
|
138
|
array("Greenland", "GL"),
|
139
|
array("Gambia", "GM"),
|
140
|
array("Guinea", "GN"),
|
141
|
array("Guadeloupe", "GP"),
|
142
|
array("Equatorial Guinea", "GQ"),
|
143
|
array("Greece", "GR"),
|
144
|
array("South Georgia and the South Sandwich Islands", "GS"),
|
145
|
array("Guatemala", "GT"),
|
146
|
array("Guam", "GU"),
|
147
|
array("Guinea-Bissau", "GW"),
|
148
|
array("Guyana", "GY"),
|
149
|
array("Hong Kong", "HK"),
|
150
|
array("Heard Island and McDonald Islands", "HM"),
|
151
|
array("Honduras", "HN"),
|
152
|
array("Croatia", "HR"),
|
153
|
array("Haiti", "HT"),
|
154
|
array("Hungary", "HU"),
|
155
|
array("Indonesia", "ID"),
|
156
|
array("Ireland", "IE"),
|
157
|
array("Israel", "IL"),
|
158
|
array("Isle of Man", "IM"),
|
159
|
array("India", "IN"),
|
160
|
array("British Indian Ocean Territory", "IO"),
|
161
|
array("Iraq", "IQ"),
|
162
|
array("Iran, Islamic Republic of", "IR"),
|
163
|
array("Iceland", "IS"),
|
164
|
array("Italy", "IT"),
|
165
|
array("Jersey", "JE"),
|
166
|
array("Jamaica", "JM"),
|
167
|
array("Jordan", "JO"),
|
168
|
array("Japan", "JP"),
|
169
|
array("Kenya", "KE"),
|
170
|
array("Kyrgyzstan", "KG"),
|
171
|
array("Cambodia", "KH"),
|
172
|
array("Kiribati", "KI"),
|
173
|
array("Comoros", "KM"),
|
174
|
array("Saint Kitts and Nevis", "KN"),
|
175
|
array("Korea, Democratic People's Republic of", "KP"),
|
176
|
array("Korea, Republic of", "KR"),
|
177
|
array("Kuwait", "KW"),
|
178
|
array("Cayman Islands", "KY"),
|
179
|
array("Kazakhstan", "KZ"),
|
180
|
array("Lao People's Democratic Republic", "LA"),
|
181
|
array("Lebanon", "LB"),
|
182
|
array("Saint Lucia", "LC"),
|
183
|
array("Liechtenstein", "LI"),
|
184
|
array("Sri Lanka", "LK"),
|
185
|
array("Liberia", "LR"),
|
186
|
array("Lesotho", "LS"),
|
187
|
array("Lithuania", "LT"),
|
188
|
array("Luxembourg", "LU"),
|
189
|
array("Latvia", "LV"),
|
190
|
array("Libyan Arab Jamahiriya", "LY"),
|
191
|
array("Morocco", "MA"),
|
192
|
array("Monaco", "MC"),
|
193
|
array("Moldova", "MD"),
|
194
|
array("Montenegro", "ME"),
|
195
|
array("Saint Martin (French part)", "MF"),
|
196
|
array("Madagascar", "MG"),
|
197
|
array("Marshall Islands", "MH"),
|
198
|
array("Macedonia, the former Yugoslav Republic of", "MK"),
|
199
|
array("Mali", "ML"),
|
200
|
array("Myanmar", "MM"),
|
201
|
array("Mongolia", "MN"),
|
202
|
array("Macao", "MO"),
|
203
|
array("Northern Mariana Islands", "MP"),
|
204
|
array("Martinique", "MQ"),
|
205
|
array("Mauritania", "MR"),
|
206
|
array("Montserrat", "MS"),
|
207
|
array("Malta", "MT"),
|
208
|
array("Mauritius", "MU"),
|
209
|
array("Maldives", "MV"),
|
210
|
array("Malawi", "MW"),
|
211
|
array("Mexico", "MX"),
|
212
|
array("Malaysia", "MY"),
|
213
|
array("Mozambique", "MZ"),
|
214
|
array("Namibia", "NA"),
|
215
|
array("New Caledonia", "NC"),
|
216
|
array("Niger", "NE"),
|
217
|
array("Norfolk Island", "NF"),
|
218
|
array("Nigeria", "NG"),
|
219
|
array("Nicaragua", "NI"),
|
220
|
array("Netherlands", "NL"),
|
221
|
array("Norway", "NO"),
|
222
|
array("Nepal", "NP"),
|
223
|
array("Nauru", "NR"),
|
224
|
array("Niue", "NU"),
|
225
|
array("New Zealand", "NZ"),
|
226
|
array("Oman", "OM"),
|
227
|
array("Panama", "PA"),
|
228
|
array("Peru", "PE"),
|
229
|
array("French Polynesia", "PF"),
|
230
|
array("Papua New Guinea", "PG"),
|
231
|
array("Philippines", "PH"),
|
232
|
array("Pakistan", "PK"),
|
233
|
array("Poland", "PL"),
|
234
|
array("Saint Pierre and Miquelon", "PM"),
|
235
|
array("Pitcairn", "PN"),
|
236
|
array("Puerto Rico", "PR"),
|
237
|
array("Palestinian Territory, Occupied", "PS"),
|
238
|
array("Portugal", "PT"),
|
239
|
array("Palau", "PW"),
|
240
|
array("Paraguay", "PY"),
|
241
|
array("Qatar", "QA"),
|
242
|
array("Réunion", "RE"),
|
243
|
array("Romania", "RO"),
|
244
|
array("Serbia", "RS"),
|
245
|
array("Russian Federation", "RU"),
|
246
|
array("Rwanda", "RW"),
|
247
|
array("Saudi Arabia", "SA"),
|
248
|
array("Solomon Islands", "SB"),
|
249
|
array("Seychelles", "SC"),
|
250
|
array("Sudan", "SD"),
|
251
|
array("Sweden", "SE"),
|
252
|
array("Singapore", "SG"),
|
253
|
array("Saint Helena", "SH"),
|
254
|
array("Slovenia", "SI"),
|
255
|
array("Svalbard and Jan Mayen", "SJ"),
|
256
|
array("Slovakia", "SK"),
|
257
|
array("Sierra Leone", "SL"),
|
258
|
array("San Marino", "SM"),
|
259
|
array("Senegal", "SN"),
|
260
|
array("Somalia", "SO"),
|
261
|
array("Suriname", "SR"),
|
262
|
array("Sao Tome and Principe", "ST"),
|
263
|
array("El Salvador", "SV"),
|
264
|
array("Syrian Arab Republic", "SY"),
|
265
|
array("Swaziland", "SZ"),
|
266
|
array("Turks and Caicos Islands", "TC"),
|
267
|
array("Chad", "TD"),
|
268
|
array("French Southern Territories", "TF"),
|
269
|
array("Togo", "TG"),
|
270
|
array("Thailand", "TH"),
|
271
|
array("Tajikistan", "TJ"),
|
272
|
array("Tokelau", "TK"),
|
273
|
array("Timor-Leste", "TL"),
|
274
|
array("Turkmenistan", "TM"),
|
275
|
array("Tunisia", "TN"),
|
276
|
array("Tonga", "TO"),
|
277
|
array("Turkey", "TR"),
|
278
|
array("Trinidad and Tobago", "TT"),
|
279
|
array("Tuvalu", "TV"),
|
280
|
array("Taiwan, Province of China", "TW"),
|
281
|
array("Tanzania, United Republic of", "TZ"),
|
282
|
array("Ukraine", "UA"),
|
283
|
array("Uganda", "UG"),
|
284
|
array("United States Minor Outlying Islands", "UM"),
|
285
|
// array("United States", "US"), // is handled by the original module!
|
286
|
array("Uruguay", "UY"),
|
287
|
array("Uzbekistan", "UZ"),
|
288
|
array("Holy See (Vatican City State)", "VA"),
|
289
|
array("Saint Vincent and the Grenadines", "VC"),
|
290
|
array("Venezuela", "VE"),
|
291
|
array("Virgin Islands, British", "VG"),
|
292
|
array("Virgin Islands, U.S.", "VI"),
|
293
|
array("Viet Nam", "VN"),
|
294
|
array("Vanuatu", "VU"),
|
295
|
array("Wallis and Futuna", "WF"),
|
296
|
array("Samoa", "WS"),
|
297
|
array("Yemen", "YE"),
|
298
|
array("Mayotte", "YT"),
|
299
|
array("South Africa", "ZA"),
|
300
|
array("Zambia", "ZM"),
|
301
|
array("Zimbabwe", "ZW"),
|
302
|
);
|
303
|
|
304
|
$errors = 0;
|
305
|
|
306
|
foreach ($countries as $country) {
|
307
|
// try to figure out, if this country is already implemented by another module
|
308
|
$pat = array(
|
309
|
'@[\W]@', // replace anything but digits and letters with underscore
|
310
|
'@[\_]{1,}@', // replace multiple underscores with one underscore
|
311
|
'@[\_]$@', // no underscore at line end
|
312
|
);
|
313
|
$rep = array(
|
314
|
'_',
|
315
|
'_',
|
316
|
'',
|
317
|
);
|
318
|
$country_parts = explode(',', $country[0]);
|
319
|
$potential_module_name = preg_replace($pat,$rep,'expertsdb_address_' . strtolower($country_parts[0]));
|
320
|
if(!module_exists($potential_module_name)){
|
321
|
switch ($mode){
|
322
|
case 'install':
|
323
|
// insert state
|
324
|
if(!db_query("INSERT INTO {expertsdb_address_countries} (country_name, country_code) VALUES ('" . db_escape_string($country[0]) . "', '{$country[1]}')")){
|
325
|
drupal_set_message('Failed to install !country.',array('!country' => $country_parts[0]));
|
326
|
}
|
327
|
break;
|
328
|
|
329
|
case 'uninstall':
|
330
|
|
331
|
if (db_table_exists('expertsdb_address_states'))
|
332
|
$query1 = db_query("DELETE FROM {expertsdb_address_states} WHERE country_code = '%s'", $country[1]);
|
333
|
else $query1 = TRUE;
|
334
|
if (db_table_exists('expertsdb_address_countries'))
|
335
|
$query2 = db_query("DELETE FROM {expertsdb_address_countries} WHERE country_code = '%s'", $country[1]);
|
336
|
else $query2 = TRUE;
|
337
|
|
338
|
if ($query1 && $query2) {
|
339
|
drupal_set_message(t('!country was uninstalled successfully.',array('!country' => $country[0])));
|
340
|
}
|
341
|
else {
|
342
|
drupal_set_message(t('There was an error removing !country database rows.',array('!country' => $country[0])), 'error');
|
343
|
$errors ++;
|
344
|
}
|
345
|
break;
|
346
|
}
|
347
|
|
348
|
|
349
|
} // module seems to exist
|
350
|
else{
|
351
|
switch ($mode){
|
352
|
case 'install':
|
353
|
drupal_set_message(t('Not installing !country. It seems to be handled by an existing module (!module).',array('!country' => $country_parts[0],'!module' => $potential_module_name)));
|
354
|
break;
|
355
|
|
356
|
case 'uninstall':
|
357
|
drupal_set_message(t('Not uninstalling !country. It seems to be handled by an existing module (!module).',array('!country' => $country_parts[0],'!module' => $potential_module_name)));
|
358
|
break;
|
359
|
}
|
360
|
|
361
|
}
|
362
|
}
|
363
|
|
364
|
return ($errors) ? FALSE : TRUE;
|
365
|
}
|