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 @ fbb05e21

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', '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', 'HU', '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
    'render_administrative_area_value' => TRUE,
249
  );
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
  );
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
    'render_administrative_area_value' => TRUE,
287
  );
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
    'render_administrative_area_value' => TRUE,
348
  );
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
    'render_administrative_area_value' => TRUE,
380
  );
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
    'render_administrative_area_value' => TRUE,
416
  );
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
}