You are here

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;
}