Open havutcuoglu opened 1 year ago
Ich habe die Erweiterung komplett entfernt und versucht erneut zu installieren. Dabei kam wieder derselbe Fehler. Siehe Screenshot.
Undefined global variable $LEAFLET_LIBRARIES und das führt dazu, dass Frontend und Backend nicht funktioniert.
Für diejenigen, die ebenfalls auf dasselbe Problem stoßen.
Die Erweiterung kann einfach die libs
nicht unter assets
generieren.
Jede Abhängigkeit ist auch irgendwie anders aufgebaut. Nachdem ich mit meinen Reparaturversuchen gescheitert bin, habe ich die Einträge aus der contao-leaflet-libraries/module/config/config.php
in die globale config.php
kopiert und die assets
von Hand in assets/leaflet/libs
kopiert, damit die Erweiterung überhaupt funktioniert.
Ist zwar nicht Update sicher, aber da ich eilig habe und nicht warten kann, ist es momentan die beste und einfachste Lösung.
Das Problem durfte ich auch schon kennenlernen. Mit den bekannten Hacks habe ich es geschafft das Modul zu installieren (Contao 4.13.24 + Leaflet 3.2.4) und nachdem ich die libs manuell kopiert habe, wurde mir zumindest im Backend die Karte korrekt dargestellt.
Im Frontend ist es aber noch das selbe: "Uncaught ReferenceError: L is not defined". Lt. Stackoverflow soll es an der Reihenfolge liegen, wie die CSS/JS Dateien eingebunden werden. Ich bin aber gerade noch zu blöd um herauszufinden, wie ich das korrigiere.
Gibt es da noch Ideen / Lösungsansätze? Ich bin auch absolut offen für dreckige Workarounds (muss es zumindest in meiner lokalen DEV Umgebung zum laufen bekommen).
Die Karte lädt nicht im Frontend weil die nötigen JS/CSS Dateien nicht geladen werden. Ich habe die folgenden Globals in der system/config/localconfig.php
eingetragen:
$GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/libs/leaflet/leaflet.js|static';
$GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/libs/leaflet-omnivore/leaflet-omnivore.min.js|static';
$GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/libs/leaflet-providers/leaflet-providers.min.js|static';
$GLOBALS['TL_CSS'][] = 'assets/leaflet/libs/leaflet/leaflet.css';
Kann sein das dass nicht alle sind, aber für mich lädt die Karte im Frontend mit Layern aus "Vorkonfigurierter Karte", Markern und Popups.
Damit es für jeden verständlich ist.
Fehler:
PHP Warning: Undefined global variable $LEAFLET_LIBRARIES in /var/www/vhosts/..../domain.com/vendor/netzmacht/contao-leaflet-maps/src/Frontend/Assets/LibrariesConfiguration.php on line 54 12:47:05 CRITICAL [console] Error thrown while running command "cache:warmup". Message: "ArrayIterator::__construct(): Argument #1 ($array) must be of type array, null given" ["exception" => TypeError { …},"command" => "cache:warmup","message" => "ArrayIterator::__construct(): Argument #1 ($array) must be of type array, null given"]
Lösung:
contao-leaflet-libraries/module/config/config.php
in root
Verzeichnis contao/config/config.php
übertragen. Eventuell muss diese Ordnerstruktur und Datei neu erstellt werden.libs
unter assets/leaflet/libs
kopieren. Auch hier kann es sein, dass die Ordnerstruktur neu angelegt werden muss.Cache leeren und schon funktioniert alles wieder.
Hier muss der Entwickler sich Zeitnehmen und schauen, woran das Problem liegt. Das ist natürlich kein Dauerzustand, aber dieser Workaround funktioniert für mich, bis der Bugfix herauskommt.
Hallo,
ich habe die Erweiterung installiert und hatte schon Probleme mit
$LEAFLET_LIBRARIES
, weil diese nicht definiert sind. Bin in dascontao/config.php
und hab es provisorisch definiert.Danach kann man Backend und Frontend normal aufrufen.
Allerdings, sobald man eine Karte definieren möchte, bekommt man im Backend keine Kartenanzeige und viele JS Fehler.
Auch in Frontend taucht der Fehler
caught ReferenceError: L is not defined
Fix hier löst das Problem nicht.Contao Version: 4.13.21 Map Version 3.2.4