You are here

function _gm3_region_field_get_options in Google Maps API V3 7

Helper function to get the options for the region field.

2 calls to _gm3_region_field_get_options()
gm3_region_field_field_widget_form in gm3_region/gm3_region_field/gm3_region_field.module
Implements hook_field_widget_form().
gm3_region_gm3_combination_form_alter in gm3_region/gm3_region_field/gm3_region_field.module
Function to update the map on the combination form element.

File

gm3_region/gm3_region_field/gm3_region_field.module, line 231

Code

function _gm3_region_field_get_options() {

  // We cache this, as it should only change if the module is updated.
  $result = db_select('gm3_region_data', 'g')
    ->fields('g', array(
    'name',
    'continent',
    'iso_code',
    'level_4_code',
    'level_3_code',
    'level_2_code',
    'level_1_code',
  ))
    ->execute();
  $options = array();
  foreach ($result as $region) {
    if ($region->level_2_code == 0) {
      $options["{$region->level_1_code}"] = $region->name;
    }
    else {
      if ($region->level_3_code == '') {
        $options["{$region->level_1_code}:{$region->level_2_code}"] = "- {$region->name}";
      }
      else {
        if ($region->level_4_code == '') {
          $options["{$region->level_1_code}:{$region->level_2_code}:{$region->level_3_code}"] = "- - {$region->name}";
        }
        else {
          $options["{$region->level_1_code}:{$region->level_2_code}:{$region->level_3_code}:{$region->level_3_code}-{$region->level_4_code}"] = "- - - {$region->name}";
        }
      }
    }
  }
  uksort($options, '_gm3_region_field_array_sort');
  return $options;
}