1 |
85ad3d82
|
Assos Assos
|
<?php
|
2 |
|
|
|
3 |
|
|
/**
|
4 |
|
|
* @file
|
5 |
|
|
* Hide the country when only one country is available.
|
6 |
|
|
*/
|
7 |
|
|
|
8 |
|
|
$plugin = array(
|
9 |
|
|
'title' => t('Hide the country when only one is available'),
|
10 |
|
|
'format callback' => 'addressfield_format_address_hide_country',
|
11 |
|
|
'type' => 'address',
|
12 |
|
|
'weight' => -80,
|
13 |
|
|
);
|
14 |
|
|
|
15 |
|
|
/**
|
16 |
|
|
* Format callback.
|
17 |
|
|
*
|
18 |
|
|
* @see CALLBACK_addressfield_format_callback()
|
19 |
|
|
*/
|
20 |
|
|
function addressfield_format_address_hide_country(&$format, $address, $context = array()) {
|
21 |
f066bdb5
|
Assos Assos
|
// Hide the country element only if the whole field is required, otherwise
|
22 |
|
|
// there will always be an additional None option.
|
23 |
d51f9c7d
|
Assos Assos
|
if ($context['mode'] == 'form' && (empty($context['instance']) || $context['instance']['required'])) {
|
24 |
85ad3d82
|
Assos Assos
|
if (!empty($format['country']['#options']) && count($format['country']['#options']) == 1) {
|
25 |
|
|
$format['country']['#access'] = FALSE;
|
26 |
|
|
}
|
27 |
|
|
}
|
28 |
|
|
elseif ($context['mode'] == 'render') {
|
29 |
|
|
// However, in render mode, the element does not have an #options list, so
|
30 |
|
|
// we look instead in the field instance settings if given. If we find a
|
31 |
|
|
// single country option and it matches the country of the current address,
|
32 |
|
|
// go ahead and hide it.
|
33 |
|
|
if (!empty($context['instance']['widget']['settings']['available_countries']) &&
|
34 |
|
|
count($context['instance']['widget']['settings']['available_countries']) == 1) {
|
35 |
|
|
if (isset($context['instance']['widget']['settings']['available_countries'][$address['country']])) {
|
36 |
|
|
$format['country']['#access'] = FALSE;
|
37 |
|
|
}
|
38 |
|
|
}
|
39 |
|
|
}
|
40 |
|
|
} |