28.03.2018
1249 x gelesen

Fehler bei PHP 7.1 in der Erweiterung dlh_googlemaps für Contao

In der neuesten Version von Contao - im Zusammenspiel mit der neuesten Version der Google-Map-Erweiterung für Contao -  treten beim Einsatz von PHP 7.1 leider PHP-Fehler auf, die Sie aber mithilfe unserer kleinen Anleitung beheben können.

Problem

Wir setzen die Erweiterung dlh_googlemaps gerne in Contao ein und wollten jetzt aber für noch bessere Sicherheitsarchitektur und in Vorbereitung auf Contao 4 auf PHP 7.1 updaten.

Dies ist aber leider aufgrund der folgenden Fehlermeldungen nicht möglich.

Das Problem tritt bei Contao 3.5.34 auf. Über die zukünftige Situation können wir aktuell natürlich keine Auskunft geben. Bei PHP 7.0 tritt das Problem übrigens noch nicht auf.

Warning: A non-numeric value encountered in system/modules/dlh_googlemaps/classes/Googlemap.php on line 248

Sowie

Warning: A non-numeric value encountered in system/modules/dlh_googlemaps/classes/Googlemap.php on line 257

Lösung

Es muss abgefragt werden, ob die Größe des Icons überhaupt definiert wurde.

Die Datei Googlemap.php im Ordner /system/modules/dlh_googlemaps/classes/ muss folgendermaßen geändert werden:

Vorher (Zeile 240 bis 260)

$arrElement['iconSize'] = deserialize($arrElement['iconSize']);

$arrElement['iconAnchor'] = deserialize($arrElement['iconAnchor']);

if (!$arrElement['iconAnchor'][0] || $arrElement['iconAnchor'][0] == 0)
{
    $arrElement['iconAnchor'][0] = floor($arrElement['iconSize'][0] / 2);
}
else
{
    $arrElement['iconAnchor'][0] = floor($arrElement['iconSize'][0] / 2) + $arrElement['iconAnchor'][0];
}

if (!$arrElement['iconAnchor'][1] || $arrElement['iconAnchor'][1] == 0)
{
    $arrElement['iconAnchor'][1] = floor($arrElement['iconSize'][1] / 2);
}
else
{
    $arrElement['iconAnchor'][1] = floor($arrElement['iconSize'][1] / 2) + $arrElement['iconAnchor'][1];
}

Nachher

if($arrElement['iconSize'])
{
  $arrElement['iconSize'] = deserialize($arrElement['iconSize']);

  $arrElement['iconAnchor'] = deserialize($arrElement['iconAnchor']);

  if (!$arrElement['iconAnchor'][0] || $arrElement['iconAnchor'][0] == 0)
  {
      $arrElement['iconAnchor'][0] = floor($arrElement['iconSize'][0] / 2);
  }
  else
  {
      $arrElement['iconAnchor'][0] = floor($arrElement['iconSize'][0] / 2) + $arrElement['iconAnchor'][0];
  }

  if (!$arrElement['iconAnchor'][1] || $arrElement['iconAnchor'][1] == 0)
  {
      $arrElement['iconAnchor'][1] = floor($arrElement['iconSize'][1] / 2);
  }
  else
  {
      $arrElement['iconAnchor'][1] = floor($arrElement['iconSize'][1] / 2) + $arrElement['iconAnchor'][1];
  }
}

Hinweis

Es wird keine Haftung übernommen, wenn daraufhin Probleme in Ihrer Contao-Installation entstehen. Führen Sie daher vor Änderungen immer eine Sicherheit durch oder arbeiten Sie in einer Testumgebung.

Außerdem ist die Anleitung auch immer Projekt bezogen zu sehen. Sollten Sie andere Funktionen einsetzen als wir, dann kann es sein, dass dadurch nicht alle Probleme beseitigt werden oder evtl. sogar neue Probleme entstehen können.

Artikelbewertung

0.0 von 5 Sternen (0 Stimmen)
Sie können diesen Artikel bewerten indem Sie einen Kommentar abgeben.

Zurück

Einen Kommentar schreiben

Bewerten Sie diesen Artikel
Datenschutz*