<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=134.3.75.169</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=134.3.75.169"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/134.3.75.169"/>
	<updated>2026-05-06T18:29:21Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Hashed_Password&amp;diff=26076</id>
		<title>PHP - Hashed Password</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Hashed_Password&amp;diff=26076"/>
		<updated>2022-06-28T10:44:50Z</updated>

		<summary type="html">&lt;p&gt;134.3.75.169: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hashed Passwords sind der aktuelle Stand (2020) zum Speichern von Passwörtern. In PHP lassen sich diese recht leicht verifizieren. &lt;br /&gt;
&lt;br /&gt;
In der Datenbank sieht es etwa so aus:&lt;br /&gt;
 $2y$10$7xhhJTrNvXtYCXswa6NjKOQwOM6Sj7R12BPD3xBZToKxO61q4KInm&lt;br /&gt;
&lt;br /&gt;
== Passwort entschlüsseln ==&lt;br /&gt;
In PHP kann man es so entschlüsseln:&lt;br /&gt;
(Quelle: https://www.geeksforgeeks.org/how-to-secure-hash-and-salt-for-php-passwords/ Zugriff: 6/22)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  &lt;br /&gt;
  // Plaintext password entered by the user&lt;br /&gt;
  $plaintext_password = &amp;quot;Password@123&amp;quot;;&lt;br /&gt;
  &lt;br /&gt;
  // The hashed password retrieved from database&lt;br /&gt;
  $hash = &lt;br /&gt;
&amp;quot;$2y$10$8sA2N5Sx/1zMQv2yrTDAaOFlbGWECrrgB68axL.hBb78NhQdyAqWm&amp;quot;;&lt;br /&gt;
  &lt;br /&gt;
  // Verify the hash against the password entered&lt;br /&gt;
  $verify = password_verify($plaintext_password, $hash);&lt;br /&gt;
  &lt;br /&gt;
  // Print the result depending if they match&lt;br /&gt;
  if ($verify) {&lt;br /&gt;
      echo &amp;#039;Password Verified!&amp;#039;;&lt;br /&gt;
  } else {&lt;br /&gt;
      echo &amp;#039;Incorrect Password!&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hintergrundinfos ==&lt;br /&gt;
Oft sieht man Dollarzeichen gefolgt von anderen Zeichen in verschlüsselten Passwörtern. Dies ist die Bedeutung.&lt;br /&gt;
 $hash_type$random_salt$encrypted_password&lt;br /&gt;
&lt;br /&gt;
Der Hash Type steht für den verwendeten Algorhythmus&lt;br /&gt;
Mit dem zusätzlichen Salt verhindert man, dass gleiche Passwörter immer zur gleichen Zeichenfolge führen.&lt;br /&gt;
Am Ende steht das verschlüsselte Passwort&lt;/div&gt;</summary>
		<author><name>134.3.75.169</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Hashed_Password&amp;diff=26075</id>
		<title>PHP - Hashed Password</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Hashed_Password&amp;diff=26075"/>
		<updated>2022-06-28T09:56:53Z</updated>

		<summary type="html">&lt;p&gt;134.3.75.169: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hashed Passwords sind der aktuelle Stand (2020) zum Speichern von Passwörtern. In PHP lassen sich diese recht leicht verifizieren. &lt;br /&gt;
&lt;br /&gt;
In der Datenbank sieht es etwa so aus:&lt;br /&gt;
 $2y$10$7xhhJTrNvXtYCXswa6NjKOQwOM6Sj7R12BPD3xBZToKxO61q4KInm&lt;br /&gt;
&lt;br /&gt;
In PHP kann man es so entschlüsseln:&lt;br /&gt;
(Quelle: https://www.geeksforgeeks.org/how-to-secure-hash-and-salt-for-php-passwords/ Zugriff: 6/22)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  &lt;br /&gt;
  // Plaintext password entered by the user&lt;br /&gt;
  $plaintext_password = &amp;quot;Password@123&amp;quot;;&lt;br /&gt;
  &lt;br /&gt;
  // The hashed password retrieved from database&lt;br /&gt;
  $hash = &lt;br /&gt;
&amp;quot;$2y$10$8sA2N5Sx/1zMQv2yrTDAaOFlbGWECrrgB68axL.hBb78NhQdyAqWm&amp;quot;;&lt;br /&gt;
  &lt;br /&gt;
  // Verify the hash against the password entered&lt;br /&gt;
  $verify = password_verify($plaintext_password, $hash);&lt;br /&gt;
  &lt;br /&gt;
  // Print the result depending if they match&lt;br /&gt;
  if ($verify) {&lt;br /&gt;
      echo &amp;#039;Password Verified!&amp;#039;;&lt;br /&gt;
  } else {&lt;br /&gt;
      echo &amp;#039;Incorrect Password!&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.3.75.169</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Hashed_Password&amp;diff=26074</id>
		<title>PHP - Hashed Password</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Hashed_Password&amp;diff=26074"/>
		<updated>2022-06-28T09:45:13Z</updated>

		<summary type="html">&lt;p&gt;134.3.75.169: Die Seite wurde neu angelegt: „Hashed Passwords sind der aktuelle Stand (2020) zum Speichern von Passwörtern. In PHP lassen sich diese recht leicht verifizieren.   In der Datenbank sieht es…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hashed Passwords sind der aktuelle Stand (2020) zum Speichern von Passwörtern. In PHP lassen sich diese recht leicht verifizieren. &lt;br /&gt;
&lt;br /&gt;
In der Datenbank sieht es etwa so aus:&lt;br /&gt;
 $2y$10$7xhhJTrNvXtYCXswa6NjKOQwOM6Sj7R12BPD3xBZToKxO61q4KInm&lt;br /&gt;
&lt;br /&gt;
In PHP kann man es so entschlüsseln:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  &lt;br /&gt;
  // Plaintext password entered by the user&lt;br /&gt;
  $plaintext_password = &amp;quot;Password@123&amp;quot;;&lt;br /&gt;
  &lt;br /&gt;
  // The hashed password retrieved from database&lt;br /&gt;
  $hash = &lt;br /&gt;
&amp;quot;$2y$10$8sA2N5Sx/1zMQv2yrTDAaOFlbGWECrrgB68axL.hBb78NhQdyAqWm&amp;quot;;&lt;br /&gt;
  &lt;br /&gt;
  // Verify the hash against the password entered&lt;br /&gt;
  $verify = password_verify($plaintext_password, $hash);&lt;br /&gt;
  &lt;br /&gt;
  // Print the result depending if they match&lt;br /&gt;
  if ($verify) {&lt;br /&gt;
      echo &amp;#039;Password Verified!&amp;#039;;&lt;br /&gt;
  } else {&lt;br /&gt;
      echo &amp;#039;Incorrect Password!&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.3.75.169</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Wordpress_-_User&amp;diff=26073</id>
		<title>Wordpress - User</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Wordpress_-_User&amp;diff=26073"/>
		<updated>2022-05-31T10:16:11Z</updated>

		<summary type="html">&lt;p&gt;134.3.75.169: Die Seite wurde neu angelegt: „== Admin User über Datenbank anlegen ==  WordPress Admin-Benutzer über Datenbank anlegen	  Hat man über seinen WordPress User keinen Zugriff mehr auf die Se…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Admin User über Datenbank anlegen ==&lt;br /&gt;
&lt;br /&gt;
WordPress Admin-Benutzer über Datenbank anlegen	&lt;br /&gt;
&lt;br /&gt;
Hat man über seinen WordPress User keinen Zugriff mehr auf die Seite und kann aus irgendeinem Grund auch das Passwort nicht zurücksetzen z.B. weil die Seite gehackt und der Adminuser gelöscht wurde bleibt einem noch die Möglichkeit einen neuen WordPress Admin-Benutzer über die Datenbank anzulegen.&lt;br /&gt;
Zugriff auf die Datenbank mit phpMyAdmin&lt;br /&gt;
&lt;br /&gt;
Dazu meldet man sich in phpMyAdmin in seinem Hosting-Account an. Hier sieht man alle Tabellen die von WordPress benutzt werden. Für einen neuen Admin-Benutzer öffnen wir die Tabelle wp_users (das Präfix kann variieren, wie hier im Beispiel chs_users).&lt;br /&gt;
Ansicht der Tabelle chs_users in phpMyAdmin&lt;br /&gt;
WordPress Admin-Benutzer anlegen&lt;br /&gt;
&lt;br /&gt;
Über den Tab “Einfügen” gelangt man zum Formular für das Anlegen von neuen Benutzern.&lt;br /&gt;
&lt;br /&gt;
    ID: leer lassen, wird automatisch ausgefüllt&lt;br /&gt;
    user_login: Benutzername für den WordPress Adminbereich&lt;br /&gt;
    user_pass: Im Dropdown Feld die Funktion MD5 auswählen und dann das gewünschte Passwort eingeben.&lt;br /&gt;
    user_nicename: Nickname&lt;br /&gt;
    user_email: E-Mail Adresse&lt;br /&gt;
    user_url: Webseiten-URL&lt;br /&gt;
    user_registered: Datum und Zeit auswählen&lt;br /&gt;
    user_actication_key: leer lassen&lt;br /&gt;
    user_status: 0 eingeben.&lt;br /&gt;
    display_name: Öffentlicher Name der auf der Seite angezeigt wird&lt;br /&gt;
&lt;br /&gt;
Nachdem Ausfüllen des Formulars auf den Button “ok” klicken und der Benutzer wird auf der Datenbank gespeichert. Die ID (2) des angelegten Benutzers merken wir uns für den nächsten Schritt.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann folgende SQL query ausgeführt werden. Dafür einfach die korrekten Daten für die Datenbank, Tabelle und einzutragende Werte eingeben.&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `chs_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES (NULL, &amp;#039;pga-it&amp;#039;, MD5(&amp;#039;4sdHrt$pbqG5&amp;#039;), &amp;#039;pga-it&amp;#039;, &amp;#039;info@pga-it.de&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;2020-07-16 14:00:00&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;0&amp;#039;, &amp;#039;pga IT&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
Jetzt müssen wir dem Benutzer noch die entsprechenden Berechtigungen hinzufügen. Dazu wechseln wir zur Tabelle wp_usermeta (Bzw. in unserem Fall chs_usermeta). Hier müssen die folgenden beiden Einträge angelegt werden.&lt;br /&gt;
&lt;br /&gt;
    unmeta_id: leer lassen, wird automatisch ausgefüllt&lt;br /&gt;
    user_id: Die ID des gerade angelegten Benutzers&lt;br /&gt;
    meta_key: Folgendes eingeben: wp_capabilities&lt;br /&gt;
    meta_value: Folgendes eingeben: a:1:{s:13:”administrator”;s:1:”1″;}&lt;br /&gt;
&lt;br /&gt;
Button “ok” klicken und einen weiteren Eintrag wie folgt anlegen.&lt;br /&gt;
&lt;br /&gt;
    unmeta_id: leer lassen, wird automatisch ausgefüllt&lt;br /&gt;
    user_id: Die ID des gerade angelegten Benutzers&lt;br /&gt;
    meta_key: Folgendes eingeben: wp_user_level&lt;br /&gt;
    meta_value: Folgendes eingeben: 10&lt;br /&gt;
&lt;br /&gt;
Button “ok” klicken.&lt;br /&gt;
&lt;br /&gt;
Auch hier die SQL queries zu den beiden Einträgen. Datenbankname, Tabelle und die ID müssen entsprechend angepasst werden.&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `databasename`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, &amp;#039;4&amp;#039;, &amp;#039;wp_capabilities&amp;#039;, &amp;#039;a:1:{s:13:&amp;quot;administrator&amp;quot;;s:1:&amp;quot;1&amp;quot;;}&amp;#039;);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
INSERT INTO `databasename`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, &amp;#039;4&amp;#039;, &amp;#039;wp_user_level&amp;#039;, &amp;#039;10&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
Jetzt können wir uns mit dem Usernamen/E-Mail und Passwort im WordPress Adminbereich anmelden. Nach dem Login sollte man einmalig unter Benutzer den neu angelegten Benutzer bearbeiten und speichern – eine Änderung von Daten ist nicht notwendig.&lt;br /&gt;
&lt;br /&gt;
Falls das Problem durch unbefugten Zugriff auf die Seite aufgetreten ist, sollte man für die anderen Benutzer neue Passwörter vergeben und unbekannte Benutzer löschen.&lt;/div&gt;</summary>
		<author><name>134.3.75.169</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Processwire_-_Leaflet_Map_Marker_Modul&amp;diff=26072</id>
		<title>Processwire - Leaflet Map Marker Modul</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Processwire_-_Leaflet_Map_Marker_Modul&amp;diff=26072"/>
		<updated>2022-05-19T07:29:30Z</updated>

		<summary type="html">&lt;p&gt;134.3.75.169: /* Beispiele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Siehe auch ==&lt;br /&gt;
 https://processwire.com/talk/topic/9745-module-leaflet-map/?page=5 (Forum)&lt;br /&gt;
 https://github.com/gmclelland/FieldtypeLeafletMapMarker/blob/PW3/InputfieldLeafletMapMarker.module (Fork)&lt;br /&gt;
 https://leafletjs.com/ (Leaflet Hauptseite)&lt;br /&gt;
 https://leaflet-extras.github.io/leaflet-providers/preview/index.html (Karten Provider)&lt;br /&gt;
 https://github.com/Leaflet/Leaflet.markercluster (Doku für Cluster Modul)&lt;br /&gt;
 https://github.com/leaflet-extras/leaflet-providers&lt;br /&gt;
== Überblick ==&lt;br /&gt;
Wird aus Zeitgründen vom Entwickler nicht sehr aktiv weitergepflegt. Allerdings gibt es ordentlichen Support im Forum und ein paar Forks auf Github.&lt;br /&gt;
&lt;br /&gt;
Man kann für spezielle Anforderungen auch nur das Feld im Backend nutzen und Leaflet im Frontend selbst aufsetzen bzw. eigene Skripte nutzen. Das JavaScript für die Frontendausgabe im Modul findet man in:&lt;br /&gt;
 MarkupLeafletMap.js (JavaScript für Frontend-Ausgabe)&lt;br /&gt;
 MarkupLeafletMap.module (Inline JS für Frontend ) &lt;br /&gt;
&lt;br /&gt;
== Quickstart ==&lt;br /&gt;
* Benötigt die Konfiguration von &amp;#039;&amp;#039;&amp;#039;$additionalHeaderData&amp;#039;&amp;#039;&amp;#039;. Das ist einfach ein String der in &amp;#039;&amp;#039;_init.php&amp;#039;&amp;#039; angelegt und im &amp;#039;&amp;#039;Header eingebunden&amp;#039;&amp;#039; wird. Damit lassen sich Zusätzliche Daten per Template rendern. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Feldname&amp;#039;&amp;#039;&amp;#039; im Backend ist hier &amp;#039;&amp;#039;&amp;#039;map_leaflet&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Achtung Bug (V2.8.1): Immer den Geocoder auf der Seite benutzen. Die Standarddaten aus der Feldkonfiguration werden nicht richtig übernommen (Adressfeld) und es gibt Ausgabefehler.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$map = wire(&amp;#039;modules&amp;#039;)-&amp;gt;get(&amp;#039;MarkupLeafletMap&amp;#039;);&lt;br /&gt;
$additionalHeaderData = $map-&amp;gt;getLeafletMapHeaderLines();&lt;br /&gt;
$mapMarkup = $map-&amp;gt;render($page, &amp;#039;map_leaflet ,array(&amp;#039;markerColour&amp;#039; =&amp;gt; &amp;#039;green&amp;#039;));&lt;br /&gt;
&lt;br /&gt;
$content .= &amp;#039;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;content_bottom&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Button GM --&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;gmroute&amp;quot; style=&amp;quot;z-index: 30001;position: relative;height: 24px;right: 20px;top: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;a class=&amp;quot;gmroute-link&amp;quot; href=&amp;quot;https://www.google.de/maps/dir//Lange+Str.+9+D-72829+Engstingen&amp;quot; target=&amp;quot;_blank&amp;quot; style=&amp;quot;float: right;&amp;quot;&amp;gt;Route planen&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Map --&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;col span_12&amp;quot;&amp;gt;&amp;#039;.$mapMarkup.&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&amp;#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Daten manuell auslesen und verarbeiten ==&lt;br /&gt;
Einfaches Beispiel das auch bei AJAX Seiten funktioniert und einen Button zur Google Maps Wegbeschreibung enthält.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// If AJAX put this in _init.php else uncomment next two lines&lt;br /&gt;
// $map = wire(&amp;#039;modules&amp;#039;)-&amp;gt;get(&amp;#039;MarkupLeafletMap&amp;#039;);&lt;br /&gt;
// $additionalHeaderData = $map-&amp;gt;getLeafletMapHeaderLines();&lt;br /&gt;
&lt;br /&gt;
$myAdress = $page-&amp;gt;map_leaflet-&amp;gt;address;	// outputs the address you entered&lt;br /&gt;
$myLat = $page-&amp;gt;map_leaflet-&amp;gt;lat; 		// outputs the latitude&lt;br /&gt;
$myLng = $page-&amp;gt;map_leaflet-&amp;gt;lng; 		// outputs the longitude&lt;br /&gt;
$myZoom = $page-&amp;gt;map_leaflet-&amp;gt;zoom;		// outputs the zoom level&lt;br /&gt;
&lt;br /&gt;
$mapMarkup = &amp;quot;&lt;br /&gt;
&amp;lt;div id=&amp;#039;mleafletmap1&amp;#039;style=&amp;#039;height:400px;&amp;#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
var mleafletmap1 = new jsMarkupLeafletMap();&lt;br /&gt;
 mleafletmap1.setOption(&amp;#039;zoom&amp;#039;, $myZoom);&lt;br /&gt;
  mleafletmap1.init(&amp;#039;mleafletmap1&amp;#039;, $myLat, $myLng, &amp;#039;OpenStreetMap.Mapnik&amp;#039;);&lt;br /&gt;
  var default_marker_icon = L.AwesomeMarkers.icon({ icon: &amp;#039;home&amp;#039;, iconColor: &amp;#039;white&amp;#039;, prefix: &amp;#039;fa&amp;#039;, markerColor: &amp;#039;darkblue&amp;#039; });&lt;br /&gt;
  mleafletmap1.addMarkerIcon(default_marker_icon, $myLat, $myLng, &amp;#039;/kontakt/&amp;#039;, &amp;#039;Kontakt&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$content .= &amp;#039;&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;gmroute&amp;quot; style=&amp;quot;z-index: 30001;position: relative;height: 24px;right: 20px;top: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;a class=&amp;quot;gmroute-link&amp;quot; href=&amp;quot;https://www.google.de/maps/dir//Meine+Str.+9+D-72829+Engstingen&amp;quot; target=&amp;quot;_blank&amp;quot; style=&amp;quot;float: right;&amp;quot;&amp;gt;Route planen&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-sm-12&amp;quot; style=&amp;quot;height:400px;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
    .$mapMarkup.&amp;#039;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Multiple Markers ===&lt;br /&gt;
Die Render Funktion kann auch mit mehreren Seitenobjekten umgehen und erstellt dann eine Karte mit mehreren Markern.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$items = $pages-&amp;gt;find(&amp;quot;A SELECTOR THAT GETS YOUR PAGES WITH MARKER FIELDS&amp;quot;);&lt;br /&gt;
echo $map-&amp;gt;render($items, &amp;#039;YOUR MARKER FIELD&amp;#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Multiple Markers von selektierten Seiten ===&lt;br /&gt;
Es sollen Orte (LeafletMapMarker) von Unterseiten geholt werden und aus diesen eine Map mit mehreren Markern generiert werden. Viele Marker auf engem Raum werden geclustert.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen im Beispiel&lt;br /&gt;
* die Kindseiten werden über ihr template selektiert. Im Beispiel wird das durch ein Textfeld im Parent Template festgelegt (Feldname template_title)&lt;br /&gt;
* der Leaflet code wird nur bei Bedarf geladen. Das geschieht über eine Switch Anweisung im Repeater&lt;br /&gt;
* Leaflet Dateien sind lokal hinterlegt (siehe js und css Anweisungen).&lt;br /&gt;
 &lt;br /&gt;
mytemplate.php &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$additionalHeaderData .= &amp;#039;&lt;br /&gt;
&amp;lt;!-- Styles supporting the use of Leaflet.js --&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;templates.&amp;#039;vendors/leaflet/leaflet.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/leaflet-markercluster/MarkerCluster.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;templates.&amp;#039;styles/MarkerCluster.Custom.css&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Scripts supporting the use of Leaflet.js --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;templates.&amp;#039;vendors/leaflet/leaflet.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/leaflet-markercluster/leaflet.markercluster.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/leaflet-providers/leaflet-providers.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/MarkupLeafletMap.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Extend Leaflet with Awesome.Markers --&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/leaflet-awesome-markers/leaflet.awesome-markers.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/leaflet-awesome-markers/leaflet.awesome-markers.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
$map = wire(&amp;#039;modules&amp;#039;)-&amp;gt;get(&amp;#039;MarkupLeafletMap&amp;#039;);&lt;br /&gt;
$options = array(&amp;#039;markerColour&amp;#039; =&amp;gt; &amp;#039;green&amp;#039;);&lt;br /&gt;
$mySelector = &amp;#039;template=event&amp;#039;;&lt;br /&gt;
$places = $pages-&amp;gt;find($mySelector);&lt;br /&gt;
$mapMarkup = $map-&amp;gt;render($places, &amp;#039;location&amp;#039; ,$options);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Leaflet Skripte lokal einbinden (keine externen Skripte laden) ===&lt;br /&gt;
Dies sind die benötigten Header Zeilen. leaflet.css und leaflet.js sollte dann entsprechend vorhanden sein. Der Rest kommat aus dem Modul Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Font Awesome muß ebenfalls vorhanden sein (Bisher - September 2018, die 4er Version).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$additionalHeaderData = &amp;#039;&lt;br /&gt;
&amp;lt;!-- Styles supporting the use of Leaflet.js --&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;templates.&amp;#039;vendors/leaflet/leaflet.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/leaflet-markercluster/MarkerCluster.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;templates.&amp;#039;styles/MarkerCluster.Custom.css&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Scripts supporting the use of Leaflet.js --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;templates.&amp;#039;vendors/leaflet/leaflet.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/leaflet-markercluster/leaflet.markercluster.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/leaflet-providers/leaflet-providers.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/MarkupLeafletMap.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Extend Leaflet with Awesome.Markers --&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/leaflet-awesome-markers/leaflet.awesome-markers.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/leaflet-awesome-markers/leaflet.awesome-markers.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scroll Zoom abschalten ===&lt;br /&gt;
Am einfachsten im Modul (Nachteil: Vorsicht beim Update)&lt;br /&gt;
&lt;br /&gt;
Evtl. fürs Frontend könnte man auch im Nachhinein in einem eigenen Skript abschalten über die Funktion:&lt;br /&gt;
 map.scrollWheelZoom.disable(); // map ist die Mapinstanz. Muß evtl. angepasst werden.&lt;br /&gt;
&lt;br /&gt;
==== Im Frontend (Fieldtype)====&lt;br /&gt;
 /site/modules/FieldtypeLeafletMapMarker/MarkupLeafletMap.js&lt;br /&gt;
In MarkupLeafletMap.js die Option hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
this.options = {&lt;br /&gt;
        zoom: 10,&lt;br /&gt;
        center: null,&lt;br /&gt;
        scrollWheelZoom: false, // diese option einfügen&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    this._currentURL = &amp;#039;&amp;#039;;&lt;br /&gt;
    this.init = function(mapID, lat, lng, provider) {&lt;br /&gt;
        if(lat != 0) this.map = L.map(mapID, {&lt;br /&gt;
          center: [lat, lng],&lt;br /&gt;
          zoom: this.options.zoom,&lt;br /&gt;
          scrollWheelZoom: this.options.scrollWheelZoom // und dieses wenn nicht vorhanden&lt;br /&gt;
        } );&lt;br /&gt;
        L.tileLayer.provider(provider).addTo(this.map);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Im Backend ====&lt;br /&gt;
Hier muß mann den Code des Inputfield anpassen. Direkt in den Optionen hat das bei mir nicht funktioniert. Sieht so aus als ob nur der zoom statt alle Optionen gesetzt wird. Daher einfach nach der Instanzerzeugung der karte den ScrollWheelZoom abschalten:&lt;br /&gt;
&lt;br /&gt;
FieldtypeLeafletMapMarker/InputfieldLeafletMapMarker.js&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var map = L.map(document.getElementById(mapId)). setView([lat, lng], options.zoom); // nach dem hier&lt;br /&gt;
map.scrollWheelZoom.disable(); // dieses einfügen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Modul Gesture Handling ===&lt;br /&gt;
 [[Leaflet - Gesture Handling]]&lt;br /&gt;
 https://elmarquis.github.io/Leaflet.GestureHandling/&lt;br /&gt;
 Bildet das Verhalten von Google Maps nach:&lt;br /&gt;
Desktop &lt;br /&gt;
* Karte Ignoriert Mausrad&lt;br /&gt;
* User wird Informiert mit ctrl+scrool Karte zoomen&lt;br /&gt;
Mobile&lt;br /&gt;
* Karte ignoriert Ein Finger Drag&lt;br /&gt;
* User wird über 2 Finger Pan informiert&lt;br /&gt;
&lt;br /&gt;
==== In ProcessWire einbauen ====&lt;br /&gt;
* Unterordner &amp;#039;dist&amp;#039; in &amp;#039;Leaflet.GestureHandling&amp;#039; umbenennen und im FieldtypeLeafletMapMarker Modul unter assets ablegen&lt;br /&gt;
*  anpassen des JS für die Frontendausgabe&lt;br /&gt;
 /site/modules/FieldtypeLeafletMapMarker/MarkupLeafletMap.js&lt;br /&gt;
* Init Funktion anpassen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    this.init = function(mapID, lat, lng, provider) {&lt;br /&gt;
        if(lat != 0) this.map = L.map(mapID, {&lt;br /&gt;
          center: [lat, lng],&lt;br /&gt;
          zoom: this.options.zoom,&lt;br /&gt;
          scrollWheelZoom: this.options.scrollWheelZoom,&lt;br /&gt;
          gestureHandling: true&lt;br /&gt;
        } );&lt;br /&gt;
        L.tileLayer.provider(provider).addTo(this.map);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Einbinden von CSS und JS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Extend Leaflet with Gesture Handling --&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/Leaflet.GestureHandling/leaflet-gesture-handling.min.css&amp;quot; type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;#039;.$config-&amp;gt;urls-&amp;gt;siteModules.&amp;#039;FieldtypeLeafletMapMarker/assets/Leaflet.GestureHandling/leaflet-gesture-handling.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Allgemein ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;#039;map&amp;#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
	var cities = new L.LayerGroup();&lt;br /&gt;
&lt;br /&gt;
	L.marker([39.61, -105.02]).bindPopup(&amp;#039;This is Littleton, CO.&amp;#039;).addTo(cities),&lt;br /&gt;
	L.marker([39.74, -104.99]).bindPopup(&amp;#039;This is Denver, CO.&amp;#039;).addTo(cities),&lt;br /&gt;
	L.marker([39.73, -104.8]).bindPopup(&amp;#039;This is Aurora, CO.&amp;#039;).addTo(cities),&lt;br /&gt;
	L.marker([39.77, -105.23]).bindPopup(&amp;#039;This is Golden, CO.&amp;#039;).addTo(cities);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	var mbAttr = &amp;#039;Map data &amp;amp;copy; &amp;lt;a href=&amp;quot;http://openstreetmap.org&amp;quot;&amp;gt;OpenStreetMap&amp;lt;/a&amp;gt; contributors, &amp;#039; +&lt;br /&gt;
			&amp;#039;&amp;lt;a href=&amp;quot;http://creativecommons.org/licenses/by-sa/2.0/&amp;quot;&amp;gt;CC-BY-SA&amp;lt;/a&amp;gt;, &amp;#039; +&lt;br /&gt;
			&amp;#039;Imagery © &amp;lt;a href=&amp;quot;http://mapbox.com&amp;quot;&amp;gt;Mapbox&amp;lt;/a&amp;gt;&amp;#039;,&lt;br /&gt;
		mbUrl = &amp;#039;https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	var grayscale   = L.tileLayer(mbUrl, {id: &amp;#039;mapbox.light&amp;#039;, attribution: mbAttr}),&lt;br /&gt;
		streets  = L.tileLayer(mbUrl, {id: &amp;#039;mapbox.streets&amp;#039;,   attribution: mbAttr});&lt;br /&gt;
&lt;br /&gt;
	var map = L.map(&amp;#039;map&amp;#039;, {&lt;br /&gt;
		center: [39.73, -104.99],&lt;br /&gt;
		zoom: 10,&lt;br /&gt;
		layers: [grayscale, cities]&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	var baseLayers = {&lt;br /&gt;
		&amp;quot;Grayscale&amp;quot;: grayscale,&lt;br /&gt;
		&amp;quot;Streets&amp;quot;: streets&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	var overlays = {&lt;br /&gt;
		&amp;quot;Cities&amp;quot;: cities&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	L.control.layers(baseLayers, overlays).addTo(map);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Popup über URL Parameter öffnen ===&lt;br /&gt;
 https://stackoverflow.com/questions/29004617/open-leaflet-marker-using-url-parameter-not-working-now-that-markercluster-is-us&lt;br /&gt;
&lt;br /&gt;
== Weitere Kartenanbieter ==&lt;br /&gt;
Leaflet Map Marker liefert einige Provider mit. Man kann sie über die  &amp;#039;&amp;#039;&amp;#039;Option provider auswählen&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
 &amp;quot;provider&amp;quot; =&amp;gt; &amp;#039;OpenStreetMap.Mapnik&amp;#039;,&lt;br /&gt;
So lassen sich auch andere Anbieter nutzen:&lt;br /&gt;
 &amp;quot;provider&amp;quot; =&amp;gt; &amp;#039;Stadia.AlidadeSmooth&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
Das JavaScript für die Anbieter liegt in &amp;#039;&amp;#039;&amp;#039;leaflet-providers.js&amp;#039;&amp;#039;&amp;#039;. Dort kann man auch weitere Provider anlegen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// ...&lt;br /&gt;
Stadia: {&lt;br /&gt;
			url: &amp;#039;https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}{r}.png&amp;#039;,&lt;br /&gt;
			options: {&lt;br /&gt;
				maxZoom: 20,&lt;br /&gt;
				attribution: &amp;#039;&amp;amp;copy; &amp;lt;a href=&amp;quot;https://stadiamaps.com/&amp;quot;&amp;gt;Stadia Maps&amp;lt;/a&amp;gt;, &amp;amp;copy; &amp;lt;a href=&amp;quot;https://openmaptiles.org/&amp;quot;&amp;gt;OpenMapTiles&amp;lt;/a&amp;gt; &amp;amp;copy; &amp;lt;a href=&amp;quot;http://openstreetmap.org&amp;quot;&amp;gt;OpenStreetMap&amp;lt;/a&amp;gt; contributors&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			variants: {&lt;br /&gt;
				AlidadeSmooth: {&lt;br /&gt;
					url: &amp;#039;https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}{r}.png&amp;#039;&lt;br /&gt;
				},&lt;br /&gt;
				AlidadeSmoothDark: {&lt;br /&gt;
					url: &amp;#039;https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/{z}/{x}/{y}{r}.png&amp;#039;&lt;br /&gt;
				},&lt;br /&gt;
				OSMBright: {&lt;br /&gt;
					url: &amp;#039;https://tiles.stadiamaps.com/tiles/osm_bright/{z}/{x}/{y}{r}.png&amp;#039;&lt;br /&gt;
				},&lt;br /&gt;
				Outdoors: {&lt;br /&gt;
					url: &amp;#039;https://tiles.stadiamaps.com/tiles/outdoors/{z}/{x}/{y}{r}.png&amp;#039;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
// ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Probleme beheben ==&lt;br /&gt;
=== Feld zeigt an Error Geocoding ===&lt;br /&gt;
File Cache komplett löschen (assets/cache/...)&lt;/div&gt;</summary>
		<author><name>134.3.75.169</name></author>
	</entry>
</feed>