Openstreetmap und Complianz: Uncaught TypeError: can’t access property „addLayer“, t is undefined

802 9411
Foto von Gabriele Lässer

Nachdem ich in einer Testumgebung Complianz installiert und eingerichtet hatte, war an der Stelle, an der normalerweise eine Leaflet Map zu sehen sein sollte (resp. eine Gelegenheit dem Laden der Map zuzustimmen) nur weiß zu sehen. Grund war die Fehlermeldung im Titel.

In den Einstellungen des Plugins kann man festlegen, dass Skript und CSS-Dateien auf dem eigenen Server liegen, statt auf einem CDN. Was dennoch von Fremdservern geholt wird (vor allem wenn man viele Maps aus unterschiedlichen Regionen der Welt benötigt) sind die so genannten „Tiles“, das Landkartenbildmaterial. Daher war OpenStreetMap als zustimmungspflichtige Ressource in den Complianz-Einstellungen ausgewählt.

Recherchen führten mich alsbald zu einem Lösungsansatz, wie man erforderliche Ressourcen rechtzeitig verfügbar macht, um diesen Fehler zu vermeiden.

grafik 6

Hier der Code der benötigt wird (nur Teil eins, da openstreetmap bereits als Service existiert), jedoch nur für das oben angeführte Plugin funktioniert. Die externen Ressourcen waren vorher über die Links die man in den Einstellungen unter Leaflet Map findet geholt und auf den Server übertragen worden, die Linkeinstellungen entsprechend geändert.

add_filter( 'cmplz_known_script_tags', 'cmplz_leafletmaps_directory_script' );
function cmplz_leafletmaps_directory_script( $tags ) {
	$tags[] = array(
		'name' => 'openstreetmaps',
		'category' => 'marketing',
		'placeholder' => 'openstreetmaps',
		'urls' => array(
			'WPLeafletMapPlugin'
		),
		'enable_placeholder' => '1',
		'placeholder_class' => 'leaflet-map',
		'enable_dependency' => '1',
		'dependency' => [
			'leaflet.js' => 'https://my-local.host/and-directory/leaflet.js',
		],
	);
	return $tags;
}

Link zur offiziellen Dokumentation von Complianz.

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable