Projet

Général

Profil

Paste
Télécharger (18,4 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / addressfield / addressfield.address_formats.inc @ f066bdb5

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
 *
25
 */
26
function addressfield_get_address_format($country_code) {
27
  $default_values = array(
28
    'used_fields' => array('locality'),
29
    'required_fields' => array('locality'),
30
    'dependent_locality_label' => t('Suburb'),
31
    'locality_label' => t('City'),
32
    'administrative_area_label' => t('Province'),
33
    'postal_code_label' => t('Postal code'),
34
  );
35

    
36
  $address_formats = array();
37
  // These formats differ from the default only by the presence of the
38
  // postal code in 'used_fields'.
39
  $countries_with_optional_postal_code = array(
40
    'AC', 'AD', 'AL', 'AZ', 'BA', 'BB', 'BD', 'BG', 'BH', 'BM', 'BN', 'BT',
41
    'CR', 'CY', 'CZ', 'DO', 'DZ', 'EC', 'EE', 'EH', 'ET', 'FO', 'GE', 'GN',
42
    'GT', 'GW', 'HR', 'HT', 'HU', 'IL', 'IS', 'JO', 'KE', 'KG', 'KH', 'KW',
43
    'LA', 'LB', 'LK', 'LR', 'LS', 'LT', 'LV', 'MA', 'MC', 'MD', 'ME', 'MG',
44
    'MK', 'MM', 'MT', 'MU', 'MV', 'NE', 'NP', 'OM', 'PK', 'PY', 'RO', 'RS',
45
    'SA', 'SI', 'SK', 'SN', 'SZ', 'TA', 'TJ', 'TM', 'TN', 'VA', 'VC', 'VG',
46
    'XK', 'ZM',
47
  );
48
  foreach ($countries_with_optional_postal_code as $code) {
49
    $address_formats[$code] = array(
50
      'used_fields' => array('locality', 'postal_code'),
51
    );
52
  }
53

    
54
  // These formats differ from the default only by the presence of the
55
  // postal code in 'used_fields' and 'required_fields'.
56
  $countries_with_required_postal_code = array(
57
    'AT', 'AX', 'BE', 'BL', 'CH', 'DE', 'DK', 'FI', 'FK', 'FR', 'GF', 'GG',
58
    'GL', 'GP', 'GR', 'GS', 'IM', 'IO', 'JE', 'LI', 'LU', 'MF', 'MQ', 'NC',
59
    'NL', 'NO', 'PL', 'PM', 'PN', 'PT', 'RE', 'SE', 'SH', 'SJ', 'TC', 'WF',
60
    'YT',
61
  );
62
  foreach ($countries_with_required_postal_code as $code) {
63
    $address_formats[$code] = array(
64
      'used_fields' => array('locality', 'postal_code'),
65
      'required_fields' => array('locality', 'postal_code'),
66
    );
67
  }
68

    
69
  $address_formats['AE'] = array(
70
    'used_fields' => array('administrative_area'),
71
    'administrative_area_label' => t('Emirate'),
72
  );
73
  $address_formats['AM'] = array(
74
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
75
  );
76
  $address_formats['AR'] = array(
77
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
78
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
79
  );
80
  $address_formats['AS'] = array(
81
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
82
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
83
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
84
    'postal_code_label' => t('ZIP code'),
85
  );
86
  $address_formats['AU'] = array(
87
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
88
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
89
    'locality_label' => t('City/Suburb'),
90
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
91
    'postal_code_label' => t('Postcode'),
92
  );
93
  $address_formats['BR'] = array(
94
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
95
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
96
    'dependent_locality_label' => t('Neighborhood'),
97
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
98
  );
99
  $address_formats['BS'] = array(
100
    'used_fields' => array('locality', 'administrative_area'),
101
    'administrative_area_label' => t('Island'),
102
  );
103
  $address_formats['BY'] = array(
104
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
105
  );
106
  $address_formats['CA'] = array(
107
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
108
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
109
  );
110
  $address_formats['CC'] = array(
111
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
112
  );
113
  $address_formats['CL'] = array(
114
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
115
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
116
  );
117
  $address_formats['CN'] = array(
118
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
119
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
120
    'dependent_locality_label' => t('District'),
121
  );
122
  $address_formats['CO'] = array(
123
    'used_fields' => array('locality', 'administrative_area'),
124
    'administrative_area_label' => t('Department', array(), array('context' => 'Territory of a country')),
125
  );
126
  $address_formats['CV'] = array(
127
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
128
    'administrative_area_label' => t('Island'),
129
  );
130
  $address_formats['CX'] = array(
131
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
132
  );
133
  $address_formats['EG'] = array(
134
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
135
    'administrative_area_label' => t('Governorate'),
136
  );
137
  $address_formats['ES'] = array(
138
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
139
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
140
  );
141
  $address_formats['FM'] = array(
142
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
143
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
144
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
145
    'postal_code_label' => t('ZIP code'),
146
  );
147
  $address_formats['GB'] = array(
148
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
149
    'required_fields' => array('locality', 'postal_code'),
150
    'locality_label' => t('Town/City'),
151
    'administrative_area_label' => t('County'),
152
    'postal_code_label' => t('Postcode'),
153
  );
154
  $address_formats['GI'] = array(
155
    'used_fields' => array('postal_code'),
156
  );
157
  $address_formats['GU'] = array(
158
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
159
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
160
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
161
    'postal_code_label' => t('ZIP code'),
162
  );
163
  $address_formats['HK'] = array(
164
    'used_fields' => array('locality', 'administrative_area'),
165
    'required_fields' => array('administrative_area'),
166
    'locality_label' => t('District'),
167
    'administrative_area_label' => t('Area', array(), array('context' => 'Territory of a country')),
168
  );
169
  $address_formats['HN'] = array(
170
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
171
    'required_fields' => array('locality', 'administrative_area'),
172
  );
173
  $address_formats['ID'] = array(
174
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
175
    'locality_label' => t('City/Regency'),
176
  );
177
  $address_formats['IE'] = array(
178
    'used_fields' => array('locality', 'administrative_area'),
179
    'locality_label' => t('Town/City'),
180
    'administrative_area_label' => t('County'),
181
  );
182
  $address_formats['IN'] = array(
183
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
184
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
185
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
186
    'postal_code_label' => t('PIN code'),
187
  );
188
  $address_formats['IQ'] = array(
189
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
190
    'required_fields' => array('locality', 'administrative_area'),
191
  );
192
  $address_formats['IR'] = array(
193
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
194
    'dependent_locality_label' => t('Neighborhood'),
195
  );
196
  $address_formats['IT'] = array(
197
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
198
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
199
  );
200
  $address_formats['JM'] = array(
201
    'used_fields' => array('locality', 'administrative_area'),
202
    'required_fields' => array('locality', 'administrative_area'),
203
    'administrative_area_label' => t('Parish', array(), array('context' => 'Territory of a country')),
204
  );
205
  $address_formats['JP'] = array(
206
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
207
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
208
    'administrative_area_label' => t('Prefecture'),
209
  );
210
  $address_formats['KI'] = array(
211
    'used_fields' => array('locality', 'administrative_area'),
212
    'administrative_area_label' => t('Island'),
213
  );
214
  $address_formats['KN'] = array(
215
    'used_fields' => array('locality', 'administrative_area'),
216
    'required_fields' => array('locality', 'administrative_area'),
217
    'administrative_area_label' => t('Island'),
218
  );
219
  $address_formats['KR'] = array(
220
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
221
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
222
    'dependent_locality_label' => t('District'),
223
  );
224
  $address_formats['KY'] = array(
225
    'used_fields' => array('administrative_area', 'postal_code'),
226
    'required_fields' => array('administrative_area'),
227
    'administrative_area_label' => t('Island'),
228
  );
229
  $address_formats['KZ'] = array(
230
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
231
  );
232
  $address_formats['MH'] = array(
233
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
234
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
235
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
236
    'postal_code_label' => t('ZIP code'),
237
  );
238
  $address_formats['MN'] = array(
239
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
240
  );
241
  $address_formats['MP'] = array(
242
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
243
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
244
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
245
    'postal_code_label' => t('ZIP code'),
246
  );
247
  $address_formats['MX'] = array(
248
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
249
    'required_fields' => array('locality', 'postal_code'),
250
    'dependent_locality_label' => t('Neighborhood'),
251
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
252
  );
253
  $address_formats['MY'] = array(
254
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
255
    'required_fields' => array('locality', 'postal_code'),
256
    'dependent_locality_label' => t('Village / Township'),
257
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
258
  );
259
  $address_formats['MZ'] = array(
260
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
261
  );
262
  $address_formats['NF'] = array(
263
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
264
  );
265
  $address_formats['NG'] = array(
266
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
267
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
268
  );
269
  $address_formats['NI'] = array(
270
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
271
    'administrative_area_label' => t('Department', array(), array('context' => 'Territory of a country')),
272
  );
273
  $address_formats['NR'] = array(
274
    'used_fields' => array('administrative_area'),
275
    'required_fields' => array('administrative_area'),
276
    'administrative_area_label' => t('District'),
277
  );
278
  $address_formats['NZ'] = array(
279
    'used_fields' => array('dependent_locality', 'locality', 'postal_code'),
280
    'required_fields' => array('locality', 'postal_code'),
281
    'locality_label' => t('Town/City'),
282
    'postal_code_label' => t('Postcode'),
283
  );
284
  $address_formats['PA'] = array(
285
    'used_fields' => array('locality', 'administrative_area'),
286
  );
287
  $address_formats['PE'] = array(
288
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
289
    'locality_label' => t('District'),
290
    'administrative_area_label' => t('Department', array(), array('context' => 'Territory of a country')),
291
  );
292
  $address_formats['PF'] = array(
293
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
294
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
295
    'administrative_area_label' => t('Island'),
296
  );
297
  $address_formats['PG'] = array(
298
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
299
    'required_fields' => array('locality', 'administrative_area'),
300
  );
301
  $address_formats['PH'] = array(
302
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
303
  );
304
  $address_formats['PR'] = array(
305
    'used_fields' => array('locality', 'postal_code'),
306
    'required_fields' => array('locality', 'postal_code'),
307
    'postal_code_label' => t('ZIP code'),
308
  );
309
  $address_formats['PW'] = array(
310
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
311
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
312
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
313
    'postal_code_label' => t('ZIP code'),
314
  );
315
  $address_formats['RU'] = array(
316
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
317
    'required_fields' => array('locality', 'postal_code'),
318
  );
319
  $address_formats['SC'] = array(
320
    'used_fields' => array('locality', 'administrative_area'),
321
    'administrative_area_label' => t('Island'),
322
  );
323
  $address_formats['SG'] = array(
324
    'used_fields' => array('postal_code'),
325
    'required_fields' => array('postal_code'),
326
  );
327
  $address_formats['SM'] = array(
328
    'used_fields' => array('locality', 'postal_code'),
329
    'required_fields' => array('postal_code'),
330
  );
331
  $address_formats['SO'] = array(
332
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
333
    'required_fields' => array('locality', 'administrative_area'),
334
  );
335
  $address_formats['SR'] = array(
336
    'used_fields' => array('locality', 'administrative_area'),
337
  );
338
  $address_formats['SV'] = array(
339
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
340
    'required_fields' => array('locality', 'administrative_area'),
341
  );
342
  $address_formats['TH'] = array(
343
    'used_fields' => array('dependent_locality', 'locality', 'administrative_area', 'postal_code'),
344
  );
345
  $address_formats['TR'] = array(
346
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
347
    'required_fields' => array('locality', 'postal_code'),
348
    'locality_label' => t('District'),
349
  );
350
  $address_formats['TV'] = array(
351
    'used_fields' => array('locality', 'administrative_area'),
352
    'administrative_area_label' => t('Island'),
353
  );
354
  $address_formats['TW'] = array(
355
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
356
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
357
  );
358
  $address_formats['UA'] = array(
359
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
360
    'required_fields' => array('locality', 'postal_code'),
361
    'administrative_area_label' => t('Region', array(), array('context' => 'Territory of a country')),
362
  );
363
  $address_formats['UM'] = array(
364
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
365
    'required_fields' => array('locality', 'administrative_area'),
366
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
367
    'postal_code_label' => t('ZIP code'),
368
  );
369
  $address_formats['US'] = array(
370
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
371
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
372
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
373
    'postal_code_label' => t('ZIP code'),
374
  );
375
  $address_formats['UY'] = array(
376
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
377
  );
378
  $address_formats['UZ'] = array(
379
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
380
  );
381
  $address_formats['VE'] = array(
382
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
383
    'required_fields' => array('locality', 'administrative_area'),
384
  );
385
  $address_formats['VI'] = array(
386
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
387
    'required_fields' => array('locality', 'administrative_area', 'postal_code'),
388
    'administrative_area_label' => t('State', array(), array('context' => 'Territory of a country')),
389
    'postal_code_label' => t('ZIP code'),
390
  );
391
  $address_formats['VN'] = array(
392
    'used_fields' => array('locality', 'administrative_area', 'postal_code'),
393
  );
394
  $address_formats['ZA'] = array(
395
    'used_fields' => array('dependent_locality', 'locality', 'postal_code'),
396
    'required_fields' => array('locality', 'postal_code'),
397
  );
398

    
399
  // Allow other modules to alter the formats.
400
  drupal_alter('addressfield_address_formats', $address_formats);
401

    
402
  if (isset($address_formats[$country_code])) {
403
    $format = $address_formats[$country_code] + $default_values;
404
  }
405
  else {
406
    // There is no predefined address format for the requested country,
407
    // but the defaults should work fine.
408
    $format = $default_values;
409
  }
410

    
411
  return $format;
412
}