Seite 1 von 1

Google Maps DSGVO-konform einbinden

Verfasst: Mo 3. Jun 2019, 15:43
von SvenLSK
Hallo,

gibt es ein fertiges Skript (für Anfänger anpassbar und in webEdition integierbar) für eine Google Maps DSGVO-konforme einbindung durch eine sog. 2 Klick-Lösung?

Derzeit kann ich nur bei Wordpress Addons hierfür finden.

Viele Grüße
Sven

Re: Google Maps DSGVO-konform einbinden

Verfasst: Di 4. Jun 2019, 10:05
von Finn
Moin Sven,

ich habe hier mal geschrieben wie wir das ganze machen:

viewtopic.php?f=125&t=41567

Falls das für dich in Frage kommt, dann kann ich dir die entsprechenden Templates gerne rüber schicken.

P.S. wie viel Anfänger bist du denn? Kannst du mit Cookies und PHP Konstanten und JS usw. was anfangen?
Je nachdem würde ich das dann entsprechend kommentieren :)

Re: Google Maps DSGVO-konform einbinden

Verfasst: Di 4. Jun 2019, 10:25
von SvenLSK
Moin Finn,

yo ich würde sagen ich kann mich im Quellcode irgendwie orientieren...könnte es aber nicht selbst erstellen...ich ergoogle mir dann meist was was sein könnte... :-(

Wenn du mir helfen kannst, wäre das natürlich klasse!

DANKE!
Viele Grüße
Sven

Re: Google Maps DSGVO-konform einbinden

Verfasst: Di 4. Jun 2019, 11:19
von Finn
Kommt die Lösung denn für dich in Frage?

Re: Google Maps DSGVO-konform einbinden

Verfasst: Di 4. Jun 2019, 12:29
von SvenLSK
Hej Finn,
ja klar - das ist eine super 2-Klick-Lösung.
Das wäre wohl auch so Datenschutzkonform!
DANKE!
Viele Grüße
Sven

Re: Google Maps DSGVO-konform einbinden

Verfasst: Di 4. Jun 2019, 21:54
von Finn
Alles klar, dann pack ich dir hier mal die entsprechenden Templates rein.

Ich nutze für das setzten und löschen der Cookies cookie.js, dass musss eingebunden werden.
https://github.com/js-cookie/js-cookie


session_management.tmpl -> wird als erstes oben im Master eingebunden
Startet eine Session und fragt ab ob Cookies gesetzt sind. Wenn ein entsprechendes Cookie gesetzt ist, wird eine konstante gesetzt. (Da kannst du die auswählen und ergänzen, die du brauchst.)

Code: Alles auswählen

<we:sessionStart /><?php

if( isset($_COOKIE['custom_google_maps']) ) {
		define('ALLOW_MAPS', 1);
}

if( isset($_COOKIE['custom_google_youtube']) ) {
		define('ALLOW_YOUTUBE', 1);
}


if( isset($_COOKIE['allow_tracking']) ) {
		define('ALLOW_TRACKING', 1);
}

if( isset($_COOKIE['allow_thirdparty']) ) {
		define('ALLOW_THIRDPARTY', 1);
}

?>
maps_management.tmpl
Diese Lösung funktioniert ganz gut, wenn die Karte in mehreren Seiten ist, und der Inhalt sich in einer extra PHP Datei befindet.
Hier wird jetzt abgefragt ob die Konstante für die Karteneinbindung gesetzt ist. Wenn ja wird über AJAX die PHP Datei init_maps.php nachgeladen. Diese enthält die Maps API. Der Inhalt der Datei wird in ein Div mit der ID "maps" geladen.

Ist die Kosntante nicht gesetzt, wird ein maps Layer gesetzt. Dieser kann redaktionell über ein Objekt gepflegt werden und enthält einen Button. Dieser führt die Funktion "maps_laden()" aus (Ist weiter unten definiert). "maps_laden" läd dann über AJAX die init_maps.php und setzt zusätzlich ein Cookie. In diesem Fall für 7 Tage. Als letztes wird der Layer bis zum reload der Seite mit der class hide ausgeblendet.
(Bei reload wird der Layer dann ja nicht mehr geladen weil dann die Konstante gesetzt ist.

Unten ist dann noch ein Skript was das Cookie löscht. Kann z.B. über einen Button im Datenschutztext aufgerufen werden. Die Funktion muss dann dort natürlich auch vorhanden sein.
(<button class="button red-button" onclick="maps_loeschen()">Google Maps deaktivieren</button>)

Code: Alles auswählen

<we:comment>Wenn Konstante gesetzt ist, Maps laden. Sonst Layer laden.</we:comment>
<?php
if( defined('ALLOW_MAPS') ) {
?>

<we:comment>Maps laden</we:comment>
<script>
	$(document).ready(function() {
		$.get('[b]/_extras/init_maps.php[/b]', function(data) {
			$('[b]#maps[/b]').html(data);
		})
	});
</script>


<?php
}
else {
?>
<we:comment>Maps Layer - Pflegbar über ein Objekt</we:comment>
<div id="maps-layer">
	<div class="grid-container">
		<div class="grid-x text-center align-middle padding-top" style="height:400px;">
			<div class="cell">
				<we:object id="40">
					<h4 class="h4"><we:field name="Titel" /></h4>
					<p>
						<we:field name="Text" />
					</p>
					<button class="button red-button" onclick="maps_laden()"><we:field name="Button-Text" /></button>
				</we:object>
			</div>
		</div>
	</div>
</div>
<we:comment>/Maps Layer</we:comment>

<we:comment>Die Maps .php laden, Cookie setzten und den Maps-Layer ausblenden</we:comment>
<script>
	function maps_laden() {
		$.get('/_extras/init_maps.php', function(data) {
			$('#maps').html(data);
		})
		Cookies.set('custom_google_maps', 'true', { expires: 7 });
		$( "#maps-layer" ).toggleClass( "hide" );
	}
</script>


<?php
}
?>
<we:comment>Ende des if-else Bereichs</we:comment>


<we:comment>Löschen des Cookies im Datenschutz</we:comment>
<script>
	function maps_loeschen() {
		Cookies.remove('custom_google_maps');
		location.reload(); 
	}
</script>
Hier nochmal eine Lösung für die Pflege in einem Template.

Dieses Template hat für die Pflege ein Textarea Feld um iFrames einzugeben. Dazu ein Bild für einen Layer

Code: Alles auswählen

	
<we:ifEditMode>YouTube-Iframe <br>
</we:ifEditMode>
<we:textarea name="youtube-iframe" inlineedit="true" wysiwyg="false" height="250px" />
<we:ifEditMode>Google-Iframe-Layer wählen<br></we:ifEditMode>
<we:img name="google-layer" thumbnailid="8" parentid="266" />
Bei der Ausgabe im Frontend frage ich dann wieder nach der Konstanten und gebe wenn vorhanden den Feldinhalt aus. Wenn nicht, dann wieder einen Layer mit Button.

Code: Alles auswählen

	
<we:ifNotEmpty name="youtube-iframe">
<?php
if( defined('ALLOW_YOUTUBE') ) {
?>
<div class="embed-container">
<we:textarea name="youtube-iframe" inlineedit="false" wysiwyg="true" />
</div>
<?php
}
else {
?>
<we:comment>YouTube Layer - Pflegbar über ein Objekt</we:comment>
<div id="maps-layer" style="background-image: url('<we:img name="google-layer" thumbnailid="9" parentid="266" only="src" />'); background-size: cover;">
<div class="grid-container">
<div class="grid-x text-center align-middle padding-top" style="height:300px;">
	<div class="cell layer-content">
		<we:object id="70">
			<h4 class="h4"><we:field name="Titel" /></h4>
				<p>
					<we:field name="Text" />
				</p>
<button class="button red-button" onclick="youtube_laden()">
	<we:field name="Button-Text" />
</button>
</we:object>
</div>
</div>
</div>
</div>


<?php
}
?>
Das YouTube laden Skript enthält dann kein AJAX, sondern setzt einfach den Cookie und macht einen Reload der Seite.

Code: Alles auswählen

	
	<script>
		function youtube_laden() {
			Cookies.set('custom_google_youtube', 'true', { expires: 7 });
			location.reload(); 
		}
	</script>
	
Ich hoffe das hilft weiter :) Eine ganze Menge Text, wenn du Fragen hast, dann gerne fragen!

Lieben Gruß
Finn

Re: Google Maps DSGVO-konform einbinden

Verfasst: Mi 5. Jun 2019, 14:05
von Finn
Ups, ich habe gerade gesehen ich habe z.T. [ b ] tags im Codebereich, die müssen dann natürlich entfernt werden ;)

Re: Google Maps DSGVO-konform einbinden

Verfasst: Do 6. Jun 2019, 12:39
von mokraemer
im Prinzip brauchst du aber die session_management.tmpl gar nicht. Du definierst ja nur das, was beim Request eh da ist.
Ich sehe gerade das wir beim var-Tag keine Cookies drin haben, denn sonst könnte man einfach

Code: Alles auswählen

<we:ifVarNotEmpty type="cookie" name="custom_google_maps">
google Maps einbinden...
</we:ifVarNotEmpty>
machen - ich denke das könnte man mal direkt für die 8.0.7 ergänzen.

Re: Google Maps DSGVO-konform einbinden

Verfasst: Do 6. Jun 2019, 15:13
von Finn
mokraemer hat geschrieben: Do 6. Jun 2019, 12:39 im Prinzip brauchst du aber die session_management.tmpl gar nicht. Du definierst ja nur das, was beim Request eh da ist.
Ich sehe gerade das wir beim var-Tag keine Cookies drin haben, denn sonst könnte man einfach

Code: Alles auswählen

<we:ifVarNotEmpty type="cookie" name="custom_google_maps">
google Maps einbinden...
</we:ifVarNotEmpty>
machen - ich denke das könnte man mal direkt für die 8.0.7 ergänzen.
Ja stimmt, dass wäre ne super Sache!

Re: Google Maps DSGVO-konform einbinden

Verfasst: Do 6. Jun 2019, 21:44
von WBTMagnum
Schaut so aus, als ob Marc das schon für die 8.0.7 ergänzt hat: https://qa.webedition.org/tracker/view.php?id=12386

Liebe Grüße,
Sascha

Re: Google Maps DSGVO-konform einbinden

Verfasst: Mi 19. Jun 2019, 09:05
von SvenLSK
Hallo Finn,
leider war ich eine Weile krank, daher erst jetzt meinen Dank für deine tolle Hilfe!
Ich muss mich hier jedoch erstmal reindenken und ausprobieren und hoffe zeitnah einen Erfolg hier posten zu können.
Viele Grüße
Sven

Re: Google Maps DSGVO-konform einbinden

Verfasst: Mi 19. Jun 2019, 14:22
von Finn
Moin Sven,
alles klar, lass mal hören wie es läuft. Wie gesagt, wenn Unklarheiten sind gerne fragen.