Fehler in „LumoNet Google Maps“-Extension: Neue API-Variablen

Seit einigen Tagen – mir ist es erst eben aufgefallen – hat Google an der API von Google Maps gearbeitet und die Variablen des Kartentyps (Karte, Satellit, Hybrid) verändert bzw. die alten Variablen rausgeworfen. So wurde aus der alten Variable G_MAP_TYPE (für normale Kartenansicht) G_NORMAL_MAP. Äquivalent haben sich auch die Variablen für den Satelliten- und Hybridmodus geändert.

Fakt ist, dass bspw. die TYPO3-Extension „LumoNet Google Maps“ (lumogooglemaps) mit diesen (alten) Variablen arbeitet und so den Kartentyp versucht zu bestimmen. Was seit neuestem allerdings nicht mehr funktionieren dürfte – zumindest bei einer meiner Kundenseiten. Dies äußert sich in dem Punkt, dass die Karte zwar generiert und angezeigt wird, aber keine Marker mehr erscheinen, was auf die nicht vorhandene Variable G_MAP_TYPE zurückzuführen war.

Um die Marker wieder ranzuholen, muss entsprechend in der API-Schnittstelle ein kurzer und schmerzloser Eingriff vorgenommen werden. Es ist zwar ein Rumgehacke in einer Core-Datei, aber es ist schlicht die schnellste Lösung, da ich nicht auf ein Update warten kann (man erkläre das mal dem Kunden …).

Folgende Zeilen der GoogleMapAPI.class.php müssen angepasst werden:

  • Z. 122 – legt den Standardwert fest; G_MAP_TYPE » G_NORMAL_MAP
  • ab Z. 397 – in der Funktion setMapType müssen alle Variablen angepasst werden:
    • G_HYBRID_TYPE » G_HYBRID_MAP
    • G_SATELLITE_TYPE » G_SATELLITE_MAP
    • G_MAP_TYPE » G_NORMAL_MAP

Eine komplette Entfernung/Auskommentierung der Zeile 969 würde das Variablenproblem lösen, führt aber dazu, dass man nur noch den Standardwert aufgedrückt bekommt – wer damit leben kann, kann’s auch so machen.

Haftungsgedöns: Wer in Core-Dateien rumwurschtelt, macht das auf eigene Gefahr. Der hier beschriebene Weg hat bei mir funktioniert und ich gehe mal davon aus, dass er es bei Euch auch tut. Wenn Ihr aber was kaputt macht, ist das Euer Bier, m’kay? ;)

Nachtrag: IE6

Wer hätte etwas anderes erwartet … Durch die Änderungen stellt der IE6 als einziger (noch benutzter) Browser den Lumo-Marker nicht da. Wenn man keine speziellen eigenständigen Marker nutzt, kann man durch die Angabe …

plugin {
  tx_lumogooglemaps_pi1 {
    marker.icon =
  }
}

… im TypoScript generell die Standardmarker von Google nutzen. Wer ganz spezielle Marker nutzt und auf die Darstellung im IE6 verzichten kann, der kann eine globale Variable definieren und nur den IE mit der ollen Google-Krücke „verzieren“:

[browser = msie6]
plugin.tx_lumogooglemaps_pi1.marker.icon =
[global]

Vielleicht kann man auch am Bildpfad arbeiten, aber das war mir persönlich jetzt zu aufwändig. Die Arbeit bezahlt ja wieder keiner …

Keine relevanten Artikel.

  • del.icio.us
  • Facebook
  • Y!GG
  • Digg
  • Technorati
  • StumbleUpon
  • Google Bookmarks
  • Hype
  • Oneview
  • Linkarena

1 Kommentar

  1. 1

    • Kommentar von schoeggii
    • 10. Februar 2009, 22:51

    Besten Dank, funktioniert bestens!

Schreibe einen Kommentar