You are here

function getlocations_blocks_postalcode_get in Get Locations 7

Same name and namespace in other branches
  1. 7.2 modules/getlocations_blocks/getlocations_blocks.module \getlocations_blocks_postalcode_get()

Return value

array Provides an array for a postalcode dropdown

1 call to getlocations_blocks_postalcode_get()
getlocations_blocks_postalcode_form in modules/getlocations_blocks/getlocations_blocks.module

File

modules/getlocations_blocks/getlocations_blocks.module, line 489
getlocations_blocks.module @author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL

Code

function getlocations_blocks_postalcode_get() {
  $settings = getlocations_blocks_get_var();
  $matches = array(
    '' => t('Select a postal code'),
  );
  $query = db_select('getlocations_fields', 'f');
  $query
    ->fields('f', array(
    'postal_code',
  ));
  if ($settings['postalcode_filter'] && $settings['postalcode_filter'] == 'field_name' && $settings['postalcode_filter_fieldname']) {
    $query
      ->join('getlocations_fields_entities', 'e', 'f.glid=e.glid');
    $query
      ->condition('e.field_name', $settings['postalcode_filter_fieldname']);
  }
  elseif ($settings['postalcode_filter'] && $settings['postalcode_filter'] == 'bundle' && $settings['postalcode_filter_bundle']) {
    $query
      ->join('getlocations_fields_entities', 'e', 'f.glid=e.glid');
    $query
      ->join('field_config_instance', 'i', 'e.field_name=i.field_name');
    $query
      ->condition('i.bundle', $settings['postalcode_filter_bundle']);
  }
  $result = $query
    ->execute();
  foreach ($result as $row) {
    if ($row->postal_code) {
      $matches[$row->postal_code] = getlocations_apoclean($row->postal_code);
    }
  }
  ksort($matches);
  return $matches;
}