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 @ 651307cd

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 fd5a8e62 Assos Assos
    'CR', 'CY', '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 fd5a8e62 Assos Assos
    '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 fd5a8e62 Assos Assos
    'AT', 'AX', 'BE', 'BL', 'CH', 'CZ', '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 fd5a8e62 Assos Assos
    'NL', 'NO', 'PL', 'PM', 'PN', 'PT', 'RE', 'SE', 'SH', 'SJ', 'SK', 'TC', 'WF',
62 f066bdb5 Assos Assos
    '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 fd5a8e62 Assos Assos
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
118 f066bdb5 Assos Assos
    '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 fd5a8e62 Assos Assos
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
128 f066bdb5 Assos Assos
    '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 fd5a8e62 Assos Assos
    'render_administrative_area_value' => TRUE,
239 f066bdb5 Assos Assos
  );
240
  $address_formats['KY'] = array(
241
    'used_fields' => array('administrative_area', 'postal_code'),
242
    'required_fields' => array('administrative_area'),
243
    'administrative_area_label' => t('Island'),
244
  );
245
  $address_formats['KZ'] = array(
246
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
247 9d13637e Assos Assos
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
248
    'administrative_area_label' => t('Region', array(), array('context' => 'Territory of a country')),
249 fbb05e21 Assos Assos
    'render_administrative_area_value' => TRUE,
250 9d13637e Assos Assos
  );
251
  $address_formats['LT'] = array(
252
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
253
    'required_fields' => array('locality', 'postal_code'),
254
    'administrative_area_label' => t('County'),
255
  );
256
  $address_formats['LV'] = array(
257
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
258
    'required_fields' => array('locality', 'postal_code'),
259
    'administrative_area_label' => t('Municipality'),
260 f066bdb5 Assos Assos
  );
261
  $address_formats['MH'] = array(
262
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
263
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
264
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
265
    'postal_code_label' => t('ZIP code'),
266
  );
267
  $address_formats['MN'] = array(
268
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
269
  );
270
  $address_formats['MP'] = array(
271
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
272
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
273
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
274
    'postal_code_label' => t('ZIP code'),
275
  );
276
  $address_formats['MX'] = array(
277
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
278
    'required_fields' => array('locality', 'postal_code'),
279
    'dependent_locality_label' => t('Neighborhood'),
280
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
281
  );
282
  $address_formats['MY'] = array(
283
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
284
    'required_fields' => array('locality', 'postal_code'),
285
    'dependent_locality_label' => t('Village / Township'),
286
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
287 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
288 f066bdb5 Assos Assos
  );
289
  $address_formats['MZ'] = array(
290
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
291
  );
292
  $address_formats['NF'] = array(
293
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
294
  );
295
  $address_formats['NG'] = array(
296
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
297
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
298
  );
299
  $address_formats['NI'] = array(
300
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
301
    'administrative_area_label' => t('Department', array(), array('context' => 'Territory of a country')),
302
  );
303
  $address_formats['NR'] = array(
304
    'used_fields' => array('administrative_area'),
305
    'required_fields' => array('administrative_area'),
306
    'administrative_area_label' => t('District'),
307
  );
308
  $address_formats['NZ'] = array(
309
    'used_fields' => array('dependent_locality', 'locality', 'postal_code'),
310
    'required_fields' => array('locality', 'postal_code'),
311
    'locality_label' => t('Town/City'),
312
    'postal_code_label' => t('Postcode'),
313
  );
314
  $address_formats['PA'] = array(
315
    'used_fields' => array('locality', 'administrative_area'),
316
  );
317
  $address_formats['PE'] = array(
318
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
319
    'locality_label' => t('District'),
320
    'administrative_area_label' => t('Department', array(), array('context' => 'Territory of a country')),
321
  );
322
  $address_formats['PF'] = array(
323
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
324
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
325
    'administrative_area_label' => t('Island'),
326
  );
327
  $address_formats['PG'] = array(
328
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
329
    'required_fields' => array('locality', 'administrative_area'),
330
  );
331
  $address_formats['PH'] = array(
332
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
333
  );
334
  $address_formats['PR'] = array(
335
    'used_fields' => array('locality', 'postal_code'),
336
    'required_fields' => array('locality', 'postal_code'),
337
    'postal_code_label' => t('ZIP code'),
338
  );
339
  $address_formats['PW'] = array(
340
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
341
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
342
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
343
    'postal_code_label' => t('ZIP code'),
344
  );
345
  $address_formats['RU'] = array(
346
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
347
    'required_fields' => array('locality', 'postal_code'),
348 fbb05e21 Assos Assos
    'render_administrative_area_value' => TRUE,
349 f066bdb5 Assos Assos
  );
350
  $address_formats['SC'] = array(
351
    'used_fields' => array('locality', 'administrative_area'),
352
    'administrative_area_label' => t('Island'),
353
  );
354
  $address_formats['SG'] = array(
355
    'used_fields' => array('postal_code'),
356
    'required_fields' => array('postal_code'),
357
  );
358
  $address_formats['SM'] = array(
359
    'used_fields' => array('locality', 'postal_code'),
360
    'required_fields' => array('postal_code'),
361
  );
362
  $address_formats['SO'] = array(
363
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
364
    'required_fields' => array('locality', 'administrative_area'),
365
  );
366
  $address_formats['SR'] = array(
367
    'used_fields' => array('locality', 'administrative_area'),
368
  );
369
  $address_formats['SV'] = array(
370
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
371
    'required_fields' => array('locality', 'administrative_area'),
372
  );
373
  $address_formats['TH'] = array(
374
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
375
  );
376
  $address_formats['TR'] = array(
377
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
378
    'required_fields' => array('locality', 'postal_code'),
379
    'locality_label' => t('District'),
380 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
381 f066bdb5 Assos Assos
  );
382
  $address_formats['TV'] = array(
383
    'used_fields' => array('locality', 'administrative_area'),
384
    'administrative_area_label' => t('Island'),
385
  );
386
  $address_formats['TW'] = array(
387
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
388
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
389
  );
390
  $address_formats['UA'] = array(
391
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
392
    'required_fields' => array('locality', 'postal_code'),
393
    'administrative_area_label' => t('Region', array(), array('context' => 'Territory of a country')),
394
  );
395
  $address_formats['UM'] = array(
396
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
397
    'required_fields' => array('locality', 'administrative_area'),
398
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
399
    'postal_code_label' => t('ZIP code'),
400
  );
401
  $address_formats['US'] = array(
402
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
403
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
404
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
405
    'postal_code_label' => t('ZIP code'),
406
  );
407
  $address_formats['UY'] = array(
408
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
409
  );
410
  $address_formats['UZ'] = array(
411
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
412
  );
413
  $address_formats['VE'] = array(
414
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
415
    'required_fields' => array('locality', 'administrative_area'),
416 9d13637e Assos Assos
    'render_administrative_area_value' => TRUE,
417 f066bdb5 Assos Assos
  );
418
  $address_formats['VI'] = array(
419
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
420
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
421
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
422
    'postal_code_label' => t('ZIP code'),
423
  );
424
  $address_formats['VN'] = array(
425
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
426
  );
427
  $address_formats['ZA'] = array(
428
    'used_fields' => array('dependent_locality', 'locality', 'postal_code'),
429
    'required_fields' => array('locality', 'postal_code'),
430
  );
431
432
  // Allow other modules to alter the formats.
433
  drupal_alter('addressfield_address_formats', $address_formats);
434
435
  if (isset($address_formats[$country_code])) {
436
    $format = $address_formats[$country_code] + $default_values;
437
  }
438
  else {
439
    // There is no predefined address format for the requested country,
440
    // but the defaults should work fine.
441
    $format = $default_values;
442
  }
443
444
  return $format;
445
}