Index: addresses.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/addresses/addresses.inc,v
retrieving revision 1.66
diff -u -p -r1.66 addresses.inc
--- addresses.inc 21 Sep 2010 01:43:32 -0000 1.66
+++ addresses.inc 5 Nov 2010 19:48:12 -0000
@@ -741,13 +741,13 @@ function theme_addresses_is_primary($afi
* A formatted aname field.
*/
function theme_addresses_aname($afields, $format = 'plain') {
- if (!empty($afields['aname'])) {
+ if (!empty($afields['aname'])) {
switch ($format) {
case 'plain':
return check_plain($afields['aname']);
case 'hcard':
- return ''. theme('placeholder', $afields['aname']) .'';
+ return '
'. t('Address Name') .': '. $afields['aname'] .'';
}
}
@@ -950,7 +950,7 @@ function theme_addresses_address_singlel
// Add the country
if (!empty($afields['country'])) {
- $output .= ', '. $afields['country'];
+ $output .= ', '. drupal_strtoupper($afields['country']);
}
return $output;
Index: addresses.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/addresses/addresses.module,v
retrieving revision 1.75
diff -u -p -r1.75 addresses.module
--- addresses.module 16 Sep 2010 20:56:42 -0000 1.75
+++ addresses.module 5 Nov 2010 19:48:12 -0000
@@ -27,7 +27,7 @@ function addresses_addressesfieldapi($op
$items['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' => 0,
'display' => ADDRESSES_FIELD_NONE,
@@ -393,7 +393,7 @@ function addresses_theme() {
'file' => 'addresses.settings.inc',
),
// Shows addresses using a single line
- 'addresses_address_singleline' => array(
+ 'addresses_singleline' => array(
'arguments' => array('addresses'),
'file' => 'addresses.inc',
),
Index: addresses_cck/addresses_cck.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/addresses/addresses_cck/addresses_cck.inc,v
retrieving revision 1.5
diff -u -p -r1.5 addresses_cck.inc
--- addresses_cck/addresses_cck.inc 17 Jul 2010 23:03:19 -0000 1.5
+++ addresses_cck/addresses_cck.inc 5 Nov 2010 19:48:12 -0000
@@ -22,10 +22,47 @@ function theme_addresses_cck_formatter_d
* 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_address_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:
+ // NOTE: This only works for plain... I'm not sure how to do the hcard/vcard.
+ if (strstr($element['#formatter'], '_plain')) {
+ return $element['#item'][substr($element['#formatter'], 0, -6)];
+ } else {
+ return false;
+ }
+ }
+}
Index: addresses_cck/addresses_cck.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/addresses/addresses_cck/addresses_cck.module,v
retrieving revision 1.22
diff -u -p -r1.22 addresses_cck.module
--- addresses_cck/addresses_cck.module 5 Nov 2010 17:22:56 -0000 1.22
+++ addresses_cck/addresses_cck.module 5 Nov 2010 19:48:12 -0000
@@ -48,7 +48,7 @@ function addresses_cck_field_info() {
}
/**
- * Implementation of hook_formatter_info().
+ * Implementation of hook_field_formatter_info().
*
* Its a CCK hook to declare information about a formatter.
*
@@ -65,27 +65,22 @@ function addresses_cck_field_formatter_i
'multiple values' => CONTENT_HANDLE_CORE,
'field types' => array('addresses_cck'),
);
- $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["{$ftype}_$theme"] = array('label' => $description) + $default;
}
}
}
@@ -168,20 +163,35 @@ function addresses_cck_field_settings($o
$cck_default = content_views_field_views_data($field);
$data[$table_alias]['table'] = $cck_default[$table_alias]['table'];
unset($cck_default[$table_alias]['table']);
+ $litmus = true;
$cck_default = array_shift($cck_default[$table_alias]);
+ // NOTE: It would be better to determine this in the loop based on the table field properties rather than forcing them to always be strings.
+ $cck_default['filter']['handler'] = 'views_handler_filter_string';
+
$ftypes = module_invoke_all('addressesfieldapi', 'fields');
foreach ($ftypes as $ftype => $field_data) {
$field_cck = $cck_default;
if (isset($field_data['title'])) {
$field_cck['title'] .= ' '. $field_data['title'];
}
+
+ // Adding in the field to the filter array
$field_cck['filter']['field'] = $field['field_name'] .'_'. $ftype;
-// $field_cck['filter']['title'] .= ' '. $field_data['title'];
+
+ // Tweaked to include the short title to distinguish multiple addresses in the same node when picking filters.
$field_cck['filter']['title'] = $cck_default['title short'] . ': ' . $field_cck['filter']['title'] . ' '. $field_data['title'];
// unset($field_cck['field']['additional fields']);
+
+ // NOTE: This is crude, but accomplishes what we want.
+ if ($litmus) {
+ $litmus = false;
+ } else {
+ unset($field_cck['field']);
+ }
+
$data[$table_alias][$field['field_name'] .'_'. $ftype] = $field_cck;
}
@@ -222,18 +232,36 @@ function addresses_cck_geocode_handlers_
* 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 $ftype => $field) {
+ if (!empty($field['theme'])) {
+ foreach (array_keys($field['theme']) as $theme_name) {
+ $theme["addresses_cck_formatter_{$ftype}_$theme_name"] = array('function' => 'theme_addresses_cck_formatter_field') + $default;
+ }
+ }
+ }
+
+ return $theme;
}
/**