diff --git a/all/modules/contrib/addresses/addresses_cck/addresses_cck.module b/all/modules/contrib/addresses/addresses_cck/addresses_cck.module index cdfbb2e..2b7babf 100755 --- a/all/modules/contrib/addresses/addresses_cck/addresses_cck.module +++ b/all/modules/contrib/addresses/addresses_cck/addresses_cck.module @@ -295,4 +295,61 @@ function addresses_cck_widget_info() { ); } +/** + * 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