| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 | <?phpfunction location_province_list_de() {  return array(    'BB' => 'Brandenburg',    'BE' => 'Berlin',    'BW' => 'Baden-Württemberg',    'BY' => 'Bayern',    'HB' => 'Bremen',    'HE' => 'Hessen',    'HH' => 'Hamburg',    'MV' => 'Mecklenburg-Vorpommern',    'NI' => 'Niedersachsen',    'NW' => 'Nordrhein-Westfalen',    'RP' => 'Rheinland-Pfalz',    'SH' => 'Schleswig-Holstein',    'SL' => 'Saarland',    'SN' => 'Sachsen',    'ST' => 'Sachsen-Anhalt',    'TH' => 'Thüringen'  );}/** * Parameters: *   -> $location_a is an associative array that represents a full location where *        'street'       => the street portions of the location *        'supplemental' => additional street portion of the location *        'province'     => the province, state, or territory *        'country'      => lower-cased two-letter ISO code (REQUIRED) *   -> $location_b is associative array that represents a full location in the same way that *       parameter $location_b does. * * Returns: a link to driving directions */function location_map_link_de($location = array(), $hide = array()) {  $map_links = array();  // For now, just call the suchen (tinfo) function.  May want to make this configurable on some level  // in order to maintain freedom of choice so users and site-admins don't have to be slaves  // to tinfo!.... not that I have anything personal against tinfo!.  if ($link = _location_map_link_de_suchen($location)) {    $map_links['suchen'] = $link;  }  return $map_links;}function _location_map_link_de_suchen($location = array()) {  $get_query = '?';  $get_query .= 'where=';  $query_parts = array();  if (isset($location['street'])) {    $query_parts[] = $location['street'];  }  if ($location['postal_code'] != '') {    $query_parts[] = $location['postal_code'];  }  if ($location['city'] != '') {    $query_parts[] = $location['city'];  }//  if ($location['number'] != '') {//    $query_parts[] = $location['number'];//  }  $get_query .= urlencode(implode(', ', $query_parts));  return ('http://www.suchen.de/lokalmap'. $get_query);}function location_map_link_de_providers() {  return array(    'suchen' => array(      'name' => 'suchen.de (T-Info)',      'url' => 'http://www.suchen.de/',      'tos' => 'http://www.suchen.de/agb',    ),    'google' => array(      'name' => 'Google Maps',      'url' => 'http://maps.google.com',      'tos' => 'http://www.google.com/help/terms_local.html',    ),  );}function location_map_link_de_default_providers() {  return array('google');}/** * Parameters: *   -> $location_a is an associative array that represents a full location where *        'street'       => the street portions of the location *        'supplemental' => additional street portion of the location *        'province'     => the province, state, or territory *        'country'      => lower-cased two-letter ISO code (REQUIRED) *   -> $location_b is associative array that represents a full location in the same way that *       parameter $location_b does. * * Returns: a link to driving directions * * For now, assume site-admin wants driving directions linked to tinfo! * Maybe later, we can add some kind of country-specific settings page that allows the site-admin to * decide which site to link to for driving directions. */function location_driving_directions_link_de($location_a, $location_b) {  return _location_driving_directions_link_de_suchen($location_a, $location_b);}/** * Parameters: *    Function that is called by location_driving_directions_link_ca() under assumption that it *    is the chosen function * * Returns: *    a URL with HTTP GET variables *    Depending on how full the locationes are, the URL will either point to the driving directions *    on tinfo! or, if only partial locationes are provided, a URL that points to the *form* for *    tinfo! driving directions where the form is filled with whatever fields have been provided *    for the partial location(es). */function _location_driving_directions_link_de_suchen($location_a, $location_b) {  foreach ($location_a as $field => $value) {    $location_a[$field] = trim($value);  }  foreach ($location_b as $field => $value) {    $location_b[$field] = trim($value);  }  if ($location_a['country'] == 'de' and $location_b['country'] == 'de') {    $get_query = '?';    // VON    $query_parts = array();    if (isset($location_a['street'])) {      $query_parts[] = $location_a['street'];    }    if ($location_a['postal_code'] != '') {      $query_parts[] = $location_a['postal_code'];    }    if ($location_a['city'] != '') {      $query_parts[] = $location_a['city'];    }    $get_query .= 'route_from='. urlencode(implode(', ', $query_parts));    // NACH    $query_parts = array();    if (isset($location_b['street'])) {      $query_parts[] = $location_b['street'];    }    if ($location_b['postal_code'] != '') {      $query_parts[] = $location_b['postal_code'];    }    if ($location_b['city'] != '') {      $query_parts[] = $location_b['city'];    }    $get_query .= '&route_to='. urlencode(implode(', ', $query_parts));    return ('http://www.suchen.de/route'. $get_query);  }}function location_map_link_de_google($location = array()) {  $query_params = array();  foreach (array('street', 'postal_code', 'city', 'country') as $field) {    if (isset($location[$field])) {      $query_params[] = $location[$field];    }  }  if (count($query_params)) {    return ('http://maps.google.com?q='. urlencode(implode(', ', $query_params)));  }  else {    return NULL;  }}function theme_location_de($location = array(), $hide = array()) {  $output = '';  if (count($location)) {    $output .= "\n";    $output .= '<div class="location vcard"><div class="adr">'."\n";    if (!empty($location['name']) && !in_array('name', $hide)) {      $output .= '<div class="fn">'. $location['name'] .'</div>';    }    if (!empty($location['street']) && !in_array('street', $hide)) {      $output .= '<div class="street-address">'. $location['street'];      if (!empty($location['additional']) && !in_array('street', $hide)) {        $output .= ' '. $location['additional'];      }      $output .='</div>';    }    if ((!empty($location['city']) && !in_array('city', $hide)) ||        (!empty($location['postal_codet']) && !in_array('postal_code', $hide))) {      $city_postal = array();      if (!empty($location['postal_code']) && !in_array('postal_code', $hide)) {        $city_postal[] = '<span class="postal-code">'. $location['postal_code'] .'</span>';      }      if (!empty($location['city']) && !in_array('city', $hide)) {        $city_postal[] = '<span class="locality">'. $location['city'] .'</span>';      }      $output .= '<div>'. implode(' ', $city_postal) .'</div>';    }    if (!in_array('country', $hide)) {      $output .= '<div class="country-name">'. t('Germany') .'</div>';    }    if (location_has_coordinates($location)) {      $output .=  '<div class="geo"><abbr class="latitude" title="'. $location['latitude'] .'" /><abbr class="longitude" title="'. $location['latitude'] .'" /></div>';    }    $output .= '</div></div>';  }  return $output;}/** * Returns a lat/lon pair of the approximate center of the given postal code in the given country * * @param $location *   An associative array $location where only postal code and country are necessary, but can have the keys: *     'street'       => the street portion of the location *     'supplemental' => additional street portion of the location *     'province'     => the province, state, or territory *     'country'      => lower-cased two-letter ISO code (REQUIRED) *     'postal_code'  => the international postal code for this location (REQUIRED) * * @return *   An associative array where *      'lat' => approximate latitude of the center of the postal code's area *      'lon' => approximate longitude of the center of the postal code's area * */function location_get_postalcode_data_de($location = array()) {  $dash_index = strpos($location['postal_code'], '-');  // First we strip slash off if we're dealing with a 9-digit US zipcode  if ($dash_index === FALSE) {    $location['postal_code'] = substr($location['postal_code'], 0, $dash_index);  }  // Now we pad the thing and query.  $row = db_query("SELECT * FROM {zipcodes} where country = :country AND zip = :zip", array(':country' => $location['country'], ':zip' => str_pad($location['postal_code'], 5, "0", STR_PAD_LEFT)))->fetchObject();  if ($row) {    return array('lat' => $row->latitude, 'lon' => $row->longitude, 'city' => $row->city, 'province' => $row->state, 'country' => $row->country);  }  else {    return NULL;  }}/** * Returns minimum and maximum latitude and longitude needed to create a bounding box. */function location_bounds_de() {  return array(    'minlng' => 5.87225,    'minlat' => 47.2249,    'maxlng' => 15.04765,    'maxlat' => 55.0839,  );}
 |