diff --git a/plugins/format/address-optional.inc b/plugins/format/address-optional.inc new file mode 100644 index 0000000..201e40e --- /dev/null +++ b/plugins/format/address-optional.inc @@ -0,0 +1,36 @@ + t('Make all fields optional (Not recommended)'), + 'format callback' => 'addressfield_format_address_optional', + 'type' => 'address', + 'weight' => 100, +); + +/** + * Format callback. + * + * @see CALLBACK_addressfield_format_callback() + */ +function addressfield_format_address_optional(&$format, $address, $context = array()) { + if (isset($format['name_block'])) { + if (isset($format['name_block']['name_line'])) { + $format['name_block']['name_line']['#required'] = FALSE; + } + elseif (isset($format['name_block']['first_name'])) { + $format['name_block']['first_name']['#required'] = FALSE; + $format['name_block']['last_name']['#required'] = FALSE; + } + } + $format['street_block']['thoroughfare']['#required'] = FALSE; + $format['locality_block']['postal_code']['#required'] = FALSE; + $format['locality_block']['dependent_locality']['#required'] = FALSE; + $format['locality_block']['locality']['#required'] = FALSE; + $format['locality_block']['administrative_area']['#required'] = FALSE; +}