Index: addresses_cck/addresses_cck.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/addresses/addresses_cck/addresses_cck.module,v retrieving revision 1.16 diff -u -r1.16 addresses_cck.module --- addresses_cck/addresses_cck.module 11 Dec 2008 18:20:24 -0000 1.16 +++ addresses_cck/addresses_cck.module 9 Jan 2010 17:54:26 -0000 @@ -48,7 +48,7 @@ } /** - * Implementation of hook_formatter_info(). + * Implementation of hook_field_formatter_info(). * * Its a CCK hook to declare information about a formatter. * @@ -62,30 +62,25 @@ function addresses_cck_field_formatter_info() { $default = array( 'arguments' => array('element'), - 'multiple values' => CONTENT_HANDLE_CORE, 'field types' => array('addresses_cck'), + 'multiple values' => CONTENT_HANDLE_CORE, ); - $formatters = array( - 'default' => array( - 'label' => t('Default'), - 'arguments' => array('element'), - 'multiple values' => CONTENT_HANDLE_CORE, - 'field types' => array('addresses_cck'), - ), -// 'single_line' => array( -// 'label' => t('Single Line'), -// 'arguments' => array('element'), -// 'multiple values' => CONTENT_HANDLE_CORE, -// 'field types' => array('addresses_cck'), -// ), - ); + $formatters = array(); + $formatters['default'] = array( + 'label' => t('Default'), + ) + $default; + $formatters['singleline'] = array( + 'label' => t('Single Line') + ) + $default; + $formatters['city_aname'] = array( + 'label' => t('City and Address name') + ) + $default; $afields = module_invoke_all('addressesfieldapi', 'fields'); foreach ($afields as $ftype => $field) { if (!empty($field['theme'])) { foreach ($field['theme'] as $theme => $description) { - $formatters['addresses_field_'. $theme] = $default; - $formatters['addresses_field_'. $theme]['label'] = $description; + $formatters[$theme] = array('label' => $description) + $default; } } } @@ -157,30 +152,6 @@ // Return the table similar to those set on hook_schema. // It describes each database field that will be stored. return module_invoke_all('addressesfieldapi', 'fields'); - - case 'views data': - // Rerebuild the Views integration, since the address field is, - // in fact, a bundle of fields. - $db_info = content_database_info($field); - $table_alias = content_views_tablename($field); - $cck_default = content_views_field_views_data($field); - $data[$table_alias]['table'] = $cck_default[$table_alias]['table']; - unset($cck_default[$table_alias]['table']); - - $cck_default = array_shift($cck_default[$table_alias]); - - $ftypes = module_invoke_all('addressesfieldapi', 'fields'); - foreach ($ftypes as $ftype => $field_data) { - $field_cck = $cck_default; - $field_cck['title'] .= ' '. $field_data['title']; - $field_cck['field']['field'] = $field['field_name'] .'_'. $ftype; - $field_cck['filter']['title'] .= ' '. $field_data['title']; - -// unset($field_cck['field']['additional fields']); - $data[$table_alias][$field['field_name'] .'_'. $ftype] = $field_cck; - } - - return $data; } } @@ -203,18 +174,36 @@ * Implementation of hook_theme(). */ function addresses_cck_theme() { - return array( - // Shows address in the default view: Multilines - 'addresses_cck_formatter_default' => array( - 'arguments' => array('element'), - 'file' => 'addresses_cck.inc', - ), - // Shows address in only one line - 'addresses_cck_formatter_single_line' => array( - 'arguments' => array('element'), - 'file' => 'addresses_cck.inc', - ), + // Add the CCS + drupal_add_css(drupal_get_path('module', 'addresses') .'/addresses.css'); + + $default = array( + 'arguments' => array('element'), + 'file' => 'addresses_cck.inc', ); + + $theme = array(); + + // Shows address in the default view: Multilines + $theme['addresses_cck_formatter_default'] = $default; + + // Shows address in only one line + $theme['addresses_cck_formatter_singleline'] = $default; + + // Shows city and aname in one line + $theme['addresses_cck_formatter_city_aname'] = $default; + + // Shows a single field + $afields = module_invoke_all('addressesfieldapi', 'fields'); + foreach ($afields as $field) { + if (!empty($field['theme'])) { + foreach (array_keys($field['theme']) as $theme_name) { + $theme["addresses_cck_formatter_$theme_name"] = array('function' => 'theme_addresses_cck_formatter_field') + $default; + } + } + } + + return $theme; } /** Index: addresses_cck/addresses_cck.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/addresses/addresses_cck/addresses_cck.inc,v retrieving revision 1.4 diff -u -r1.4 addresses_cck.inc --- addresses_cck/addresses_cck.inc 17 Nov 2008 16:01:57 -0000 1.4 +++ addresses_cck/addresses_cck.inc 9 Jan 2010 17:54:26 -0000 @@ -22,10 +22,42 @@ * Show the Address using the Single Line view. * @ingroup themable */ -function theme_addresses_cck_formatter_single_line($element) { +function theme_addresses_cck_formatter_singleline($element) { // Include the important .inc file module_load_include('inc', 'addresses'); // Print the address using the one-line only theme return theme('addresses_singleline', $element['#item']); } + +/** + * Show City and Address Name in one line. + * @ingroup themable + */ +function theme_addresses_cck_formatter_city_aname($element) { + return $element['#item']['city'] . ': ' . $element['#item']['aname']; +} + +/** + * Show a single field of the address. + * @ingroup themable + */ +function theme_addresses_cck_formatter_field($element) { + switch ($element['#formatter']) { + case 'province_code': + return drupal_strtoupper($element['#item']['province']); + case 'province_name': + $provinces = _addresses_province_get($element['#item']['country']); + return $provinces[$element['#item']['province']]; + case 'country_code2': + return drupal_strtoupper($element['#item']['country']); + case 'country_code3': + $country_code3 = _addresses_country_get_code3(); + return drupal_strtoupper($country_code3[$element['#item']['country']]); + case 'country_name': + $countries = _addresses_country_get(); + return $countries[$element['#item']['country']]; + default: + return $element['#item'][$element['#formatter']]; + } +} Index: addresses.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/addresses/addresses.module,v retrieving revision 1.63 diff -u -r1.63 addresses.module --- addresses.module 14 Dec 2009 20:52:46 -0000 1.63 +++ addresses.module 9 Jan 2010 17:54:26 -0000 @@ -26,7 +26,7 @@ 'is_primary' => array( 'type' => 'int', 'size' => 'tiny', - 'title' => t('Primary Address Checkbox'), + 'title' => t('Primary Address'), 'description' => t('Mark it as the primary address or not (default is not)'), 'default' => FALSE, 'display' => ADDRESSES_FIELD_NONE, @@ -326,7 +326,7 @@ 'file' => 'addresses.settings.inc', ), // Shows addresses using a single line - 'addresses_address_single_line' => array( + 'addresses_singleline' => array( 'arguments' => array('addresses'), 'file' => 'addresses.inc', ), Index: addresses.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/addresses/addresses.inc,v retrieving revision 1.59 diff -u -r1.59 addresses.inc --- addresses.inc 14 Dec 2009 20:52:46 -0000 1.59 +++ addresses.inc 9 Jan 2010 17:54:26 -0000 @@ -703,7 +703,7 @@ /** * Print a formatted is_primary field. - * + * * @param $afields * All address fields values. * @param $format @@ -725,7 +725,7 @@ /** * Print a formatted aname field. - * + * * @param $afields * All address fields values. * @param $format @@ -740,14 +740,14 @@ case 'plain': return $aname; case 'hcard': - return ''. theme('placeholder', $aname) .''; + return '