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.
Diese Artikel wurden bisher am häufigsten gelesen (Zähler seit 13.11.2021)
Newsletter Anmeldung
Wir versenden nur informative und relevante Inhalte, höchstens einmal im Monat.