Zum Inhalt springen

locator klappt nicht mehr

Erstellt am 11. März 2013 · 17 Antworten · letzte Antwort am 26. März 2013

Tags: Frage

Bernie ·

Hallo Jenses,

vielen Dank für den Hinweis.

Hast Du Deinen Lösungsvorschlag schon getestet?

Gruß
Bernard

jenses ·
Bernie schrieb

Hallo Jenses,

vielen Dank für den Hinweis.

Hast Du Deinen Lösungsvorschlag schon getestet?

Gruß
Bernard

Ja, in meiner eigenen Extension, ich benutze ja nicht die Original-Ext:locator.
Die Verfahrensweise ist aber identisch.

tohe01 ·
Bernie schrieb

Hallo Jenses,

vielen Dank für den Hinweis.

Hast Du Deinen Lösungsvorschlag schon getestet?

Gruß
Bernard

Hallo Bernie,

wir haben es bei uns mit folgendem Code in der original Version geändert:

$apiURL = "http://maps.googleapis.com/maps/api/geocode/xml?address=$city,$country&sensor=false";
$apiURL = utf8_encode($apiURL);
$addressData = $this->get_webpage($apiURL);
$coordinates = $this->between("<location>", "</location>", $addressData);
$lat_lon->lat = $this->between("<lat>", "</lat>", $coordinates);
$lat_lon->lon = $this->between("<lng>", "</lng>", $coordinates);

Dies muss zweimal innerhalb von #####International####### geändert werden.

Mit besten Grüßen
Torsten

shaak ·

Hallo,
so ähnlich haben wir es auch angepasst.

Wir werden dem Entwickler auch eine Nachricht zukommen lassen, damit er die Extension updated.

Grüße
Sebastian

flanger ·

und ich such mich hier dumm und dusselig und denke schon ich spinn weil meine ext nicht mehr funktioniert hat... pheeewww... 10000 mal Danke für den Post....

wawo ·

Hallo!

Ich bin gerade dabei die Locator Extension komplett neu einzubinden und bekomme leider auch die ganze Zeit nach der Suche "Es wurden keine Firmen gefunden, vielleicht waren Ihre Angaben nicht korrekt." angezeigt.

Könnte mir jemand von euch vlt. mal die komplette angepasste Dateiclass.tx_locator_model.php zur Verfügung stellen, da sich leider an dem Fehler auch nach Eingabe der hier genannten Änderungen nichts verändert hat...

Noch eine Frage:
Verstehe ich das richtig dass durch anhacken von "tx_locator[geocode]" keine Längen + Breitengrade eingegeben werden müssen - die Extension also automatisch diese laut den Adresseingaben in der Map darstellen würde - wenn die Suche funktionieren würde?

flanger ·

Ja - der Fehler besteht auch in der aktuellen Version des Locators. Ich packe Dir mal meine Datei hier hin, aber ich verspreche nicht, dass die total richtig ist - bei mir funktioniert es allerdings damit wieder.

class.tx_locator_model.txt
87kB
wawo ·

Perfekt danke! Jetzt funktioniert die Suche - es werden Adressen gefunden. Leider wird bei allen Adressen aber immer in der Map (bei Suche nach Wiener Adressen) der Stephandsdom angezeigt - egal welche Anschrift eingegeben wurde in der Adressdatei.

Ich habe keine Koordinaten eingegeben sonder das Häckchen bei tx_locator(geocode) gesetzt.

Wie gesagt nutze ich eine völlig neue Installation und hatte bis dato noch nicht mit dem locator zu tun - vlt. liegt es jetzt an einer falsch Eingabe und nicht am Script...

wawo ·

Ok es ist offensichtlich so dass er immer die jeweilige Stadt findet und das Fähnchen im Zentrum positioniert - also die Strasse der Adressdatei ignoriert...

jenses ·

Ersetzt mal die function geocodeAddress($complete_address) in class.tx_locator_model.php mit der folgenden Version:

function geocodeAddress($complete_address) {

		//for urlencoding
		$vars = array (
			'city',
			'address',
			'country'
		);
		while (list (, $v) = each($vars)) {
			$complete_address[$v] = urlencode($complete_address[$v]);
		}
		$address = $complete_address['address'];
		$city = $complete_address['city'];
		$state = $complete_address['state'];
		$country = $complete_address['country'];
		$zipcode = $complete_address['zipcode'];


		if ($GLOBALS['TSFE']->localeCharset == 'utf-8')
			$city = mb_strtolower($city, "UTF-8"); // especially used for the polish dashed L


    if (!$lat_lon->lat && !$lat_lon->lon) {

      // API V3, da V2 seit 2013-03-08 den Dienst eingestellt hat:
      $generated_address = $address.','.$city.','.$state.','.$country.','.$zipcode;
      $apiURL = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$generated_address."&sensor=false";
      //$apiURL = utf8_encode($apiURL);
      $addressData = $this->get_webpage($apiURL);
      $addressData = t3lib_div::xml2array($addressData,$NSprefix='',$reportDocTag=FALSE);
      $coordinates = $addressData['result']['geometry']['location'];
      //$lat_lon = new \stdClass();
      $lat_lon->lat = $coordinates['lat'];
      $lat_lon->lon = $coordinates['lng'];

      $this->_GP['start']['city'] = utf8_encode($city);
      $this->_GP['start']['lon'][] .= $coordinates['lat'];
      $this->_GP['start']['lat'][] .= $coordinates['lng'];
		}

		return $lat_lon;
	}
flanger ·

das klappt bei mir nicht mit dem Ersetzen. Ich bekomme Parse Errors in der Zeile

if ($GLOBALS['TSFE']->localeCharset == 'utf-8')
			$city = mb_strtolower($city, "UTF-8&quot<img src="typo3conf/ext/mm_forum//res/smilies/icon_wink.gif" alt="icon_wink.gif" />; // especially used for the polish dashed L

und wenn ich die Zeile auskommentiere bzw. den // vor res entferne gehts auch nicht. Was mache ich falsch?

Ich verstehe auch nicht was der Aufruf fürs mm_forum da zu suchen hat?

shaak ·

beachte bitte, das das Forum folgenden Text ": x" ersetzt (ohne Leerzeichen natürlich.
Da entsteht dann sowas: <img src="typo3conf/ext/mm_forum//res/smilies/icon_mad.gif" alt="icon_mad.gif" />

und ": wink :" zu <img src="typo3conf/ext/mm_forum//res/smilies/icon_wink.gif" alt="icon_wink.gif" />