### Eclipse Workspace Patch 1.0 #P test_jll Index: sites/all/modules/contrib/addresses/addresses_cck/addresses_cck.module =================================================================== RCS file: /cvs/drupal/contributions/modules/addresses/addresses_cck/addresses_cck.module,v retrieving revision 1.21 diff -u -r1.21 addresses_cck.module --- sites/all/modules/contrib/addresses/addresses_cck/addresses_cck.module 3 Aug 2010 23:49:42 -0000 1.21 +++ sites/all/modules/contrib/addresses/addresses_cck/addresses_cck.module 23 Oct 2010 21:24:33 -0000 @@ -42,8 +42,8 @@ 'callbacks' => array( 'tables' => CONTENT_CALLBACK_DEFAULT, 'arguments' => CONTENT_CALLBACK_DEFAULT, - ), - ), + ), + ), ); } @@ -71,13 +71,13 @@ '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'), - ), + ), ); $afields = module_invoke_all('addressesfieldapi', 'fields'); @@ -180,7 +180,7 @@ $field_cck['field']['field'] = $field['field_name'] .'_'. $ftype; $field_cck['filter']['title'] .= ' '. $field_data['title']; -// unset($field_cck['field']['additional fields']); + // unset($field_cck['field']['additional fields']); $data[$table_alias][$field['field_name'] .'_'. $ftype] = $field_cck; } @@ -222,16 +222,16 @@ */ function addresses_cck_theme() { return array( - // Shows address in the default view: Multilines + // 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 + ), + // Shows address in only one line 'addresses_cck_formatter_single_line' => array( 'arguments' => array('element'), 'file' => 'addresses_cck.inc', - ), + ), ); } @@ -291,8 +291,63 @@ 'field types' => array('addresses_cck'), 'multiple values' => CONTENT_HANDLE_CORE, 'callbacks' => array('default value' => CONTENT_CALLBACK_DEFAULT), - ), + ), ); } +/** + * Implementation of hook_token_list(). + */ +function addresses_cck_token_list($type = 'all') { + if ($type == 'field' || $type == 'all') { + $tokens = array(); + + $fields = module_invoke_all('addressesfieldapi', 'fields'); + + foreach ($fields as $field => $field_data) { + if (isset($field_data['theme'])) { + + foreach ($field_data['theme'] as $theme => $theme_title) { + $tokens['addresses'][$field .'_'. $theme] = $theme_title; + } + } + } + return $tokens; + } +} +/** + * Implementation of hook_token_values(). + */ +function addresses_cck_token_values($type, $object = NULL) { + if ($type == 'field') { + $tokens = array(); + $item = $object[0]; + + $fields = module_invoke_all('addressesfieldapi', 'fields'); + + foreach ($fields as $field => $field_data) { + if (isset($field_data['theme'])) { + foreach (array_keys($field_data['theme']) as $format) { + // Sub-modules such as addresses_phone add a module specification to + // avoid clashes between modules. + if (!empty($field_data['module'])) { + $module = $field_data['module'] . '_'; + } + else { + $module = ''; + } + + if (isset($field_data['theme'])) { + + foreach ($field_data['theme'] as $theme => $theme_title) { + $tokens[$field .'_'. $theme] = theme('addresses_'. $module . $field, $item, $format); + } + } + + } + } + } + return $tokens; + } +} // vim: ts=2 sw=2 et syntax=php