Projet

Général

Profil

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

root / drupal7 / sites / all / modules / addressfield / addressfield.address_formats.inc @ 9d13637e

1
<?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
 *   - 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
 */
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
    'render_administrative_area_value' => FALSE,
37
  );
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
    'CR', 'CY', 'CZ', 'DO', 'DZ', 'EC', 'EH', 'ET', 'FO', 'GE', 'GN', 'GT',
45
    'GW', 'HR', 'HT', 'HU', 'IL', 'IS', 'JO', 'KE', 'KG', 'KH', 'KW', 'LA',
46
    '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
  );
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
    'GL', 'GP', 'GR', 'GS', 'IM', 'IO', 'JE', 'LI', 'LU', 'MF', 'MQ', 'NC',
61
    '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
    'render_administrative_area_value' => TRUE,
82
  );
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
    'render_administrative_area_value' => TRUE,
120
  );
121
  $address_formats['CN'] = array(
122
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
123
    'required_fields' => array('locality', 'administrative_area'),
124
    '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
  $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
  $address_formats['ES'] = array(
147
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
148
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
149
    'render_administrative_area_value' => TRUE,
150
  );
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
    'render_administrative_area_value' => TRUE,
187
  );
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
    'render_administrative_area_value' => TRUE,
193
  );
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
    'render_administrative_area_value' => TRUE,
200
  );
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
    'render_administrative_area_value' => TRUE,
218
  );
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
    'render_administrative_area_value' => TRUE,
224
  );
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
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
247
    'administrative_area_label' => t('Region', array(), array('context' => 'Territory of a country')),
248
  );
249
  $address_formats['LT'] = array(
250
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
251
    'required_fields' => array('locality', 'postal_code'),
252
    'administrative_area_label' => t('County'),
253
  );
254
  $address_formats['LV'] = array(
255
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
256
    'required_fields' => array('locality', 'postal_code'),
257
    'administrative_area_label' => t('Municipality'),
258
  );
259
  $address_formats['MH'] = array(
260
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
261
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
262
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
263
    'postal_code_label' => t('ZIP code'),
264
  );
265
  $address_formats['MN'] = array(
266
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
267
  );
268
  $address_formats['MP'] = array(
269
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
270
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
271
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
272
    'postal_code_label' => t('ZIP code'),
273
  );
274
  $address_formats['MX'] = array(
275
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
276
    'required_fields' => array('locality', 'postal_code'),
277
    'dependent_locality_label' => t('Neighborhood'),
278
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
279
  );
280
  $address_formats['MY'] = array(
281
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
282
    'required_fields' => array('locality', 'postal_code'),
283
    'dependent_locality_label' => t('Village / Township'),
284
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
285
    'render_administrative_area_value' => TRUE,
286
  );
287
  $address_formats['MZ'] = array(
288
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
289
  );
290
  $address_formats['NF'] = array(
291
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
292
  );
293
  $address_formats['NG'] = array(
294
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
295
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
296
  );
297
  $address_formats['NI'] = array(
298
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
299
    'administrative_area_label' => t('Department', array(), array('context' => 'Territory of a country')),
300
  );
301
  $address_formats['NR'] = array(
302
    'used_fields' => array('administrative_area'),
303
    'required_fields' => array('administrative_area'),
304
    'administrative_area_label' => t('District'),
305
  );
306
  $address_formats['NZ'] = array(
307
    'used_fields' => array('dependent_locality', 'locality', 'postal_code'),
308
    'required_fields' => array('locality', 'postal_code'),
309
    'locality_label' => t('Town/City'),
310
    'postal_code_label' => t('Postcode'),
311
  );
312
  $address_formats['PA'] = array(
313
    'used_fields' => array('locality', 'administrative_area'),
314
  );
315
  $address_formats['PE'] = array(
316
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
317
    'locality_label' => t('District'),
318
    'administrative_area_label' => t('Department', array(), array('context' => 'Territory of a country')),
319
  );
320
  $address_formats['PF'] = array(
321
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
322
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
323
    'administrative_area_label' => t('Island'),
324
  );
325
  $address_formats['PG'] = array(
326
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
327
    'required_fields' => array('locality', 'administrative_area'),
328
  );
329
  $address_formats['PH'] = array(
330
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
331
  );
332
  $address_formats['PR'] = array(
333
    'used_fields' => array('locality', 'postal_code'),
334
    'required_fields' => array('locality', 'postal_code'),
335
    'postal_code_label' => t('ZIP code'),
336
  );
337
  $address_formats['PW'] = array(
338
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
339
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
340
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
341
    'postal_code_label' => t('ZIP code'),
342
  );
343
  $address_formats['RU'] = array(
344
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
345
    'required_fields' => array('locality', 'postal_code'),
346
  );
347
  $address_formats['SC'] = array(
348
    'used_fields' => array('locality', 'administrative_area'),
349
    'administrative_area_label' => t('Island'),
350
  );
351
  $address_formats['SG'] = array(
352
    'used_fields' => array('postal_code'),
353
    'required_fields' => array('postal_code'),
354
  );
355
  $address_formats['SM'] = array(
356
    'used_fields' => array('locality', 'postal_code'),
357
    'required_fields' => array('postal_code'),
358
  );
359
  $address_formats['SO'] = array(
360
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
361
    'required_fields' => array('locality', 'administrative_area'),
362
  );
363
  $address_formats['SR'] = array(
364
    'used_fields' => array('locality', 'administrative_area'),
365
  );
366
  $address_formats['SV'] = array(
367
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
368
    'required_fields' => array('locality', 'administrative_area'),
369
  );
370
  $address_formats['TH'] = array(
371
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
372
  );
373
  $address_formats['TR'] = array(
374
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
375
    'required_fields' => array('locality', 'postal_code'),
376
    'locality_label' => t('District'),
377
    'render_administrative_area_value' => TRUE,
378
  );
379
  $address_formats['TV'] = array(
380
    'used_fields' => array('locality', 'administrative_area'),
381
    'administrative_area_label' => t('Island'),
382
  );
383
  $address_formats['TW'] = array(
384
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
385
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
386
  );
387
  $address_formats['UA'] = array(
388
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
389
    'required_fields' => array('locality', 'postal_code'),
390
    'administrative_area_label' => t('Region', array(), array('context' => 'Territory of a country')),
391
  );
392
  $address_formats['UM'] = array(
393
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
394
    'required_fields' => array('locality', 'administrative_area'),
395
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
396
    'postal_code_label' => t('ZIP code'),
397
  );
398
  $address_formats['US'] = array(
399
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
400
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
401
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
402
    'postal_code_label' => t('ZIP code'),
403
  );
404
  $address_formats['UY'] = array(
405
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
406
  );
407
  $address_formats['UZ'] = array(
408
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
409
  );
410
  $address_formats['VE'] = array(
411
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
412
    'required_fields' => array('locality', 'administrative_area'),
413
    'render_administrative_area_value' => TRUE,
414
  );
415
  $address_formats['VI'] = array(
416
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
417
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
418
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
419
    'postal_code_label' => t('ZIP code'),
420
  );
421
  $address_formats['VN'] = array(
422
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
423
  );
424
  $address_formats['ZA'] = array(
425
    'used_fields' => array('dependent_locality', 'locality', 'postal_code'),
426
    'required_fields' => array('locality', 'postal_code'),
427
  );
428

    
429
  // Allow other modules to alter the formats.
430
  drupal_alter('addressfield_address_formats', $address_formats);
431

    
432
  if (isset($address_formats[$country_code])) {
433
    $format = $address_formats[$country_code] + $default_values;
434
  }
435
  else {
436
    // There is no predefined address format for the requested country,
437
    // but the defaults should work fine.
438
    $format = $default_values;
439
  }
440

    
441
  return $format;
442
}