Projet

Général

Profil

Paste
Télécharger (20,1 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / addressfield / addressfield.address_formats.inc @ 13755f8d

1 f066bdb5 Assos Assos
<?php
2
3
/**
4
 * Contains the predefined address formats.
5
 *
6
 * Derived from Google's dataset: https://i18napis.appspot.com/address.
7
 */
8
9
/**
10
 * Returns the address format for the given country code.
11
 *
12
 * @param $country_code
13
 *   The country code for which the address format should be returned.
14
 *
15
 * @return
16
 *   The address format array with the following keys:
17
 *   - used_fields: An array of fields used by this format. Possible values:
18
 *     'dependent_locality', 'locality', 'administrative_area', 'postal_code'.
19
 *   - required_fields: An array of required fields. See "used_fields".
20
 *   - dependent_locality_label: The label for the dependent locality field.
21
 *   - locality_label: The label for the locality field.
22
 *   - administrative_area_label: The label for the administrative area field.
23
 *   - postal_code_label: The label for the postal code field.
24 9d13637e Assos Assos
 *   - render_administrative_area_value: True if the value should be rendered
25
 *     instead of the ISO code. US example: California instead of CA.
26
 *     Only relevant for countries with predefined administrative areas.
27 f066bdb5 Assos Assos
 */
28
function addressfield_get_address_format($country_code) {
29
  $default_values = array(
30
    'used_fields' => array('locality'),
31
    'required_fields' => array('locality'),
32
    'dependent_locality_label' => t('Suburb'),
33
    'locality_label' => t('City'),
34
    'administrative_area_label' => t('Province'),
35
    'postal_code_label' => t('Postal code'),
36 9d13637e Assos Assos
    'render_administrative_area_value' => FALSE,
37 f066bdb5 Assos Assos
  );
38
39
  $address_formats = array();
40
  // These formats differ from the default only by the presence of the
41
  // postal code in 'used_fields'.
42
  $countries_with_optional_postal_code = array(
43
    'AC', 'AD', 'AL', 'AZ', 'BA', 'BB', 'BD', 'BG', 'BH', 'BM', 'BN', 'BT',
44 9d13637e Assos Assos
    'CR', 'CY', 'CZ', 'DO', 'DZ', 'EC', 'EH', 'ET', 'FO', 'GE', 'GN', 'GT',
45 fbb05e21 Assos Assos
    'GW', 'HR', 'HT', 'IL', 'IS', 'JO', 'KE', 'KG', 'KH', 'KW', 'LA',
46 9d13637e Assos Assos
    'LA', 'LB', 'LK', 'LR', 'LS',  'MA', 'MC', 'MD', 'ME', 'MG', 'MK', 'MM',
47
    'MT', 'MU', 'MV', 'NE', 'NP', 'OM', 'PK', 'PY', 'RO', 'RS', 'SA', 'SI',
48
    'SK', 'SN', 'SZ', 'TA', 'TJ', 'TM', 'TN', 'VA', 'VC', 'VG', 'XK', 'ZM',
49 f066bdb5 Assos Assos
  );
50
  foreach ($countries_with_optional_postal_code as $code) {
51
    $address_formats[$code] = array(
52
      'used_fields' => array('locality', 'postal_code'),
53
    );
54
  }
55
56
  // These formats differ from the default only by the presence of the
57
  // postal code in 'used_fields' and 'required_fields'.
58
  $countries_with_required_postal_code = array(
59
    'AT', 'AX', 'BE', 'BL', 'CH', 'DE', 'DK', 'FI', 'FK', 'FR', 'GF', 'GG',
60 fbb05e21 Assos Assos
    'GL', 'GP', 'GR', 'GS', 'HU', 'IM', 'IO', 'JE', 'LI', 'LU', 'MF', 'MQ', 'NC',
61 f066bdb5 Assos Assos
    'NL', 'NO', 'PL', 'PM', 'PN', 'PT', 'RE', 'SE', 'SH', 'SJ', 'TC', 'WF',
62
    'YT',
63
  );
64
  foreach ($countries_with_required_postal_code as $code) {
65
    $address_formats[$code] = array(
66
      'used_fields' => array('locality', 'postal_code'),
67
      'required_fields' => array('locality', 'postal_code'),
68
    );
69
  }
70
71
  $address_formats['AE'] = array(
72
    'used_fields' => array('administrative_area'),
73
    'administrative_area_label' => t('Emirate'),
74
  );
75
  $address_formats['AM'] = array(
76
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
77
  );
78
  $address_formats['AR'] = array(
79
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
80
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
81 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
82 f066bdb5 Assos Assos
  );
83
  $address_formats['AS'] = array(
84
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
85
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
86
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
87
    'postal_code_label' => t('ZIP code'),
88
  );
89
  $address_formats['AU'] = array(
90
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
91
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
92
    'locality_label' => t('City/Suburb'),
93
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
94
    'postal_code_label' => t('Postcode'),
95
  );
96
  $address_formats['BR'] = array(
97
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
98
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
99
    'dependent_locality_label' => t('Neighborhood'),
100
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
101
  );
102
  $address_formats['BS'] = array(
103
    'used_fields' => array('locality', 'administrative_area'),
104
    'administrative_area_label' => t('Island'),
105
  );
106
  $address_formats['BY'] = array(
107
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
108
  );
109
  $address_formats['CA'] = array(
110
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
111
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
112
  );
113
  $address_formats['CC'] = array(
114
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
115
  );
116
  $address_formats['CL'] = array(
117
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
118
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
119 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
120 f066bdb5 Assos Assos
  );
121
  $address_formats['CN'] = array(
122
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
123 9d13637e Assos Assos
    'required_fields' => array('locality', 'administrative_area'),
124 f066bdb5 Assos Assos
    'dependent_locality_label' => t('District'),
125
  );
126
  $address_formats['CO'] = array(
127
    'used_fields' => array('locality', 'administrative_area'),
128
    'administrative_area_label' => t('Department', array(), array('context' => 'Territory of a country')),
129
  );
130
  $address_formats['CV'] = array(
131
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
132
    'administrative_area_label' => t('Island'),
133
  );
134
  $address_formats['CX'] = array(
135
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
136
  );
137
  $address_formats['EG'] = array(
138
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
139
    'administrative_area_label' => t('Governorate'),
140
  );
141 9d13637e Assos Assos
  $address_formats['EE'] = array(
142
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
143
    'required_fields' => array('locality', 'postal_code'),
144
    'administrative_area_label' => t('County'),
145
  );
146 f066bdb5 Assos Assos
  $address_formats['ES'] = array(
147
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
148
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
149 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
150 f066bdb5 Assos Assos
  );
151
  $address_formats['FM'] = array(
152
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
153
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
154
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
155
    'postal_code_label' => t('ZIP code'),
156
  );
157
  $address_formats['GB'] = array(
158
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
159
    'required_fields' => array('locality', 'postal_code'),
160
    'locality_label' => t('Town/City'),
161
    'administrative_area_label' => t('County'),
162
    'postal_code_label' => t('Postcode'),
163
  );
164
  $address_formats['GI'] = array(
165
    'used_fields' => array('postal_code'),
166
  );
167
  $address_formats['GU'] = array(
168
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
169
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
170
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
171
    'postal_code_label' => t('ZIP code'),
172
  );
173
  $address_formats['HK'] = array(
174
    'used_fields' => array('locality', 'administrative_area'),
175
    'required_fields' => array('administrative_area'),
176
    'locality_label' => t('District'),
177
    'administrative_area_label' => t('Area', array(), array('context' => 'Territory of a country')),
178
  );
179
  $address_formats['HN'] = array(
180
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
181
    'required_fields' => array('locality', 'administrative_area'),
182
  );
183
  $address_formats['ID'] = array(
184
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
185
    'locality_label' => t('City/Regency'),
186 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
187 f066bdb5 Assos Assos
  );
188
  $address_formats['IE'] = array(
189
    'used_fields' => array('locality', 'administrative_area'),
190
    'locality_label' => t('Town/City'),
191
    'administrative_area_label' => t('County'),
192 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
193 f066bdb5 Assos Assos
  );
194
  $address_formats['IN'] = array(
195
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
196
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
197
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
198
    'postal_code_label' => t('PIN code'),
199 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
200 f066bdb5 Assos Assos
  );
201
  $address_formats['IQ'] = array(
202
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
203
    'required_fields' => array('locality', 'administrative_area'),
204
  );
205
  $address_formats['IR'] = array(
206
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
207
    'dependent_locality_label' => t('Neighborhood'),
208
  );
209
  $address_formats['IT'] = array(
210
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
211
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
212
  );
213
  $address_formats['JM'] = array(
214
    'used_fields' => array('locality', 'administrative_area'),
215
    'required_fields' => array('locality', 'administrative_area'),
216
    'administrative_area_label' => t('Parish', array(), array('context' => 'Territory of a country')),
217 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
218 f066bdb5 Assos Assos
  );
219
  $address_formats['JP'] = array(
220
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
221
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
222
    'administrative_area_label' => t('Prefecture'),
223 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
224 f066bdb5 Assos Assos
  );
225
  $address_formats['KI'] = array(
226
    'used_fields' => array('locality', 'administrative_area'),
227
    'administrative_area_label' => t('Island'),
228
  );
229
  $address_formats['KN'] = array(
230
    'used_fields' => array('locality', 'administrative_area'),
231
    'required_fields' => array('locality', 'administrative_area'),
232
    'administrative_area_label' => t('Island'),
233
  );
234
  $address_formats['KR'] = array(
235
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
236
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
237
    'dependent_locality_label' => t('District'),
238
  );
239
  $address_formats['KY'] = array(
240
    'used_fields' => array('administrative_area', 'postal_code'),
241
    'required_fields' => array('administrative_area'),
242
    'administrative_area_label' => t('Island'),
243
  );
244
  $address_formats['KZ'] = array(
245
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
246 9d13637e Assos Assos
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
247
    'administrative_area_label' => t('Region', array(), array('context' => 'Territory of a country')),
248 fbb05e21 Assos Assos
    'render_administrative_area_value' => TRUE,
249 9d13637e Assos Assos
  );
250
  $address_formats['LT'] = array(
251
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
252
    'required_fields' => array('locality', 'postal_code'),
253
    'administrative_area_label' => t('County'),
254
  );
255
  $address_formats['LV'] = array(
256
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
257
    'required_fields' => array('locality', 'postal_code'),
258
    'administrative_area_label' => t('Municipality'),
259 f066bdb5 Assos Assos
  );
260
  $address_formats['MH'] = array(
261
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
262
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
263
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
264
    'postal_code_label' => t('ZIP code'),
265
  );
266
  $address_formats['MN'] = array(
267
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
268
  );
269
  $address_formats['MP'] = array(
270
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
271
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
272
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
273
    'postal_code_label' => t('ZIP code'),
274
  );
275
  $address_formats['MX'] = array(
276
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
277
    'required_fields' => array('locality', 'postal_code'),
278
    'dependent_locality_label' => t('Neighborhood'),
279
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
280
  );
281
  $address_formats['MY'] = array(
282
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
283
    'required_fields' => array('locality', 'postal_code'),
284
    'dependent_locality_label' => t('Village / Township'),
285
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
286 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
287 f066bdb5 Assos Assos
  );
288
  $address_formats['MZ'] = array(
289
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
290
  );
291
  $address_formats['NF'] = array(
292
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
293
  );
294
  $address_formats['NG'] = array(
295
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
296
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
297
  );
298
  $address_formats['NI'] = array(
299
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
300
    'administrative_area_label' => t('Department', array(), array('context' => 'Territory of a country')),
301
  );
302
  $address_formats['NR'] = array(
303
    'used_fields' => array('administrative_area'),
304
    'required_fields' => array('administrative_area'),
305
    'administrative_area_label' => t('District'),
306
  );
307
  $address_formats['NZ'] = array(
308
    'used_fields' => array('dependent_locality', 'locality', 'postal_code'),
309
    'required_fields' => array('locality', 'postal_code'),
310
    'locality_label' => t('Town/City'),
311
    'postal_code_label' => t('Postcode'),
312
  );
313
  $address_formats['PA'] = array(
314
    'used_fields' => array('locality', 'administrative_area'),
315
  );
316
  $address_formats['PE'] = array(
317
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
318
    'locality_label' => t('District'),
319
    'administrative_area_label' => t('Department', array(), array('context' => 'Territory of a country')),
320
  );
321
  $address_formats['PF'] = array(
322
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
323
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
324
    'administrative_area_label' => t('Island'),
325
  );
326
  $address_formats['PG'] = array(
327
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
328
    'required_fields' => array('locality', 'administrative_area'),
329
  );
330
  $address_formats['PH'] = array(
331
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
332
  );
333
  $address_formats['PR'] = array(
334
    'used_fields' => array('locality', 'postal_code'),
335
    'required_fields' => array('locality', 'postal_code'),
336
    'postal_code_label' => t('ZIP code'),
337
  );
338
  $address_formats['PW'] = array(
339
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
340
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
341
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
342
    'postal_code_label' => t('ZIP code'),
343
  );
344
  $address_formats['RU'] = array(
345
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
346
    'required_fields' => array('locality', 'postal_code'),
347 fbb05e21 Assos Assos
    'render_administrative_area_value' => TRUE,
348 f066bdb5 Assos Assos
  );
349
  $address_formats['SC'] = array(
350
    'used_fields' => array('locality', 'administrative_area'),
351
    'administrative_area_label' => t('Island'),
352
  );
353
  $address_formats['SG'] = array(
354
    'used_fields' => array('postal_code'),
355
    'required_fields' => array('postal_code'),
356
  );
357
  $address_formats['SM'] = array(
358
    'used_fields' => array('locality', 'postal_code'),
359
    'required_fields' => array('postal_code'),
360
  );
361
  $address_formats['SO'] = array(
362
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
363
    'required_fields' => array('locality', 'administrative_area'),
364
  );
365
  $address_formats['SR'] = array(
366
    'used_fields' => array('locality', 'administrative_area'),
367
  );
368
  $address_formats['SV'] = array(
369
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
370
    'required_fields' => array('locality', 'administrative_area'),
371
  );
372
  $address_formats['TH'] = array(
373
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
374
  );
375
  $address_formats['TR'] = array(
376
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
377
    'required_fields' => array('locality', 'postal_code'),
378
    'locality_label' => t('District'),
379 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
380 f066bdb5 Assos Assos
  );
381
  $address_formats['TV'] = array(
382
    'used_fields' => array('locality', 'administrative_area'),
383
    'administrative_area_label' => t('Island'),
384
  );
385
  $address_formats['TW'] = array(
386
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
387
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
388
  );
389
  $address_formats['UA'] = array(
390
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
391
    'required_fields' => array('locality', 'postal_code'),
392
    'administrative_area_label' => t('Region', array(), array('context' => 'Territory of a country')),
393
  );
394
  $address_formats['UM'] = array(
395
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
396
    'required_fields' => array('locality', 'administrative_area'),
397
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
398
    'postal_code_label' => t('ZIP code'),
399
  );
400
  $address_formats['US'] = array(
401
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
402
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
403
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
404
    'postal_code_label' => t('ZIP code'),
405
  );
406
  $address_formats['UY'] = array(
407
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
408
  );
409
  $address_formats['UZ'] = array(
410
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
411
  );
412
  $address_formats['VE'] = array(
413
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
414
    'required_fields' => array('locality', 'administrative_area'),
415 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
416 f066bdb5 Assos Assos
  );
417
  $address_formats['VI'] = array(
418
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
419
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
420
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
421
    'postal_code_label' => t('ZIP code'),
422
  );
423
  $address_formats['VN'] = array(
424
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
425
  );
426
  $address_formats['ZA'] = array(
427
    'used_fields' => array('dependent_locality', 'locality', 'postal_code'),
428
    'required_fields' => array('locality', 'postal_code'),
429
  );
430
431
  // Allow other modules to alter the formats.
432
  drupal_alter('addressfield_address_formats', $address_formats);
433
434
  if (isset($address_formats[$country_code])) {
435
    $format = $address_formats[$country_code] + $default_values;
436
  }
437
  else {
438
    // There is no predefined address format for the requested country,
439
    // but the defaults should work fine.
440
    $format = $default_values;
441
  }
442
443
  return $format;
444
}