You are here

function _location_taxonomy_add_longname in Location Taxonomize 7

Same name and namespace in other branches
  1. 7.2 location_taxonomize.module \_location_taxonomy_add_longname()

Adds a longname field to a term

1 call to _location_taxonomy_add_longname()
location_taxonomize_process_loc in ./location_taxonomize.module
Determines if a location needs to be taxonomized. If so, it saves the appropriate terms Returns the number of terms added

File

./location_taxonomize.module, line 220

Code

function _location_taxonomy_add_longname(&$term, $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];

  // 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];
    $include = $fields[$hlevel_name];
    if ($include) {
      switch ($hlevel_name) {
        case 'country':
          if ($term_hlevel_name == 'country' || $ln_settings['country_naming'] == 'name') {
            $longname[] = $location['country_name'];
          }
          elseif ($location['country'] == 'us' && $ln_settings['usa']) {
            $longname[] = 'USA';
          }
          else {
            $longname[] = drupal_strtoupper($location['country']);
          }
          break;
        case 'province':
          if ($term_hlevel_name == 'province' || $ln_settings['province_naming'] == 'name') {
            $longname[] = $location['province_name'];
          }
          else {
            $longname[] = $location['province'];
          }
          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']) . ' ';
    }
  }

  // add the longname to the term
  $term->location_taxonomize_longname['und'][0]['value'] = $longname_str;
}