function location_taxonomize_make_longname in Location Taxonomize 7.2
2 calls to location_taxonomize_make_longname()
- location_taxonomize_process_item in ./
location_taxonomize.module - Determines if a location needs to be taxonomized. If so, it saves the appropriate terms Returns an array containing two items: the first is the number of new terms saved, and the second is an array of all the terms that correspond to this object,…
- _location_taxonomy_add_longname in ./
location_taxonomize.module - Adds a longname field to a term
File
- ./
location_taxonomize.module, line 280
Code
function location_taxonomize_make_longname($hlevel, $location) {
// get settings
$settings = variable_get('location_taxonomize_settings');
$ln_settings = $settings['longname'];
$fields = $ln_settings['fields'];
$hierarchy = _location_taxonomize_get_hierarchy();
// the name of the hierarchy level of this term (i.e. 'city')
$term_hlevel_name = $hierarchy[$hlevel];
// translate the name into an internal field name if necessary
$term_hlevel_name_lt = location_taxonomize_convert_field_name($term_hlevel_name);
// no Long Name if this hlevel_name is not selected in config
if (!$fields[$term_hlevel_name]) {
return '';
}
$longname = array();
// collect parts of longname
for ($i = 0; $i <= $hlevel; $i++) {
$hlevel_name = $hierarchy[$i];
$hlevel_name_lt = location_taxonomize_convert_field_name($hlevel_name);
$include = $fields[$hlevel_name];
if ($include) {
switch ($hlevel_name_lt) {
case 'country':
if ($term_hlevel_name_lt == 'country' || $ln_settings['country_naming'] == 'name') {
if (isset($location[location_taxonomize_source_field_name('country_name')])) {
$longname[] = $location[location_taxonomize_source_field_name('country_name')];
}
else {
$longname[] = $location[location_taxonomize_source_field_name('country')];
}
}
elseif ($location[$hlevel_name] == 'us' && $ln_settings['usa']) {
$longname[] = 'USA';
}
else {
$longname[] = drupal_strtoupper($location[$hlevel_name]);
}
break;
case 'province':
if ($term_hlevel_name_lt == 'province' || $ln_settings['province_naming'] == 'name') {
if (isset($location[location_taxonomize_source_field_name('province_name')])) {
$longname[] = $location[location_taxonomize_source_field_name('province_name')];
}
else {
$longname[] = $location[location_taxonomize_source_field_name('province')];
}
}
else {
$longname[] = $location[$hlevel_name];
}
break;
default:
$longname[] = $location[$hlevel_name];
break;
}
}
}
// construct longname string from parts
$longname = array_reverse($longname);
$count = count($longname);
$longname_str = '';
for ($i = 0; $i < $count; $i++) {
$longname_str .= $longname[$i];
if ($i != $count - 1) {
$longname_str .= check_plain($ln_settings['separator']) . ' ';
}
}
return $longname_str;
}