Benutzer:Dschwen/Koordinatenupdater
Der Koordinatenupdater erkennt Veränderungen an den Koordinateninformationen in geokodierten Artikeln und übermittelt sie an einen zentralen Server auf dem eine aktuelle Datenbank aller geokodierter Artikel vorgehalten wird.
Bisher wird diese Datenbank nur alle ein bis zwei Monate aus sogenannten Datenbank-Dumps generiert. Es kann also bis zu zwei Monate dauern, bis eine Änderung, wie eine Korrektur oder das Hinzufügen einer Koordinate sich auf Projekte wie die GoogleEarth Wikipedia-Layer, Wikipedia-Worls, oder den WikiMiniAtlas auswirken.
Für die bearbeitenden Autoren kann es mitunter motivationsdämpfend sein, wenn nicht unmittelbar die Auswirkung ihrer Arbeit sichtbar wird. Der Koordinatenupdater schafft hier abhilfe, da er zusaetzlich zum ein- bis zweimonatigen Zyklus instantane Updates hinzufügt.
Installation
[Bearbeiten | Quelltext bearbeiten]Um den Koordinatenupdater in Deinem Wikipedia-Profil zu aktivieren, füge einfach Deinem monobook.js file folgenden Textbaustein zu:
// [[Benutzer:Dschwen/coordupdate.js]] - diese Zeile bitte mitkopieren document.write('<script type="text/javascript" src="' + 'http://de.wikipedia.org/w/index.php?title=User:Dschwen/coordupdate.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
Dann shift+reload drücken.
Funktionsweise
[Bearbeiten | Quelltext bearbeiten]Beim Besuchen jedes geokodierten Artikels werden die geodaten aus dem Artikeltext extrahiert (genauer gesagt werden Links auf den GeoHack gesucht). Diese Daten werden per Cookie gespeichert (für max. 5 Minuten ). Wird die Seite bearbeitet wird dies ebenfalls per Cookie vermerkt. Bei einem Erneuten Besuch der Seite (z.B. nach Abschicken des Editformulars) werden in der Seite gefundene Daten mit den als Cookie gespeicherten Daten verglichen. Bei diskrepanz werden die Daten an den Toolserver geschickt. Dabei werden Übertragen: Title der Seite, neue Koordinaten Daten und der Benutzername des aktuell eingeloggten users (dieser ließe sich durch Abgleich mit der History des Artikels ohnehin herausfinden).
Die Übertragung an den Toolserver geschieht durch einfügen eines versteckten iframes in den DOM-Baum, und setzen des src Attributs auf ein PHP-Skript auf dem Toolserver (mit entsprechenden Parametern in der URL).
Warum nicht anders?
[Bearbeiten | Quelltext bearbeiten]Ich bin für Anregungen natürlich offen, aber möchte hier kurz erwähnen, dass ich mir durchaus Gedanken über alternative Herangehensweisen gemacht habe.
- Warum nicht alles auf der Editseite? Man könnte beim Laden der Editseite den Arktikeltext speichern und das Abschicken des Formulars beim Speichern des Artikels abfangen. Dann kann man schauen was sich im Artikeltext geändert hat, und braucht nicht mal Cookies zu setzen.
- Richtig, aber dann müsste mein Skript alle Geotemplates kennen. Und auch Templates, die Geotemplates einbinden (Ortsvorlagen etc.). So wie ich es gelöst habe muss ich nur nach Links auf den GeoHack suchen.
- Warum speicherst Du die Koordinaten nicht erst beim klicken auf den Edit-Button? Dann vermeidet man das Setzen unnützer Cookies.
- Richtig, mache ich auch noch. Dazu war ich bisher einfach zu faul :-)