From c862042e24b5a85eedaca09eaa35a5d29b0d87f0 Mon Sep 17 00:00:00 2001 From: Mac_Weber Date: Tue, 2 Jul 2013 15:03:20 -0300 Subject: [PATCH] Issue #973056 by recidive, Mac_Weber, rfsbsb, wundo, barraponto: fix Brazilian address. --- addressfield.css | 7 +++++++ plugins/format/address.inc | 47 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/addressfield.css b/addressfield.css index 3d7fd40..c72f468 100644 --- a/addressfield.css +++ b/addressfield.css @@ -8,6 +8,13 @@ div.addressfield-container-inline.country-GB > div.form-item { margin-right: auto; /* LTR */ } +div.addressfield-container-inline.country-BR > div.form-item:first-child, +div.addressfield-container-inline.country-BR > div.form-item:last-child { + clear: both; + float: none; + margin-right: auto; /* LTR */ +} + /* Clear-fix markup for the inline container */ div.addressfield-container-inline:after { content: "."; diff --git a/plugins/format/address.inc b/plugins/format/address.inc index 33c6e25..215a996 100644 --- a/plugins/format/address.inc +++ b/plugins/format/address.inc @@ -54,6 +54,13 @@ function addressfield_format_address_generate(&$format, $address, $context = arr '#required' => TRUE, '#attributes' => array('class' => array('postal-code')), ); + $format['locality_block']['dependent_locality'] = array( + '#title' => t('Neighborhood'), + '#tag' => 'div', + '#attributes' => array('class' => array('dependent-locality')), + '#size' => 30, + '#render_option_value' => FALSE, + ); $format['locality_block']['locality'] = array( '#title' => t('City'), '#size' => 30, @@ -283,7 +290,7 @@ function addressfield_format_address_generate(&$format, $address, $context = arr ); $format['locality_block']['administrative_area']['#title'] = t('Province'); } - else if ($address['country'] == 'BR') { + elseif ($address['country'] == 'BR') { $format['locality_block']['administrative_area']['#render_option_value'] = TRUE; $format['locality_block']['administrative_area']['#options'] = array( '' => t('--'), @@ -315,6 +322,44 @@ function addressfield_format_address_generate(&$format, $address, $context = arr 'SP' => t('São Paulo'), 'TO' => t('Tocantins'), ); + // Change some titles to make translation easier. + $format['street_block']['#attributes'] = array( + 'class' => array('addressfield-container-inline'), + ); + $format['street_block']['thoroughfare'] = array( + '#title' => t('Thoroughfare'), + '#tag' => NULL, + '#attributes' => array('class' => array('thoroughfare')), + '#size' => 30, + // The #required will be automatically set to FALSE when processing. + '#required' => TRUE, + ); + $format['street_block']['premise'] = array( + '#title' => t('Complement'), + '#tag' => NULL, + '#attributes' => array('class' => array('premise')), + '#size' => 20, + '#prefix' => ', ', + ); + $format['locality_block']['locality']['#suffix'] = ' - '; + // Hide suffixes and prefixes while in form. + if ($context['mode'] == 'form') { + $format['street_block']['premise']['#prefix'] = NULL; + $format['street_block']['premise']['#suffix'] = NULL; + $format['locality_block']['locality']['#suffix'] = NULL; + } + // Render an extra field for 'Neighborhood'. + $format['locality_block']['dependent_locality']['#render_option_value'] = TRUE; + // Change some weights to conform local standards + // Neighborhood. + $format['locality_block']['dependent_locality']['#weight'] = 0; + // City. + $format['locality_block']['locality']['#weight'] = 5; + // State. + $format['locality_block']['administrative_area']['#weight'] = 10; + // Postal Code. + $format['locality_block']['postal_code']['#weight'] = 16; + $format['locality_block']['postal_code']['#tag'] = 'div'; } else if ($address['country'] == 'CA') { $format['locality_block']['administrative_area']['#options'] = array( -- 1.7.10.4