<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.opencaching.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dl6hbo</id>
	<title>Opencaching-Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.opencaching.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dl6hbo"/>
	<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php/Spezial:Beitr%C3%A4ge/Dl6hbo"/>
	<updated>2026-05-14T08:56:49Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Cmanager&amp;diff=6658</id>
		<title>Cmanager</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Cmanager&amp;diff=6658"/>
		<updated>2015-11-01T07:51:41Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;cmanager ist eine auf Java basierende Software vom Opencaching.de-User [http://www.opencaching.de/viewprofile.php?userid=316615 Samsung1], die Logs zwischen Geocaching.com und Opencaching.de vergleicht. &lt;br /&gt;
Das Programm liest dazu eine vom Nutzer ausgewählte &amp;quot;Funddatei&amp;quot;(z.B. myfounds.gpx) von Geocaching.com ein und vergleicht diese via [[OKAPI]] mit den Funden des angegebenen Opencaching.de-Nutzers.&lt;br /&gt;
Ausgegeben wird aktuell eine Liste der Duplikate(Caches die auf Geocaching.com und Opencaching.de vorhanden sind). D.h. der Nutzer muss die Caches händisch nachloggen. In Zukunft wird vom Entwickler eine automatische Logübertragung angestrebt. &lt;br /&gt;
&lt;br /&gt;
=== Bedinung ===&lt;br /&gt;
*Menu → Settings: OC-Namen eingeben&amp;lt;br /&amp;gt;&lt;br /&gt;
*Menu → Open: GPX-Datei laden&amp;lt;br /&amp;gt;&lt;br /&gt;
*List → Find on OC: Sucht alle Caches, die der Nutzer bei GCcom gefunden hat und bei OC gelistet sind &amp;lt;br /&amp;gt;&lt;br /&gt;
*List → Find on OC(exclude found): Sucht alle Caches, die der Nutzer bei GCcom gefunden hat und bei OC noch &#039;&#039;&#039;nicht geloggt&#039;&#039;&#039; hat&lt;br /&gt;
&lt;br /&gt;
=== myfounds-Datei erzeugen ===&lt;br /&gt;
Um die Funde abzugleichen muss eine Funddatei mit allen Funden eines Nutzers von Geocaching.com erstellt werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
An die benötigte myfounds-Dateie mit den eigenen Funden von Geocaching.com kommnt man über zwei Wege:&amp;lt;br /&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Für GCcom-Basis-Member:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Als Basismember muss man sich seine founds.gpx selber erstellen, z.B. mit &#039;&#039;&#039;geotoad&#039;&#039;&#039;. Dort in den Filtern dann folgendes auswählen: &#039;&#039;&#039;(18) cache found by [&amp;lt;username&amp;gt;]&#039;&#039;&#039;&amp;lt;br /&amp;gt; &lt;br /&gt;
*&#039;&#039;&#039;Für GCcom-Premium-Member:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Auf GCcom: Your Profil→Play→[https://www.geocaching.com/pocket/ Pocket Queries]&amp;lt;br /&amp;gt;&lt;br /&gt;
#Dort im Reiter &amp;quot;Active Pocket Queries&amp;quot; (ggf.) ganz nach unten scrollen und bei &amp;quot;My Finds&amp;quot; auf den Button &amp;quot;Add to Querie&amp;quot; klicken, um eine aktuelle Datei zu erzeugen.&amp;lt;br /&amp;gt;&lt;br /&gt;
#Anschließend in den Reiter &amp;quot;Pocket Queries Ready for Download&amp;quot; wechseln und &amp;quot;My Finds Pocket Query&amp;quot; downloaden.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
Aktuelle Versionsnummer: 0.1l (31.10.2015)&amp;lt;br /&amp;gt;&lt;br /&gt;
Aktuelle Version: [http://www.rq-project.net/others/cm/cm.zip http://www.rq-project.net/others/cm/cm.zip] &amp;lt;br /&amp;gt;&lt;br /&gt;
Mirror OConly: [https://drive.google.com/folderview?id=0B644rrci7awHc2w3T1FoellWRjQ&amp;amp;usp=sharing#grid Versionen 0.1b,e,h,i,j in Google-Drive]&lt;br /&gt;
&lt;br /&gt;
=== Weitere Links ===&lt;br /&gt;
Aktueller Forumsthread für Feedback &amp;amp; Co.: [http://forum.opencaching.de/index.php?topic=4348.0 Erste Seite] / [http://forum.opencaching.de/index.php?topic=4348.100000 Aktuelle Seite]&amp;lt;br /&amp;gt;&lt;br /&gt;
Blogartikel von Schrottie zum cmanager(27.10.2015, Update: 30.10.2015): [https://blog.dafb-o.de/doppellistings-aufspueren-mit-cmanager/ OC/GC-Doppellistings aufspüren: CManager 0.1d]&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Ocprop&amp;diff=5914</id>
		<title>Ocprop</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Ocprop&amp;diff=5914"/>
		<updated>2015-07-04T16:14:47Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Installation von Ocprop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Statistik geolog.jpg|250px|right|thumb|Erzeugte Statistik]]&lt;br /&gt;
&lt;br /&gt;
Die beiden Programme &#039;&#039;&#039;Ocprop&#039;&#039;&#039; und &#039;&#039;&#039;Geolog&#039;&#039;&#039; wurden vom User &#039;&#039;Fogg&#039;&#039; programmiert.&lt;br /&gt;
Sie sind als Perl-Skipte für alle Plattformen mit installiertem Perl und zusätzlich als exe-Programme für Windows verfügbar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Geolog&#039;&#039;&#039; bereitet Rohinformationen wie z.B. Pocket-Queries auf. Man kann damit eine eigene Website mit Statistiken generieren. Die erstellten Webseiten sind zum Upload auf die eigene Homepage/Website gedacht. Das Tool kann auch von Geocaching.com Bilder, [[Das Onlinelog|Logeinträge]] und [[Cachebeschreibung (Listing)|Cachebeschreibungen]] herunterladen.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Geolog ermöglicht die Aufbereitung von Geocaching.com-Daten, um anschließend mit Hilfe von Ocprop seine eigenen Cachebeschreibungen und Logeinträge von [[Geocaching-Plattformen#Geocaching.com (GC)|Geocaching.com]] nach [http://www.opencaching.de Opencaching.de] übertragen zu können.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Ocprop&#039;&#039;&#039; kann von Geolog aufbereitete Cachebeschreibungen, Logeinträge, Cache-Status und Änderungen an eben denen zur Opencaching-Website hochladen aber auch OConly-Informationen herunterladen.&lt;br /&gt;
Dazu sind nur wenige Benutzereingaben erforderlich. Der Ablauf ist weitestgehend automatisiert.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
=== Download-Quelle ===&lt;br /&gt;
* [http://geolog.sourceforge.net/index_de.html Perl Skripte und Programme zum Geocachen] von &#039;&#039;Fogg&#039;&#039;&lt;br /&gt;
Auf der Website ist ein Installationsprogramm für Installation und Update von Geolog und Ocprop mit Benutzerführung verfügbar.&lt;br /&gt;
&lt;br /&gt;
=== Installation von Geolog ===&lt;br /&gt;
&lt;br /&gt;
==== Unter Windows 7 ohne Perl, Geolog Version 2.92 (22-04-2015) ====&lt;br /&gt;
# Download des ZIP-Archivs mit den EXE-Dateien von oben genannter Download-Quelle.&lt;br /&gt;
# Ordner anlegen, z.B. &amp;lt;code&amp;gt;C:\Program Files\Geolog&amp;lt;/code&amp;gt;&lt;br /&gt;
# ZIP-Archiv in den neuen Ordner entpacken. (Benutzt man das Windows-Programm geolog.exe, braucht man kein Perl installieren.)&lt;br /&gt;
# &#039;&#039;&#039;geolog.exe&#039;&#039;&#039; mit der rechten Maustaste festhalten, auf eine leere Stelle vom Desktop ziehen und Maustaste loslassen. Aus dem Kontextmenü &#039;&#039;&#039;&amp;quot;Verknüpfung hier erstellen&amp;quot;&#039;&#039;&#039; wählen.&lt;br /&gt;
# Erstmaliger Aufruf des Programmes über die Windows-Kommandozeile:&lt;br /&gt;
## Start &amp;gt; &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt; in Suche eingeben &amp;gt; Mit rechter Maustaste auf &#039;&#039;&#039;cmd&#039;&#039;&#039; klicken und &amp;quot;Als Administrator ausführen&amp;quot; wählen (es öffnet sich ein Windows Command Fenster)&lt;br /&gt;
## Wechseln in den Ordner von Geolog: &amp;lt;code&amp;gt;cd C:\Program Files\Geolog&amp;lt;/code&amp;gt;&lt;br /&gt;
## Start des Programms mit &amp;lt;code&amp;gt;geolog &amp;lt;Enter&amp;gt;&amp;lt;/code&amp;gt;. Es erfolgt die Abfrage verschiedener Konfigurationsparameter. Für viele werden sinnvolle Werte vorgeschlagen, die man übernehmen kann. Manche Punkte muss man mit seinen eigenen Serverdaten o.ä. beantworten.&lt;br /&gt;
## Zum Schluss das Setup mit der ANYKEY-Taste beenden.&lt;br /&gt;
# Hat man das Programm unter einem geschützten Ordner wie &#039;&#039;&#039;C:\Program Files\&#039;&#039;&#039; abgelegt, muss man es im Admin-Modus ausführen, weil sonst die Konfigfiles nicht geschrieben werden können. Dazu rechte Maustaste auf das Geolog-Icon auf dem Desktop, &#039;&#039;&#039;Eigenschaften&#039;&#039;&#039; &amp;gt; Tab &#039;&#039;&#039;Kompatibilität&#039;&#039;&#039; &amp;gt; Haken bei &#039;&#039;&#039;&amp;quot;Programm als Administrator ausführen&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
# Bei Geocaching.com einloggen und im Profil das Datumsformat auf &#039;&#039;&#039;YYYY-MM-DD&#039;&#039;&#039; ändern (Bei DD.MM.YYYY gab es einen Error). Die Spracheinstellung in geolog und im Profil auf GC.com war Deutsch. &lt;br /&gt;
#  geolog.exe wieder starten und Option &#039;&#039;&#039;i&#039;&#039;&#039; sowie anschließend &#039;&#039;&#039;F&#039;&#039;&#039; auswählen. Mit dieser Option werden inkrementell die Caches mit zugehörigen Informationen von GC.com heruntergeladen, die lokale Datenbank aufgebaut und die HTML-Seiten erstellt. Jede Seitenabfrage wird erst nach einer Wartezeit von einigen Sekunden ausgeführt, damit der eigene Account nicht wegen Massenabfragen gesperrt wird. Daher kann diese inkrementelle Abfrage mehrere Stunden dauern.&lt;br /&gt;
&lt;br /&gt;
=== Installation von Ocprop ===&lt;br /&gt;
&lt;br /&gt;
Unter Windows 7 ohne Perl, Ocprop Version ist 2.21 (27-02-2013)&lt;br /&gt;
&lt;br /&gt;
# Download des ZIP-Archivs mit den EXE-Dateien von oben genannter Download-Quelle.&lt;br /&gt;
# Ordner anlegen, z.B. &amp;lt;code&amp;gt;C:\Program Files\ocprop&amp;lt;/code&amp;gt;&lt;br /&gt;
# ZIP-Archiv in den neuen Ordner entpacken. (Benutzt man das Windows-Programm ocprop.exe, braucht man kein Perl zu installieren.)&lt;br /&gt;
# ocprop.exe mit der rechten Maustaste festhalten, auf eine leere Stelle vom Desktop ziehen und Maustaste loslassen. Aus dem Kontextmenü &amp;quot;Verknüpfung hier erstellen&amp;quot; wählen.&lt;br /&gt;
# Erstmaliger Aufruf des Programmes per Doppelklick auf das Icon:&lt;br /&gt;
## Es erfolgt die Abfrage verschiedener Konfigurationsparameter. Für viele werden sinnvolle Werte vorgeschlagen, die man übernehmen kann. &lt;br /&gt;
## Man muss seinen Benutzernamen und Passwort für Opencaching.de angeben.&lt;br /&gt;
## Während der Konfiguration muss man getrennt entscheiden, ob man seine Cache-Listings und Logs hochladen will. Man kann z.B. auch auf das Synchronisieren von Cache-Listings verzichten, wenn die Bescheibung bei Geocaching.com vielleicht anders sein soll als bei Opencaching.de.&lt;br /&gt;
## Zum Schluss das Setup mit der ANYKEY-Taste beenden.&lt;br /&gt;
&lt;br /&gt;
=== Übertragen von Logeinträgen von geocaching.com nach opencaching.de ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorbedingung&#039;&#039;&#039;: geolog und ocprop wurden installiert und konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Das Übertragen der eigenen Logs von geocaching.com nach opencaching.de geschieht in mehreren Schritten:&lt;br /&gt;
&lt;br /&gt;
# Starte geolog und wähle die Option &#039;&#039;&#039;i&#039;&#039;&#039; für &#039;&#039;&#039;inkrementell&#039;&#039;&#039;. &lt;br /&gt;
## geolog lädt zunächst alle noch nicht bekannten Logs und Listings von der GC.com-Website herunter und aktualisiert die lokale Datenbank. &lt;br /&gt;
## Diesen Schritt kann man nach einiger Zeit ruhig wiederholen. Beim ersten Lauf wird gegebenenfalls noch nicht alles geladen.&lt;br /&gt;
# Starte ocprop.exe und wähle die Option &amp;quot;&#039;&#039;&#039;.&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
## Die geolog-Datenbank wird nun schrittweise mit Opencaching.de abgeglichen.&lt;br /&gt;
## Wenn im nahen Umkreis eines GC-Caches ein OC-Cache gefunden wurde, bei dem Cachename, Koordinaten oder Owner abweichen, fragt ocprop, ob beide Caches als identisch zu betrachten sind. Anhand der Anzeige kann man das recht leicht entscheiden. &lt;br /&gt;
## Legt man fest, dass zwei Caches trotz unterschiedlicher Daten identisch sind, so überträgt ocprop das GC-Log nach Opencaching.de.&lt;br /&gt;
## Findet ocprop zwei identische Caches, so werden fehlende [[Das Onlinelog#Gefunden|Fund-]] und [[Das Onlinelog#Nicht gefunden (DNF)|DNF-Logs]] sofort nach Opencaching.de übertragen.&lt;br /&gt;
## [[Das Onlinelog#Hinweis|Hinweis-Logs]] werden ignoriert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung: Der erstmalige interaktive Abgleich von über 1000 Caches kann durchaus 1 bis 2 Stunden dauernd!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Übertragen von Cachebeschreibungen ===&lt;br /&gt;
Damit hier keine Fehler passieren, sollten die Ausgaben des Programms genauestens überprüft werden. Denn natürlich ist es nur sinnvoll, eigene Geocaches zu übertragen.&lt;br /&gt;
&lt;br /&gt;
{{unvollständig|&lt;br /&gt;
* Kurzanleitung ergänzen}}&lt;br /&gt;
&lt;br /&gt;
=== Anleitungen ===&lt;br /&gt;
* [http://geolog.sourceforge.net/index_de.html Homepage]&lt;br /&gt;
* [http://blog.clanfamily.de/gc-vs-oc-logs-und-listings-uebertragen vom OC-Teammitglied &#039;&#039;ClanFamily&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocaching-Software]]&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Reverse_(%E2%80%9ELocationless%E2%80%9C)_Caches&amp;diff=5677</id>
		<title>Reverse („Locationless“) Caches</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Reverse_(%E2%80%9ELocationless%E2%80%9C)_Caches&amp;diff=5677"/>
		<updated>2014-11-06T17:50:08Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Wie funktionieren Reverse Caches? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Safari-attribut.png|rechts]]&lt;br /&gt;
Als „Reverse“ oder „Locationless“ werden [[Cachearten#Virtueller Cache|virtuelle Caches]] bezeichnet, die nicht an einen bestimmten Ort gebunden sind. Bei Opencaching.de heißen diese Caches &#039;&#039;&#039;Safari-Cache&#039;&#039;&#039; und werden mit einem besonderen [[Attribute|Attribut]] gekennzeichnet (Abbildung).&lt;br /&gt;
&lt;br /&gt;
Die Bezeichnung „Locationless“ ist irreführend, da diese Caches [[Location]]s haben – nur nicht eine bestimmte, sondern mehrere.&lt;br /&gt;
&lt;br /&gt;
== Wie funktionieren Reverse Caches? ==&lt;br /&gt;
&lt;br /&gt;
Die Aufgabe bei Reverse Caches liegt darin, ein Objekt oder einen Ort zu finden, von dem es auf der Welt mehrere gibt, und diesen Fund im Onlinelog z.B. mit Bildern und Koordinaten zu dokumentieren. Meist können die Caches überregional absolviert werden.&lt;br /&gt;
&lt;br /&gt;
Ein schönes Beispiel ist der Cache [http://www.opencaching.de/OC0EBC Trigonometrischer Punkt (OC0EBC)]. Hier soll ein trigonometrischer Punkt gefunden und der Fund durch Bilder dokumentiert werden: ein Bild vom GPS-Gerät auf dem Vermessungspunkt, und je ein Bild vom Ausblick in jede Himmelsrichtung. Mit der Zeit entwickelt sich so ein bebildertes Verzeichnis von trigonometrischen Punkten.&lt;br /&gt;
&lt;br /&gt;
Bei Safari-Caches ist es essenziell, dass man als Finder tatsächlich vor Ort war. Deshalb muss die Aufgabenstellung so gewählt sein, dass sie nur vor Ort erfüllt werden kann (z.B. indem ein Foto vom GPS-Empfänger auf dem Vermessungspunkt gemacht werden muss).&lt;br /&gt;
&lt;br /&gt;
== Regeln ==&lt;br /&gt;
Reverse bzw. Safari-Caches werden von den Opencaching.de-Nutzungsbedingungen nicht ausdrücklich erlaubt, werden aber akzeptiert wenn sie den folgenden Regeln entsprechen:&lt;br /&gt;
&lt;br /&gt;
* Es muss eine klar definierte Logbedingung geben, aus der ersichtlich ist, dass der Logger draußen unterwegs war (Logfoto o.ä.).&lt;br /&gt;
* Es müssen Objekte bzw. Punkte sein, deren Standort reproduzierbar ist und über längere Zeit Bestand hat.&lt;br /&gt;
* Die Koordinaten des Standortes müssen bestimmt und beim Loggen angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus kann der Cachebesitzer weitere Logbedingungen festlegen. Es wird empfohlen, nur ein Fundlog pro Standort zu erlauben.&lt;br /&gt;
&lt;br /&gt;
Diese Regeln sind das Ergebnis folgender Forendiskussionen:&lt;br /&gt;
* [http://forum.opencaching-network.org/index.php?topic=2994.0 Locationless Caches]&lt;br /&gt;
* [http://forum.opencaching-network.org/index.php?topic=2998.0 Umfrage: Sollen Locationless Caches erlaubt sein?]&lt;br /&gt;
* [http://forum.opencaching-network.org/index.php?topic=3006.0 Regeln für Locationless Caches]&lt;br /&gt;
&lt;br /&gt;
== Safari-Caches auf der Karte ==&lt;br /&gt;
&lt;br /&gt;
Sarfari-Caches erscheinen standardmäßig auch auf der [[Cachekarte]], obwohl die Koordinaten keine Rolle spielen. Man kann sie ausblenden, indem man die Kartenfilter-Einstellungen öffnest (Klick auf den Pfeil rechts oben) und dann zweimal auf das Safari-Attribut klickt. Die Einstellungen können auch gespeichert werden - dann bleiben die Safaris unsichtbar, bis man sie per Klick auf das Safari-Attribut wieder einblendet.&lt;br /&gt;
&lt;br /&gt;
== Listing für einen Safari-Cache erstellen ==&lt;br /&gt;
Um einen Safari-Cache zu erstellen empfiehlt es sich die Logaufgabe selber zu erfüllen und zu dokumentieren um so ein gutes Beispiel für das Listing zu haben. Ebenso sollte man sich Gedanken über eine Logbedingung machen, welche spannend ist, die Sucher herausfordert und natürlich nur vor Ort zu lösen ist.&lt;br /&gt;
&lt;br /&gt;
Zur Kennzeichnung des Listings sollten folgende Attribute und Eigenschaften ausgewählt werden werden:&lt;br /&gt;
* Cacheart: virtueller Cache&lt;br /&gt;
* Größe: kein Behälter&lt;br /&gt;
* Wegpunkte: Safari-Cache [http://www.opencaching.de/resource2/ocstyle/images/attributes/safari.png Safari-Attribut]&lt;br /&gt;
* Listing: [http://wiki.opencaching.de/index.php/Attribute#OC-Only OC only] [http://www.opencaching.de/resource2/ocstyle/images/attributes/oconly.png OC-only-Attribut] &#039;&#039;(Falls dieser Cache auch auf einer anderen Plattform gelistet ist, dann natürlich ohne dieses Attribut. Momentan ist dies aber vermutlich nur bei OC.de möglich.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiterhin können zur genaueren Erläuterung und ein Link zur [http://www.flopp.net/safari  Safari-Karte] als Hilfestellung kleine Infoboxen mittels html-Code-Schnipsel in das Listing eingebunden werden (Danke an [http://blog.flopp-caching.de/2013/09/safari-map-fuer-opencaching-de/ Flopp]):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erste Box (der OC-Code in der letzten Zeile muss noch angepasst werden!):&lt;br /&gt;
{|class=&amp;quot;wikitable octable1&amp;quot; &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;&amp;lt;div style=&amp;quot;border:solid 2px #5f90bb;background:#dbe6f1;color:#000000;padding:5px;text-align:justify;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img style=&amp;quot;float:left;&amp;quot; src=&amp;quot;http://www.opencaching.de/resource2/ocstyle/images/attributes/safari.png&amp;quot; alt=&amp;quot;safari.png&amp;quot; /&amp;gt;&amp;lt;p style=&amp;quot;margin-left:45px;&amp;quot;&amp;gt;Dies ist ein virtueller &amp;lt;a href=&amp;quot;http://wiki.opencaching.de/index.php/Safari-Cache&amp;quot;&amp;gt;Safari-Cache&amp;lt;/a&amp;gt;. Es ist nicht an einen festen Ort gebunden, sondern kann an verschiedenen Orten gelöst werden. Die oben angegebenen Koordinaten dienen nur als Beispiel.&amp;lt;br /&amp;gt;&lt;br /&gt;
Weitere Caches mit dem Attribut &amp;quot;Safari-Cache&amp;quot; findet man mit dieser &amp;lt;a href=&amp;quot;http://www.opencaching.de/search.php?searchto=searchbyname&amp;amp;amp;showresult=1&amp;amp;amp;output=HTML&amp;amp;amp;utf8=1&amp;amp;amp;sort=byname&amp;amp;amp;cache_attribs=61&amp;quot;&amp;gt;Suche&amp;lt;/a&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Safari-Caches und die zugehörigen Logs werden auf der &amp;lt;a href=&amp;quot;http://www.flopp.net/safari/&amp;quot;&amp;gt;Safari-Cache-Karte&amp;lt;/a&amp;gt; angezeigt.&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Cache und seine Logs werden &amp;lt;a href=&amp;quot;http://www.flopp.net/safari/OCF858&amp;quot;&amp;gt;hier&amp;lt;/a&amp;gt; angezeigt.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sieht dann im Listing so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Safari Rahmen 1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zweite Box (der OC-Code in der letzten Zeile muss noch angepasst werden!):&lt;br /&gt;
{|class=&amp;quot;wikitable octable1&amp;quot; &lt;br /&gt;
|&amp;lt;nowiki&amp;gt;&amp;lt;div style=&amp;quot;border:solid 2px #5f90bb;background:#dbe6f1;color:#000000;padding:5px;text-align:justify;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Bitte die in der Logbedingung geforderten Koordinaten im Format &amp;quot;N/S DD MM.MMM E/W DDD MM.MMM&amp;quot; (z.B. &amp;quot;N 48 00.000 E 008 00.000&amp;quot;) ins Log eintragen, damit die Positionen von der &amp;lt;a href=&amp;quot;http://www.flopp.net/safari/&amp;quot;&amp;gt;Safari-Cache-Karte&amp;lt;/a&amp;gt; korrekt erkannt und angezeigt werden können!&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Cache und seine Logs werden &amp;lt;a href=&amp;quot;http://www.flopp.net/safari/OCF858&amp;quot;&amp;gt;hier&amp;lt;/a&amp;gt; angezeigt.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sieht dann im Listing so aus: &lt;br /&gt;
&lt;br /&gt;
[[Datei:Safari Rahmen 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit die Einbindung in die [http://www.flopp.net/safari Safari-Karte] funktioniert, bitte eine kurze Info an Flopp senden, der die Karte betreut.&lt;br /&gt;
&lt;br /&gt;
== Listen mit Reverse Caches ==&lt;br /&gt;
=== Alle Caches mit Attribut ===&lt;br /&gt;
Caches, bei denen das Attribut &#039;&#039;Safari-Cache&#039;&#039; korrekt gesetzt ist, können über [http://www.opencaching.de/search.php?searchto=searchbyname&amp;amp;showresult=1&amp;amp;output=HTML&amp;amp;utf8=1&amp;amp;sort=bycreated&amp;amp;cache_attribs=61 diese Suche] aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
=== Liste bekannter Caches ===&lt;br /&gt;
Da noch nicht alle Caches mit dem Safari-Attribut versehen sind, gibt es &#039;&#039;&#039;[[Safari-Caches auf einen Blick|hier]]&#039;&#039;&#039; eine Liste bekannter Reverse Caches.&lt;br /&gt;
&lt;br /&gt;
=== Beispiele nach Thema ===&lt;br /&gt;
&lt;br /&gt;
;Safari-Caches mit geographischem Bezug&lt;br /&gt;
&lt;br /&gt;
*[http://www.opencaching.de/OC0EBC Trigonometrischer Punkt (OC0EBC)]&lt;br /&gt;
*[http://www.opencaching.de/OCFA6F Am Mittelpunkt (OCFA6F)]&lt;br /&gt;
*[http://www.opencaching.de/OC10061 N50°00.000 / Safari-Cache (OC10061)]&lt;br /&gt;
*[http://www.opencaching.de/OCF495 Go Geohashing (OCF495)]&lt;br /&gt;
&lt;br /&gt;
;Safari-Caches mit geschichtlichem Hintergrund&lt;br /&gt;
&lt;br /&gt;
*[http://www.opencaching.de/OCFE3E Die Geschichte der Statuen (OCFE3E)]&lt;br /&gt;
*[http://www.opencaching.de/OCF6D1 Mordkreuz (OCF6D1)]&lt;br /&gt;
*[http://www.opencaching.de/OC10274 Gerichtsbaum (OC10274)]&lt;br /&gt;
&lt;br /&gt;
;Safari-Caches, die nur zum Spaß gedacht sind&lt;br /&gt;
&lt;br /&gt;
*[http://www.opencaching.de/OCFD50 Streetart Safari (OCFD50)]&lt;br /&gt;
*[http://www.opencaching.de/OC102FC Safari für Schwergewichte (OC102FC)]&lt;br /&gt;
*[http://www.opencaching.de/OC0418 Wo sind welche? (OC0418)]&lt;br /&gt;
*[http://www.opencaching.de/OCDFDD Pirate&#039;s Totenkopf Safari (OCDFDD)]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Entwicklung/Codedoku&amp;diff=5676</id>
		<title>Entwicklung/Codedoku</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Entwicklung/Codedoku&amp;diff=5676"/>
		<updated>2014-11-06T17:43:41Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Slave-Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Materialsammlung zum [http://github.com/OpencachingDeutschland/oc-server3 Opencaching-Programmcode]. Sie soll neuen [[Entwicklung|Entwicklern]] einen Überblick über die Grundstruktur und wichtigsten Bestandteile des OC-Codes geben. Mit &amp;quot;OC-Code&amp;quot; ist alles gemeint, was sich im [[Entwicklung/Git|Git-Repository]] befindet.&lt;br /&gt;
&lt;br /&gt;
Weitere Dokumentationen gibt es auch in den Codeverzeichnissen {{Codepath|doc}} und {{Codepath|htdocs/doc}}. Die Datei {{Codepath|doc/directories.txt}} enthält eine Übersicht der Repository-Verzeichnisstruktur. &#039;&#039;(Grüne Pfad- und Dateinamen sind anklickbar.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Alle die bereits an Opencaching mitprogrammiert haben, sind eingeladen, ihr Wissen beizusteuern! Wenn du dir zusätzliche Erläuterungen wünschst, kannst du sie auf der Diskussionsseite anfragen – vielleicht findet sich jemand, der den Artikel ergänzt.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[Entwicklung/Stil|Style Guidelines]]&lt;br /&gt;
&lt;br /&gt;
== Dateiformat ==&lt;br /&gt;
&lt;br /&gt;
Alle OC-Quelltextdateien haben [[wikipedia:UTF-8|UTF-8]]-Format. Im Kopf der Quelltextdateien befindet sich ein japanisches Wort (&amp;quot;Unicode Reminder&amp;quot;), mit dem geprüft werden kann ob die Zeichencodierung intakt ist. Sollte versehentlich nach ISO-8859-1 o.ä. umcodiert worden sein, erscheinen dort z.B. zwei Fragezeichen oder gar nichts.&lt;br /&gt;
&lt;br /&gt;
{{Codepath|local/tools/find_bad_encodings.php}} prüft alle Quelltexte auf fehlende oder beschädigte Unicode Reminder.&lt;br /&gt;
&lt;br /&gt;
Die Zeilenenden der Quelltexte bestehen grundsätzlich aus einem einfachen LF (line feed). Ausnahmen gibt es z.B. bei [[#Email-Templates|Email-Templates]]; hier ist CR/LF vorgeschrieben.&lt;br /&gt;
&lt;br /&gt;
== Hauptmodule ==&lt;br /&gt;
&lt;br /&gt;
Mit &amp;quot;lib1&amp;quot; und &amp;quot;lib2&amp;quot; sind im Folgenden die OC-eigenen Codebibliotheken in {{Codepath|htdocs/lib}} und {{Codepath|htdocs/lib2}} gemeint. Alle Teile des OC-Codes bauen auf einer dieser beiden Bibliotheken auf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;widelist&amp;quot;&amp;gt;&lt;br /&gt;
Der OC-Software besteht aus ...&lt;br /&gt;
* Den &#039;&#039;&#039;darstellbaren Seiten&#039;&#039;&#039; der OC-Website, z.B. Startseite (&#039;&#039;index&#039;&#039;) oder Cachelisting-Anzeige (&#039;&#039;viewcache&#039;&#039;). Diese bestehen jeweils aus einem PHP-Script im Verzeichnis {{Codepath|htdocs}} und einem [[#Templates|Template]] in {{Codepath|htdocs/templates2/ocstyle}} (lib1: {{Codepath|htdocs/lang/de/ocstyle}}). Das PHP-Script erzeugt die darzustellenden Inhalte, das Template stellt sie als HTML-Seite dar.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kommandozeilentools&#039;&#039;&#039; für verschiedene Zwecke, z.B. Wartungstools die per Crojob oder von Hand aufgerufen werden. Sie befinden sich in an verschiedenen Stellen:&lt;br /&gt;
** {{Codepath|bin}} (Update-Scripte)&lt;br /&gt;
** {{Codepath|htdocs/util}} (lib1, Tools für Produktivbetrieb)&lt;br /&gt;
** {{Codepath|htdocs/util2}} (lib2, Tools für Produktivbetrieb)&lt;br /&gt;
** {{Codepath|local}} (spezielle Tools für lokale Verwendung)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;APIs&#039;&#039;&#039;, also Schnittstellen für Datenabruf oder -upload durch Dritte:&lt;br /&gt;
** diverse APIs in {{Codepath|htdocs/api}}&lt;br /&gt;
** die [[OKAPI]] in {{Codepath|htdocs/okapi}}, repliziert aus dem [http://code.google.com/p/opencaching-api/source/browse/trunk/#trunk%2Fokapi OKAPI-Repository]&lt;br /&gt;
** die [[XML-Schnittstelle]] in {{Codepath|htdocs/xml}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Apache-Rewrites&#039;&#039;&#039;. Dies sind Konfigurationsdateien mit dem Name &#039;&#039;.htaccess&#039;&#039;, die vom Apache-Webserver ausgelesen werden. Sie interpretieren die übergebene URL und leiten auf ein PHP-Script um. Apache-Rewrites kommen an zwei Stellen zum Einsatz:&lt;br /&gt;
** Statistikbilder: {{Codepath|htdocs/statpics/htaccess-dist|htdocs/statpics/.htaccess}}&lt;br /&gt;
** OC-Kurz-URLs, z.B. http://opencaching.de/OC1234: diese sind direkt im Produktiv-Webserver konfiguriert.&lt;br /&gt;
&lt;br /&gt;
== Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Die einzelnen OC-Module verwenden verschiedene Code-Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
=== Eigene Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
==== lib1 ====&lt;br /&gt;
Die alte selbstgeschriebene Bibliothek von OC-Codeversion 1.0, in {{Codepath|htdocs/lib}}. Sie enthält z.B. Funktionen für Datenbankzugriff, Login, Menüs, geographische Berechnungen und ein einfaches Template-System.&lt;br /&gt;
&lt;br /&gt;
lib1 ist veraltet und wird auf OC.de nur noch für das Bearbeiten von Logs und Cachebeschschreibungen, für Benachrichtigungen über beobachtete und neue Caches und für die XML-Schnittstelle verwendet. Mittelfristig soll sie ganz durch lib2 ersetzt werden. (Alle auf OC.pl-Code basierenden [[Opencaching]]-Seiten verwenden weiterhin ausschließlich die lib1).&lt;br /&gt;
&lt;br /&gt;
lib1 wird eingebunden mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib/common.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lib2 ====&lt;br /&gt;
Die Bibliothek der OC.de-Codversion 2.0 und höher in {{Codepath|htdocs/lib2}}, Nachfolger von lib1. Sie ist wesentlich umfangreicher. Der Code ist aufgeteilt in das &amp;quot;Framework&amp;quot; mit allgemeinen Dingen wie Datenbankzugriff, Authentifizierung, Lokalisierung, Templates etc. und die sogenannte &amp;quot;Business Logic&amp;quot; in {{Codepath|htdocs/lib2/logic}} mit allen Geocaching-spezifischen Klassen und Funktionen.&lt;br /&gt;
&lt;br /&gt;
lib2 wird in Bestandteile der Website eingebunden mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib2/web.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
und in Kommandozeilentools mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib2/cli.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;gemeinsamer lib1- und lib2-Code&lt;br /&gt;
Manche Bibliotheksmodule werden versionsübergreifend verwendet, z.B. für Übersetzungen und Sprachauswahl. Sie sind in {{Codepath|htdocs/lib2}} abgelegt.&lt;br /&gt;
&lt;br /&gt;
==== libse ====&lt;br /&gt;
Eine Klassenbibliothek von Opencaching.se, in {{Codepath|htdocs/libse}}. Im Zuge der Codezusammenführung von OC.de und OC.se wurde sie 2011 mit in den OC.de-Code übernommen. Sie wird für zusätzliche Wegpunkte und persönliche Notizen im Cachelisting verwendet.&lt;br /&gt;
&lt;br /&gt;
==== Autoload ====&lt;br /&gt;
Für die Klassen aller drei Bibliotheken sind Autoloader installiert. Das heißt wenn man z.B. ein Cache-Objekt benötigt, muss man dafür nicht {{Codepath2|htdocs|lib2/logic/cache.class.php}} einbinden sondern man erzeugt einfach direkt das Objekt:&lt;br /&gt;
:&amp;lt;code&amp;gt;$cache = new cache();&amp;lt;/code&amp;gt;&lt;br /&gt;
{{Codepath2|htdocs/lib2/logic|cache.class.php}} wird dann automatisch geladen.&lt;br /&gt;
&lt;br /&gt;
=== Fremdbibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Die OC-Software macht ausgiebig Gebrauch von fertigen PHP- und JavaScript-Codebibliotheken. Eine vollständige Aufstellung incl. Codepfade, Bezugsquellen etc. enthält {{Codepath|doc/license.txt}}. Hier seien nur die wichtigsten davon erwähnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;widelist&amp;quot;&amp;gt;&lt;br /&gt;
* [http://www.smarty.net/ &#039;&#039;&#039;Smarty&#039;&#039;&#039;] wird als &amp;quot;Template-Engine&amp;quot; für lib2 verwendet. OC-spezifische Erweiterungen befinden sich in der Klasse &#039;&#039;OcSmarty&#039;&#039; und in {{Codepath2|htdocs|lib2/smarty/ocplugins}}. Mehr dazu im Abschnitt [[#Templates|Templates]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[http://htmlpurifier.org/ HTML Purifier]&#039;&#039;&#039; dient zum &amp;quot;Säubern&amp;quot; von HTML-Code, den der Benutzer z.B. in Cachebeschreibungen eingeben kann. lib1 und lib2 verwenden getrennte HTML-Purifier-Installationen. In lib2 wird er über die Klasse &#039;&#039;OcHTMLPurifier&#039;&#039; eingebunden und kann dort auch angepasst werden. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[http://www.tinymce.com/ TinyMCE]&#039;&#039;&#039; ist ein leistungsfähiger JavaScript-Wysiwyg-Texteditor. Er dient zum Bearbeiten von Cachebeschreibungen, Logs und Profiltexten. lib1 und lib2 verwenden beide die TinyMCE-Installation in {{Codepath|htdocs/resource2/tinymce}}. OC-spezifische Konfigurationsdaten gibt es in {{Codepath2|htdocs/resource2|tinymce/config}}. &lt;br /&gt;
&lt;br /&gt;
Von lib2-Code verwendete Bibliotheken sind in {{Codepath|htdocs/lib2}} (PHP) und {{Codepath|htdocs/resource2}} (JavaScript) angelegt. Bibliotheken für lib1 befinden sich an verschiedenen Stellen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdateien ==&lt;br /&gt;
&lt;br /&gt;
==== lib1-Konfiguration ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellungen für lib1-Code befinden sich überwiegend in&lt;br /&gt;
:&#039;&#039;htdocs/lib/settings.inc.php&#039;&#039;&lt;br /&gt;
Diese Datei ist nur lokal vorhanden. Als Vorlage für das Aufsetzen einer neuen Produktiv-Installation gibt es die Datei {{Codepath2|htdocs/lib|settings-dist.inc.php}}, die nach &#039;&#039;settings.inc.php&#039;&#039; zu kopieren und anzupassen ist.&lt;br /&gt;
&lt;br /&gt;
Für [[Entwicklung/Entwicklersystem|Entwicklersysteme]] gibt es entsprechend die Vorlage {{Codepath2|htdocs/lib|settings-sample-dev.inc.php}}. Sie verwendet die Datei {{Codepath2|htdocs/lib|settings-dev.inc.php}}, in der die Grundeinstellungen für Entwicklersysteme zusammengefasst sind.&lt;br /&gt;
&lt;br /&gt;
Daneben gibt es noch zwei Konfigurationsdateien &#039;&#039;settings.inc.php&#039;&#039; für die Benachrichtigungs-Cronjobs, in {{Codepath|htdocs/util/notification}} und {{Codepath|htdocs/util/watchlist}}.&lt;br /&gt;
&lt;br /&gt;
Weiterhin verwendet lib1 auch Teile der lib2-Konfiguration, insbesondere {{Codepath2|htdocs/config2|locale.inc.php}}.&lt;br /&gt;
&lt;br /&gt;
==== lib2-Konfiguration ====&lt;br /&gt;
&lt;br /&gt;
Die lib2-Einstellungen befinden sich alle in {{Codepath|htdocs/config2}}. Sie werden &#039;&#039;alle&#039;&#039; in folgender Reihenfolge eingebunden, sobald man {{Codepath2|htdocs/lib2|web.inc.php}} oder {{Codepath2|htdocs/lib2|cli.inc.php}} einbindet:&lt;br /&gt;
&lt;br /&gt;
* sprachabhängige Einstellungen: {{Codepath2|htdocs/config2|locale.inc.php}}&lt;br /&gt;
* sonstige Default-Einstellungen: {{Codepath2|htdocs/config2|settings-dist.inc.php}}&lt;br /&gt;
* lokale Einstellungen: &#039;&#039;settings.inc.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auch hier sind Vorlagen für Produktiv- ({{Codepath2|htdocs/config2|settings-sample.inc.php}}) und Entwicklersystem ({{Codepath2|htdocs/config2|settings-sample-dev.inc.php}}) vorhanden, die nach &#039;&#039;settings.inc.php&#039;&#039; zu kopieren und and die lokale Systeminstallation anzupassen sind.&lt;br /&gt;
&lt;br /&gt;
==== Der Rootpath ====&lt;br /&gt;
&lt;br /&gt;
Wenn man in PHP-Scripte mit &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt; weitere Dateien einbindet, geschieht dies relativ zum Verzeichnispfad des Hauptscripts. (Daneben kann man auch weitere Pfade festlegen, in denen PHP nach passenden Scripten sucht.)&lt;br /&gt;
&lt;br /&gt;
Wie unter [[#Hauptmodule|Hauptmodule]] erläutert, befinden sich die Module der OC-Software auf verschiedenen Verzeichnisebenen Die Startseite liegt z.B. in {{Codepath|htdocs}}, das lib2-Cronjob-Modul dagegen in {{Codepath|htdocs/util2/cron}}. Alle diese Module binden lib1- oder lib2-Bibliothekscode ein, der weitere Unterscripte einbindet. Damit das alles funktioniert, wird im OC-Code ein &#039;&#039;Basispfad&#039;&#039; für alle Includes festgelegt. Dieser heißt&lt;br /&gt;
:&amp;lt;code&amp;gt;$opt[&#039;rootpath&#039;]&amp;lt;/code&amp;gt;&lt;br /&gt;
in lib2 und&lt;br /&gt;
:&amp;lt;code&amp;gt;$rootpath&amp;lt;/code&amp;gt;&lt;br /&gt;
in lib1.&lt;br /&gt;
&lt;br /&gt;
Sofern man keine weiteren Vorkehrungen trifft, wird dieser Rootpath automatisch als Relativpfad &amp;quot;./&amp;quot; gesetzt. Scripte in Unterverzeichnissen müssen ihn dagegen selbst setzen, z.B. &amp;quot;../&amp;quot; wenn das Script eine Ebene tiefer liegt, oder absolut als &amp;lt;code&amp;gt;dirname(__FILE__).&#039;../&#039;&amp;lt;/code&amp;gt;, wenn nicht bekannt ist, aus welchem aktuellen Verzeichnis ein Kommandozeilentool aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
== Konstanten ==&lt;br /&gt;
&lt;br /&gt;
Globale Konstanten sind an folgenden Stellen definiert:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/lib/consts.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/const.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/error.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/logic/const.inc.php}}&lt;br /&gt;
&lt;br /&gt;
Die lib2-Konstanten werden auch teilweise auch in lib1-Code verwendet.&lt;br /&gt;
&lt;br /&gt;
== Datenbank ==&lt;br /&gt;
&lt;br /&gt;
Die OC-Software ist nur für die Verwendung von MySQL ausgelegt. Zwar werden in lib2 keine MySQL-Funktionen mehr direkt aufgerufen, aber zahlreiche SQL-Statements verlassen sich auf MySQL-Syntax.&lt;br /&gt;
&lt;br /&gt;
=== Grundlegende Datenbankfunktionen ===&lt;br /&gt;
&lt;br /&gt;
Für lib2 befinden sich alle Funktionen in {{Codepath2|htdocs|lib2/db.inc.php}} und sind dort kurz dokumentiert, für lib1 in {{Codepath2|htdocs|lib/clicompatbase.inc.php}}. Datenbankverbindungen werden automatisch entsprechend den Konfigurationseinstellungen hergestellt, sobald man eine Query absetzt.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten Funktionen seien hier anhand von Beispielen erläutert:&lt;br /&gt;
&lt;br /&gt;
 sql(&amp;quot;UPDATE `caches` SET `size`=&#039;&amp;amp;1&#039; WHERE `cache_id`=&#039;&amp;amp;2&#039;&amp;quot;,&lt;br /&gt;
     $newsize, $cacheid);&lt;br /&gt;
&lt;br /&gt;
Hier wird die Größe eines Caches geändert. Variablen werden als fortlaufend numerierte Platzhalter &amp;amp;1, &amp;amp;2 etc. übergeben. Die Funktion &#039;&#039;sql&#039;&#039; ruft dann intern für jede Variable &amp;lt;code&amp;gt;mysql_real_escape_string()&amp;lt;/code&amp;gt; auf, was spezielle Zeichen wie &amp;quot; codiert und gleichzeitig [[wikipedia:SQL-Injection|SQL-Injections]] verhindert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Niemals dürfen Variablen direkt in SQL-Statements eingebaut werden!&#039;&#039;&#039; Wann immer möglich sind Platzhalter zu verwenden. Notfalls kann auch direkt mit &amp;lt;code&amp;gt;sql_escape()&amp;lt;/code&amp;gt; codiert werden, was allerdings Probleme verursacht, wenn ein &amp;quot;&amp;amp;&amp;quot; in den Daten enthalten ist: Die Funktion &amp;lt;code&amp;gt;sql()&amp;lt;/code&amp;gt; interpretiert es anschließend als Startzeichen eines Platzhalters.&lt;br /&gt;
&lt;br /&gt;
 $cachesize = sql_value(&amp;quot;&lt;br /&gt;
    SELECT `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    null, $cacheid);&lt;br /&gt;
&lt;br /&gt;
Hier wird die Größe eines Caches abgefragt. Falls die Cache-ID nicht gefunden wird, wird der Defaultwert &#039;&#039;null&#039;&#039; zurückgeliefert. Denke immer daran, den Defaultwert als ersten Parameter anzugeben! Ihn zu vergessen ist eine häufige Fehlerquelle.&lt;br /&gt;
&lt;br /&gt;
In der lib1 heißt die Funktion anders und kann nicht mit Platzhaltern umgehen; der entsprechende Code lautet dann:&lt;br /&gt;
&lt;br /&gt;
 $cachesize = sqlValue(&amp;quot;&lt;br /&gt;
    SELECT `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;quot; . sql_escape($cacheid) . &amp;quot;&#039;&amp;quot;,&lt;br /&gt;
    null);&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel demonstriert, wie der Inhalt einer Tabelle ausgelesen wird:&lt;br /&gt;
&lt;br /&gt;
  $rs = sql(&amp;quot;&lt;br /&gt;
    SELECT `cache_id`, `name`, `type` `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    $cacheid);&lt;br /&gt;
  while ($r = sql_fetch_assoc($rs))&lt;br /&gt;
  {&lt;br /&gt;
    // ... Weiterverarbeitung von $r[&#039;cache_id&#039;], $r[&#039;name&#039;] etc.&lt;br /&gt;
  }&lt;br /&gt;
  sql_free_result($rs);&lt;br /&gt;
&lt;br /&gt;
=== Slave-Server ===&lt;br /&gt;
&lt;br /&gt;
Beide OC-Libraries sehen eine Lastverteilung auf einen Haupt-Datenbankserver (Master) und einen oder mehrere &amp;quot;Slaves&amp;quot; vor, die replizierte Daten des Masters enthalten; siehe {{Codepath|doc/replication.txt}}. Dazu gibt es SQL-Funktionen mit dem Zusatz &amp;quot;_slave&amp;quot;, z.B. &amp;lt;code&amp;gt;sql_slave()&amp;lt;/code&amp;gt;, die von &amp;quot;datenbankintensiven&amp;quot; Programmmodulen wie z.B. der Suche ({{Codepath2|htdocs|search.php}}) anstatt der Basisfunktionen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Wenn per &#039;&#039;settings.inc.php&#039;&#039; keine Slave-Server konfiguriert sind, laufen alle Zugriffe über den Master. Zurzeit betreibt kein Opencaching-Knoten Slave-Server; die Kapazität des Masters reicht überall aus.&lt;br /&gt;
&lt;br /&gt;
=== Temporärtabellen ===&lt;br /&gt;
&lt;br /&gt;
Da Subqueries bei MySQL recht ineffizient sind, sind manchmal temporäre Tabellen für Zwischenergebnisse nötig.&lt;br /&gt;
&lt;br /&gt;
lib2 sieht einen speziellen Mechanismus zur Verwaltung von Temporärtabellen vor. Sie werden in einer eigenen Datenbank abgelegt, für die erweiterte Zugriffsrechte (Tabellen anlegen/löschen) vergeben werden, und werden per Cronjob automatisch aufgeräumt, wenn sie nicht gleich wieder gelöscht wurden.&lt;br /&gt;
&lt;br /&gt;
Ein (nicht unbedingt sinnvolles) Beispiel für die Verwendung von lib2-Temporärtabellen. Die temporäre Tabelle heißt &amp;quot;tmp_caches&amp;quot; und wird in SQL-Statements über einen Platzhalter referenziert:&lt;br /&gt;
&lt;br /&gt;
  sql_temp_table(&#039;tmp_caches&#039;);  // Tabelle registrieren&lt;br /&gt;
  sql(&amp;quot;                          // Tabelle anlegen&lt;br /&gt;
    CREATE TEMPORARY TABLE &amp;amp;tmp_caches ENGINE=MEMORY&lt;br /&gt;
    SELECT `cache_id` FROM `caches`&lt;br /&gt;
    WHERE `user`.`user_id` = `caches`.`user_id`&lt;br /&gt;
      AND `user`.`country` = &#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    $country);&lt;br /&gt;
 &lt;br /&gt;
  $rs = sql(&amp;quot;                    // Tabelle auslesen&lt;br /&gt;
    SELECT * FROM `cache_desc`, &amp;amp;tmp_caches&lt;br /&gt;
    WHERE `cache_desc`.`cache_id` = &amp;amp;tmp_caches.`cache_id`&amp;quot;);&lt;br /&gt;
  // ... Daten weiterverarbeiten&lt;br /&gt;
  sql_free_result($rs);&lt;br /&gt;
 &lt;br /&gt;
  sql_drop_temp_table(&#039;tmp_caches&#039;);  // Tabelle löschen&lt;br /&gt;
&lt;br /&gt;
=== Datenbankstruktur; statische Daten ===&lt;br /&gt;
&lt;br /&gt;
Datenbankstruktur und -inhalte werden an folgenden Stellen unter {{Codepath|htdocs/doc/sql}} definiert:&lt;br /&gt;
&lt;br /&gt;
* Tabellen, Felder und Indizes in {{Codepath2|htdocs/doc/sql|tables}}&lt;br /&gt;
* Stored Functions, Procedures und Triger in {{Codepath2|htdocs/doc/sql|stored-proc}}&lt;br /&gt;
* statische Daten wie z.B. Menüs, Cachetypen und sprachabhängige Texte in {{Codepath2|htdocs/doc/sql|static-data/data.sql}}.&lt;br /&gt;
&lt;br /&gt;
Es gibt weitere (geographische) &amp;quot;statische Daten&amp;quot;, die aufgrund ihres Umfangs nicht im Git-Repository enthalten sind; siehe {{Codepath2|htdocs/doc/sql|static-data/static-data.txt}}. Für Entwickler steht auf Anfrage ein Datenbankdump zur Verfügung, der eine vollständig initialisierte OC-Datenbank enthält (Veröffentlichung ist geplant). Weitere Updates können dann per&lt;br /&gt;
:{{Codepath|bin/dbupdate.php}}&lt;br /&gt;
eingepflegt werden, also man muss die oben aufgelisteten Dateien nicht von Hand weiterverarbeiten.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[Entwicklung/Datenbankversionierung|Datenbankversionierung]]&lt;br /&gt;
&lt;br /&gt;
==== OKAPI ====&lt;br /&gt;
&lt;br /&gt;
Die [[OKAPI]]-Tabellen werden zwar in der gleichen Datenbank abgelegt, sind aber unabhängig von den OC-Tabellen und daher &#039;&#039;nicht&#039;&#039; in {{Codepath|htdocs/doc/sql}} definiert. Bei [http://code.google.com/p/opencaching-api/#Installation_/_Update_Instructions Installation der OKAPI] werden sie automatisch angelegt und bei OKAPI-Updates automatisch aktualisiert. {{Codepath2|bin|dbupdate.php}} führt auch OKAPI-Updates durch, falls die OKAPI installiert ist.&lt;br /&gt;
&lt;br /&gt;
Auch der OKAPI-&#039;&#039;Code&#039;&#039; ist unabhängig vom OC-Code, d.h. sämtliche Datenbankzugriffe sind dort redundant implementiert. &#039;&#039;&#039;Bei Änderungen an Datenstrukturen oder -inhalten ist daher immer zu prüfen, ob eine Anpassung der OKAPI nötig ist!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Trigger &amp;amp; Stored Procedures ===&lt;br /&gt;
&lt;br /&gt;
Der Opencaching-Code macht reichlich Gebrauch von gespeicherten Datenbank-Funktionen und Triggern. Sie werden dazu eingesetzt, um die Konsistenz der Datenbankinhalte zu gewährleisten. Vor dem Hintergrund, dass drei unabhängige Frameworks parallel auf die Datenbank zugreifen – lib1, lib2 und OKAPI (und manchmal noch ein Administrator von Hand) – ist diese Vorgehensweise ratsam. Sie macht die OC.de-Datenbank ausgesprochen robust.&lt;br /&gt;
&lt;br /&gt;
Alle Datenbankfunktionen sind in &lt;br /&gt;
:{{Codepath|htdocs/doc/sql/stored-proc}}&lt;br /&gt;
definiert. Der aktuelle Stand befinden sich in {{Codepath2|htdocs/doc/sql/stored-proc|maintain-current.inc.php}}; für die [[Entwicklung/Datenbankversionierung|Datenbankversionierung]] können zusätzliche ältere Stände bzw. Update-Scripte existieren.&lt;br /&gt;
&lt;br /&gt;
Der Inhalt des &#039;&#039;maintain&#039;&#039;-Scripts lässt sich grob untergliedern in&lt;br /&gt;
* allgemeine Funktionen für komplexe Berechnungen, z.B. &amp;lt;code&amp;gt;DECTOWP&amp;lt;/code&amp;gt; für die Berechnung neuer OC-Wegpunkte&lt;br /&gt;
* Update-Funktionen für bestimmte Felder (&amp;lt;code&amp;gt;sp_update_*&amp;lt;/code&amp;gt;) die entweder von verschiedenen Triggern aufgerufen werden oder zur Datenbankwartung aus {{Codepath2|htdocs|dbmaint.php}} (Menü Admin|Datenbankwartung)&lt;br /&gt;
* Trigger-Prozeduren&lt;br /&gt;
&lt;br /&gt;
Eine Besonderheit sind &#039;&#039;&#039;globale Variablen&#039;&#039;&#039; die zur Parameterübergabe von PHP-Scripten an Datenbankfunktionen oder zwischen Datenbankfunktionen verwendet werden. Sie sind in {{Codepath2|htdocs/doc/sql/stored-proc|maintain-current.inc.php}} erläutert.&lt;br /&gt;
&lt;br /&gt;
=== SQL-Debugger ===&lt;br /&gt;
&lt;br /&gt;
lib1 und lib2 enthalten einen nützlichen SQL-Debugger ({{Codepath2|htdocs|lib/sqldebugger.inc.php}} bzw. {{Codepath2|htdocs|lib2/sqldebugger.class.php}}). Er zeigt für jedes ausgeführte SQL-Statment&lt;br /&gt;
&lt;br /&gt;
* das Statement selbst,&lt;br /&gt;
* ein [http://dev.mysql.com/doc/refman/5.1-olh/de/using-explain.html EXPLAIN],&lt;br /&gt;
* die ersten zurückgelieferten Datensätze, falls vorhanden,&lt;br /&gt;
* die Ausführungszeit,&lt;br /&gt;
* eventuelle MySQL-Warnungen.&lt;br /&gt;
&lt;br /&gt;
Der SQL-Debugger muss in den [[#Konfigurationsdateien|Settings]] aktiviert sein – für lib1 per &amp;lt;code&amp;gt;$sql_debug = true&amp;lt;/code&amp;gt;, in lib2 durch Setzen des Flags &amp;lt;code&amp;gt;DEBUG_SQLDEBUGGER&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;$opt[&#039;debug&#039;]&amp;lt;/code&amp;gt;. Wahlweise kann man diese Flags auch nur in einzelnen zu debuggenden PHP-Quelltexten setzen.&lt;br /&gt;
&lt;br /&gt;
Anschließend ist die zu debuggende Seite mit dem URL-Parameter &amp;lt;code&amp;gt;sqldebug=1&amp;lt;/code&amp;gt; aufzurufen.&lt;br /&gt;
&lt;br /&gt;
== Temporärdaten und Inhalte im Dateisystem ==&lt;br /&gt;
&lt;br /&gt;
Manche Dinge werden in Dateien statt in der Datenbank abgelegt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mediumlist&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Hochgeladene Bilder&#039;&#039;&#039; befinden sich üblicherweise in {{Codepath|htdocs/images/uploads}} (in den Settings änderbar), die Thumbnails darunter in {{Codepath2|htdocs/images/uploads|thumbs}}. Generierte Statistikbilder werden in {{Codepath|htdocs/images/statpics}} abgelegt.&lt;br /&gt;
* Herunterzuladende, gepackte &#039;&#039;&#039;Ausgaben der [[XML-Schnittstelle]]&#039;&#039;&#039; werden in {{Codepath|htdocs/download/zip}} zwischengespeichert (ebenfalls konfigurierbar).&lt;br /&gt;
* {{Codepath|htdocs/cache2}} enthält zwischengespeicherte [[#Templates|Templates]], [[#Übersetzung|Übersetzungsdateien]] für gettext und verschiedene Temporärdaten. Ein guter Teil dieser Daten wird von {{Codepath|bin/clear-webcache.php}} neu generiert.&lt;br /&gt;
* {{Codepath|htdocs/var}} enthält zwischengespeicherte OKAPI-Daten (die OKAPI legt allerdings auch eine Menge &amp;quot;gecachete&amp;quot; in der Datenbank ab) und Fehlerprotokolle.&lt;br /&gt;
* {{Codepath|htdocs/cache}} enthält vermutlich nur noch temporäre Prozess-Synchronisationsdateien (.pid-Dateien) der lib1-cronjobs für Log- und Cache-Benachrichtigungen.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:Template (Programmierung)|Templates]] dienen in Webanwendungen dazu, die Generierung von aus- und einzugebenden Daten von deren HTML-Darstellung zu trennen. HTML- und JavaScript-Code wird komplett in den Template-Dateien untergebracht, PHP-Code soweit wie irgend möglich in PHP-Scripten.&lt;br /&gt;
&lt;br /&gt;
Die Einbindung der Templates in den PHP-Programmablauf geschieht wie folgt:&lt;br /&gt;
# Festlegung, welche Templatedatei verwendet wird&lt;br /&gt;
# Zuweisung von variablen Inhalten an das Template&lt;br /&gt;
# Darstellung des Templates&lt;br /&gt;
Für alle drei Punkte gibt es entsprechende Bibliotheksfunktionen.&lt;br /&gt;
&lt;br /&gt;
=== lib1-Templates ===&lt;br /&gt;
&lt;br /&gt;
Die alte Library enthält ein selbstgemachtes, simples Templatesystem. Die Templatedateien befinden sich in {{Codepath|htdocs/lang/de/ocstyle}} und enthalten den auszugebenden HTML- und JavaScript-Code. Der Name der Template-Datei wird im PHP-Code über die globale Variable &amp;lt;code&amp;gt;$tplname&amp;lt;/code&amp;gt; festgelegt, z.B.&lt;br /&gt;
:&amp;lt;code&amp;gt;$tplname = &#039;newcache&#039;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für alle variablen Inhalte werden im Template Platzhalter wie z.B. &amp;lt;code&amp;gt;{cachename}&amp;lt;/code&amp;gt; verwendet; die PHP-Variable wird dann übergeben mit&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_set_var(&#039;cachename&#039;, $cachename);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sofern der variable Teil auch HTML-Code oder etwas zu Übersetzendes enthält, wird dies in speziellen Include-Dateien abgelegt, z.B.&lt;br /&gt;
&lt;br /&gt;
 $cachelink = &#039;&amp;lt;a href=&amp;quot;viewcache.php?cacheid={cacheid}&amp;quot;&amp;gt;{cachename}&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
 $outputformat_notexist = t(&#039;The selected output format is unknown!&#039;);&lt;br /&gt;
&lt;br /&gt;
Die Include-Datei wird im PHP-Hauptmodul eingebunden und die Variablen per &amp;lt;code&amp;gt;mb_ereg_replace&amp;lt;/code&amp;gt; ersetzt, bevor das Ganze per &amp;lt;code&amp;gt;tpl_set_var()&amp;lt;/code&amp;gt; ans Template übergeben wird.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_BuildTemplate();&amp;lt;/code&amp;gt;&lt;br /&gt;
stellt schließlich das Template dar und beendet das PHP-Script.&lt;br /&gt;
&lt;br /&gt;
Alle [[Opencaching]]-Seiten außer OC.de und OC.se/no verwenden noch das lib1-Templatesystem.&lt;br /&gt;
&lt;br /&gt;
=== lib2-Templates (Smarty) ===&lt;br /&gt;
&lt;br /&gt;
==== Grundlagen ====&lt;br /&gt;
&lt;br /&gt;
Die neue Bibliothek verwendet die leistungsfähige [[wikipedia:Smarty|Smarty]]-Engine. Smarty-Templates bestehen neben dem HTML/JavaScript-Code im Wesentlichen aus Kontrollstrukturen und Variableneinbindungen. Die Templates sind in {{Codepath|htdocs/templates2/ocstyle}} abgelegt.&lt;br /&gt;
&lt;br /&gt;
Die lib2 definiert die globale Variable&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl&amp;lt;/code&amp;gt;&lt;br /&gt;
über die alle Zugriffe auf Smarty und die Templates laufen. Am Beginn des PHP-Moduls wird jeweils das Template initialisiert:&lt;br /&gt;
&lt;br /&gt;
 $tpl-&amp;gt;name = &#039;newemail&#039;;   // Name der Template-Datei&lt;br /&gt;
 $tpl-&amp;gt;menuitem = MNU_MYPROFILE_DATA;  // Menü-ID, siehe doc/sql/static-data/data.sql&lt;br /&gt;
 $tpl-&amp;gt;caching = false;     // nicht zwischenspeichern&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;caching&#039;&#039;-Parameter legt fest, ob das Ergebnis der Templateausgabe zwischengespeichert wird; die Dauer der Zwischenspeicherung ist dann ggf. per&lt;br /&gt;
 $tpl-&amp;gt;caching_lifetime = 1800;  // halbe Stunde Caching&lt;br /&gt;
festzulegen. Dies empfiehlt sich bei häufig aufgerufenen, rechenintensiven Seiten. Seiten mit ständig wechselndem bzw. benutzerabhängigem Inhalt dürfen &#039;&#039;&#039;nicht&#039;&#039;&#039; &amp;quot;gecacht&amp;quot; werden!&lt;br /&gt;
&lt;br /&gt;
Neben Caching der Template-&#039;&#039;Ausgaben&#039;&#039; gibt es auch eine &#039;&#039;Vorcompilierung&#039;&#039; der Templates selbst. Diese erfolgt&lt;br /&gt;
* einmalig für alle Templates per &amp;lt;code&amp;gt;bin/clear-webcache.php&amp;lt;/code&amp;gt;,&lt;br /&gt;
* automatisch, wenn ein geändertes Template abgerufen wird,&lt;br /&gt;
* jedesmal bei jedem Template-Aufruf, falls in den Settings der Debug-Schalter &amp;lt;code&amp;gt;DEBUG_TEMPLATES&amp;lt;/code&amp;gt; gesetzt ist.&lt;br /&gt;
&lt;br /&gt;
Die zwischengespeicherten Templates werden in &amp;lt;code&amp;gt;htdocs/cache2/smarty&amp;lt;/code&amp;gt; abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf die Initialisierung des Templates folgen Variablen-Zuweisungen (s.u.) und schließlich die Darstellung mit&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;display();&amp;lt;/code&amp;gt;&lt;br /&gt;
die das PHP-Script beendet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Smarty-Syntax&lt;br /&gt;
&lt;br /&gt;
Im Folgenden sind ein paar grundlegende Smarty-Elemente erklärt; ansonsten sei auf die [http://www.smarty.net/docsv2/de/ Smarty-Dokumentation] verwiesen und auf die vielen Bespiele in {{Codepath2|htdocs|templates2/ocstyle}}. (Achtung: Der OC-Code verwendet eine ältere Smarty-Version; nicht alles was in der Doku steht ist hier auch schon verfügbar!)&lt;br /&gt;
&lt;br /&gt;
Alle Smarty-Elemente stehen in geschweiften Klammern {}. Wenn das Template solche Klammern für andere Zwecke verwendet, z.B. für JavaScript-Kontrollstrukturen, müssen diese von der Smarty-Interpretation ausgeklammert werden:&lt;br /&gt;
&lt;br /&gt;
  {literal}&lt;br /&gt;
  function js_function()&lt;br /&gt;
  {&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
  {/literal}&lt;br /&gt;
&lt;br /&gt;
==== Variablen ====&lt;br /&gt;
&lt;br /&gt;
Variablen werden z.B. per&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;assign(&#039;cachename&#039;, $cache[&#039;name&#039;]);&amp;lt;/code&amp;gt;&lt;br /&gt;
an das Template übergeben und dort als&lt;br /&gt;
:&amp;lt;code&amp;gt;{$cachename}&amp;lt;/code&amp;gt;&lt;br /&gt;
verwendet. Es können auch Arrays übergeben werden, deren Elemente statt [] mit einem Punkt referenziert werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;{$cache.name}&amp;lt;/code&amp;gt;&lt;br /&gt;
steht z.B. für &amp;lt;code&amp;gt;$caches[&#039;name&#039;]&amp;lt;/code&amp;gt;, übergeben per &amp;lt;code&amp;gt;$tpl-&amp;gt;assign(&#039;caches&#039;, ...)&amp;lt;/code&amp;gt;. Dies funktioniert auch mit numerischen Indizes – z.B. &amp;lt;code&amp;gt;{$user.0}&amp;lt;/code&amp;gt; für das erste Element eines $user-Arrays – und mit mehr als zwei Ebenen.&lt;br /&gt;
&lt;br /&gt;
Auch simple Berechnung sind möglich, z.B. &amp;lt;code&amp;gt;{$waylength*2}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu dem vom PHP-Code übergebenen Variablen kann man auch eigene definieren, z.B.&lt;br /&gt;
:&amp;lt;code&amp;gt;{assign var=counter value=1}&amp;lt;/code&amp;gt;&lt;br /&gt;
Mit &amp;lt;code&amp;gt;{capture}&amp;lt;/code&amp;gt; lassen sich u.U. auch komplexere Ausdrücke in einer Variable unterbringen.&lt;br /&gt;
&lt;br /&gt;
==== Kontrollstrukturen ====&lt;br /&gt;
&lt;br /&gt;
Bedingte Einbindung von Template-Komponenten ist mit &amp;lt;code&amp;gt;{if} … {elseif} … {else} … {/if}&amp;lt;/code&amp;gt;-Anweisungen möglich. Dabei können auch komplexere PHP-Ausdrucke verwendet werden, die als Boolean ausgewertet werden:&lt;br /&gt;
&lt;br /&gt;
  {if $show_statistics &amp;amp;&amp;amp; ($statdata|@count &amp;gt; 0)}&lt;br /&gt;
    ... Statistik ausgeben ...&lt;br /&gt;
  {/if}&lt;br /&gt;
&lt;br /&gt;
(@count ist eine [[#Benutzerdefinierte Erweiterungen; Übersetzungen|benutzerdefinierte Funktion]])&lt;br /&gt;
&lt;br /&gt;
Eine weiter häufig verwendete Struktur ist &amp;lt;code&amp;gt;{foreach}&amp;lt;/code&amp;gt; zum iterieren von Arrayelementen:&lt;br /&gt;
&lt;br /&gt;
  {foreach from=$caches item=cache}&lt;br /&gt;
    &amp;lt;td&amp;gt;{$cache.name|escape}&amp;lt;/td&amp;gt;&lt;br /&gt;
  {/foreach}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|escape&amp;lt;/code&amp;gt; ist ein &#039;&#039;Modifizierer&#039;&#039;, der den Variableninhalt weiterverarbeitet. In diesem Fall werden HTML-Entitäten &amp;quot;escaped&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;{strip}...{/strip}&amp;lt;/code&amp;gt; lassen sich alle Whitespaces (Leerzeichen, Tabs, Zeilenumbrüche) in einem Abschnitt herausfiltern, was die auszugebende Datenbank reduziert. Aber Vorsicht, falls Whitespaces als Trennzeichen in Ausgaben benötigt werden!&lt;br /&gt;
&lt;br /&gt;
==== Benutzerdefinierte Erweiterungen ====&lt;br /&gt;
&lt;br /&gt;
Smarty lässt sich um eigene&lt;br /&gt;
* Elemente (&amp;quot;Blocks&amp;quot;),&lt;br /&gt;
* Modifizierer und&lt;br /&gt;
* Funktionen&lt;br /&gt;
erweitern. Der Opencaching-Code enthält eine Reihe solcher eigener Erweiterungen in {{Codepath2|htdocs|lib2/smarty/ocplugins}}.&lt;br /&gt;
&lt;br /&gt;
Die wichtigste Erweiterung ist das &amp;lt;code&amp;gt;{t}&amp;lt;/code&amp;gt;-Element zum Übersetzen von Texten. Alle Texte in den Templates werden in Englisch geschrieben und in &amp;lt;code&amp;gt;{t} ... {/t}&amp;lt;/code&amp;gt; eingeschlossen; sie werden dadurch automatisch dem Übersetzungssystem zugeführt. Mehr dazu im Kapitel [[#Übersetzungen|Übersetzungen]].&lt;br /&gt;
&lt;br /&gt;
=== Systemtemplate und Menüsystem ===&lt;br /&gt;
&lt;br /&gt;
Was oben über einzelne Templates geschrieben wurde betrifft nur den Teil der Seite, der im &#039;&#039;Content-Container&#039;&#039; dargestellt wird – also dem Teil unterhalb und rechts des Menüsystems und oberhalb der Fußzeile. Alles &amp;quot;drumherum&amp;quot; wird vom &#039;&#039;Systemtemplate&#039;&#039; erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Codedateien sind daran in der lib1 beteiligt ...&lt;br /&gt;
* Systemtemplate: {{Codepath2|htdocs|lang/de/ocstyle/main.tpl.php}}&lt;br /&gt;
* Menüdefinitionen: {{Codepath2|htdocs|lang/de/ocstyle/lib/menu.php}}&lt;br /&gt;
* PHP-Framework: {{Codepath2|htdocs|lib/common.inc.php}} &amp;amp;rarr; tpl_BuildTemplate()&lt;br /&gt;
... und in der lib2:&lt;br /&gt;
* Systemtemplate: {{Codepath2|htdocs|templates2/ocstyle/sys_main.tpl}}&lt;br /&gt;
* Menüsystem: Tabelle &#039;sys_menu&#039; per {{Codepath2|htdocs|doc/sql/static-data/data.sql}}, {{Codepath2|htdocs|lib2/menu.class.php}}&lt;br /&gt;
* PHP-Framework: {{Codepath2|htdocs|lib2/OcSmarty.class.php}}&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Hauptmenü-Punkte sind via [[#Konfigurationsdateien|Konfigurationsdateien]] erzeugbar.&lt;br /&gt;
&lt;br /&gt;
=== Email-Templates ===&lt;br /&gt;
&lt;br /&gt;
Auch der Inhalt (&#039;&#039;body&#039;&#039;) von Emails wird über Templates erzeugt.&lt;br /&gt;
&lt;br /&gt;
lib1-Email-Templates befinden sich in {{Codepath|htdocs/lang/de/ocstyle/email}}, {{Codepath|htdocs/util/notification}} und {{Codepath|htdocs/util/watchlist}} und werden von den entsprechenden PHP-Modulen direkt per &amp;lt;code&amp;gt;mb_ereg_replace()&amp;lt;/code&amp;gt; aufgelöst.&lt;br /&gt;
&lt;br /&gt;
lib2-Email-Templates liegen in {{Codepath|htdocs/templates2/mail}} und werden von &amp;lt;code&amp;gt;mail.class.php&amp;lt;/code&amp;gt; per Smarty verarbeitet.&lt;br /&gt;
&lt;br /&gt;
=== OKAPI ===&lt;br /&gt;
Die OKAPI hat ein eigenes Templatesystem; mehr dazu im Abschnitt [[#OKAPI|OKAPI]].&lt;br /&gt;
&lt;br /&gt;
== CSS Style Sheets ==&lt;br /&gt;
Die Style Sheets befinden sich in {{Codepath|htdocs/resource2/ocstyle/css}}.&lt;br /&gt;
&lt;br /&gt;
== Grafiken ==&lt;br /&gt;
&lt;br /&gt;
Grafiken für Icons und andere Dinge verteilen sich – soweit es keine Drittbibliotheken betrifft – über drei Verzeichnisse:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/images}} (lib1 und lib2)&lt;br /&gt;
* {{Codepath|htdocs/lang/de/ocstyle/images}} (lib1)&lt;br /&gt;
* {{Codepath|htdocs/resource2/ocstyle/images}} (lib2)&lt;br /&gt;
&lt;br /&gt;
Hier herrscht etwas Chaos. Manches ist mehrfach vorhanden - auch innerhalb &#039;&#039;einer&#039;&#039; Library - oder inkonsistent abgelegt, die Dateitypen wechseln zwischen GIF und PNG. Glattziehen lässt sich das kaum, weil Grafiken auch gerne von anderer Stelle aus verlinkt werden, z.B. aus Cachelistings - teils sogar von anderen Plattformen aus. Schiebt man die Grafiken einfach weg oder ändert das Format, zerstört es unbemerkt Cachebeschreibungen.&lt;br /&gt;
&lt;br /&gt;
Zur Kompatibilität mit alten Cachebeschreibungen und Logs liegen in folgenden Verzeichnissen Grafiken, die anderweitig nicht mehr verwendet werden:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/lang/de/stdstyle/images}}&lt;br /&gt;
* {{Codepath|htdocs/lib/tinymce/plugins/emotions/images}}&lt;br /&gt;
* {{Codepath|htdocs/resource2/stdstyle/images}}&lt;br /&gt;
&lt;br /&gt;
== Übersetzung ==&lt;br /&gt;
&lt;br /&gt;
Der OC-Code ist mehrsprachig und frei übersetzbar, mit Ausnahme&lt;br /&gt;
* der Benachrichtigungs-Emails, die es bislang nur in Deutsch gibt (-&amp;gt; http://redmine.opencaching.de/issues/141)&lt;br /&gt;
* des Garmin-Download-Dialogs ({{Codepath2|htdocs|garmin.php}}), dessen untere Hälfte es nur in Deutsch und Englisch gibt (siehe {{Codepath|htdocs/resource2/ocstyle/js/GarminDisplay.js}})&lt;br /&gt;
(weitere noch nicht lokalisierbare Module bitte ergänzen!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Lokalisierung je nach gewählter Sprache erfolgt grundsätzlich mit folgenden Mechanismen:&lt;br /&gt;
* In Templates über die Smarty-Tags &amp;lt;code&amp;gt;{t}English Text{/t}&amp;lt;/code&amp;gt;. Hierbei können auch Variablen eingesetzt werden, z.B.&lt;br /&gt;
*:&amp;lt;code&amp;gt;{t 1=$cachename 2=$username}The geocache %1 has been found by %2{/t}&amp;lt;/code&amp;gt;&lt;br /&gt;
* Notfalls direkt im PHP-Code durch Aufruf von &amp;lt;code&amp;gt;$translate-&amp;gt;t()&amp;lt;/code&amp;gt;, z.B.&lt;br /&gt;
*:&amp;lt;code&amp;gt;$text = $translate-&amp;gt;t(&#039;New password code&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, basename(__FILE__), __LINE__)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Bei Artikelseiten, die via {{Codepath|htdocs/articles.php}} dargestellt werden, per Ablage der Templates in Unterverzeichnissen von {{Codepath|htdocs/templates2/ocstyle/articles}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Übersetzungssystem arbeitet intern mit &amp;lt;code&amp;gt;gettext()&amp;lt;/code&amp;gt;. Die Strings dafür befinden sich in der Tabellen &#039;&#039;sys_trans&#039;&#039; und &#039;&#039;sys_trans_text&#039;&#039;. Man kann sie direkt via {{Codepath2|htdocs/doc/sql/static-data|data.sql}} einpflegen, oder mit dem &amp;quot;Schnellübersetzungsmodus&amp;quot; + &amp;quot;SQL-Export&amp;quot; von {{Codepath2|htdocs|translate.php}} (Menü Admin|Übersetzung). Letzteres kann allerdings jede Menge Git-Merge-Konflikte beim Zusammenführen verschiedener Branches erzeugen, daher werden OC.de-Übersetzungen derzeit nur direkt in {{Codepath2|htdocs/doc/sql/static-data|data.sql}} eingepflegt.&lt;br /&gt;
&lt;br /&gt;
Achtung: &#039;&#039;&#039;Auch für die englische Seitendarstellung läuft nochmal alles durch den Übersetzer&#039;&#039;&#039;, Artikel ausgenommen. Die englischen Originaltexte in den Templates oder im PHP-Code sind also nur eine Basis für die weitere Übersetzung. Kleinere Fehler dort müssen nicht korrigiert werden, solange die Texte verständlich sind. &#039;&#039;Wenn&#039;&#039; dort etwas korrigiert wird, muss es gleichzeitig auch in der Tabelle &#039;&#039;sys_trans&#039;&#039; in {{Codepath2|htdocs/doc/sql/static-data|data.sql}} geändert werden!&lt;br /&gt;
&lt;br /&gt;
Opencaching.de gibt es zurzeit in Deutsch, Englisch, Italienisch und Spanisch. Die Übersetzungen werden durch den von Opencaching Deutschland eingesetzten Code Maintainer organisiert.&lt;br /&gt;
&lt;br /&gt;
== Fehlerbehandlung ==&lt;br /&gt;
&lt;br /&gt;
Der OC-Code verwendet kein Exception Handling (mit Ausnahme der OKAPI). Wenn etwas fehlschlägt, wird dies durch den Rückgabewert der betreffenden Funktion signalisiert und entsprechend reagiert. Würde man den betroffenen Funktionen noch einen Namenszusatz spendieren, der die mögliche Fehlerrückgabe kennzeichnet, wäre dieses System transparenter und in sich weniger fehleranfällig als ein strukturiertes Exception Handling.&lt;br /&gt;
&lt;br /&gt;
==== fehlerhafte Benutzereingaben ====&lt;br /&gt;
Wenn es Probleme mit einer Benutzereingabe gibt, wird das betreffende Template nochmals angezeigt und an passender Stelle eine mit dem CSS-Stil &amp;lt;code&amp;gt;errormsg&amp;lt;/code&amp;gt; formatierte Meldung eingeblendet. Dies ist jeweils entsprechend zu implementieren.&lt;br /&gt;
&lt;br /&gt;
==== erkanntes Problem ====&lt;br /&gt;
Wenn anderweitig ein nicht handhhabbares Problem erkannt wird, wird das Fehlertemplate angezeigt. In &#039;&#039;&#039;lib1&#039;&#039;&#039; befindet sich dies in {{Codepath2|htdocs|lang/de/ocstyle/error.tpl.php}} und wird aufgerufen per&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_errorMsg(&#039;original_templatename&#039;, $fehlermeldung);&amp;lt;/code&amp;gt;&lt;br /&gt;
z.B.&lt;br /&gt;
 $error_desc_not_found = t(&#039;(internal error) The description is not available.&#039;);&lt;br /&gt;
 ...&lt;br /&gt;
 tpl_errorMsg(&#039;editdesc&#039;, $error_desc_not_found);&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;&#039;lib2&#039;&#039;&#039;-Fehlertemplate befindet sich in bzw. {{Codepath2|htdocs|templates2/ocstyle/error.tpl}} und wird verwendet mit&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;error(Fehlernummer)&amp;lt;/code&amp;gt;&lt;br /&gt;
oder&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;error($fehlermeldung);&amp;lt;/code&amp;gt;&lt;br /&gt;
Die Fehlernummern sind in {{Codepath2|htdocs|lib2/error.inc.php}} definiert.&lt;br /&gt;
&lt;br /&gt;
; SQL-Fehler&lt;br /&gt;
&lt;br /&gt;
Bei MySQL-Fehlern wird ein Fehlertemplate anzeigt und eine Admin-Email versandt, sofern in den [[#Konfigurationsdateien|Settings]] eine Mailadresse hinterlegt ist. In der lib1 ist sie in&lt;br /&gt;
:&amp;lt;code&amp;gt;$sql_errormail&amp;lt;/code&amp;gt;&lt;br /&gt;
einzutragen, in der lib2 in&lt;br /&gt;
:&amp;lt;code&amp;gt;$opt[&#039;db&#039;][&#039;error&#039;][&#039;mail&#039;]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Entwicklersysteme werden so konfiguriert, dass das komplette SQL-Statement auch direkt angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann man per &amp;lt;code&amp;gt;$sql_warntime&amp;lt;/code&amp;gt; (lib1) bzw. &amp;lt;code&amp;gt;$opt[&#039;db&#039;][&#039;warn&#039;][&#039;time&#039;]&amp;lt;/code&amp;gt; (lib2) eine Warnschwelle für zu lange SQL-Ausführungszeiten festlegen. Bei Überschreitung werden dann Admin-Mails erzeugt.&lt;br /&gt;
&lt;br /&gt;
==== unerkanntes Problem ====&lt;br /&gt;
&lt;br /&gt;
{{Codepath2|htdocs|lib2/errorhandler.inc.php}} enthält ein noch in der Testphase befindlichen Handler für PHP-Fehler, der auch in lib1 eingebunden ist. Er wird bei PHP-Fehlern aktiv, die (abhängig von der &#039;&#039;error_reporting&#039;&#039;-Einstellung in der PHP-Konfiguration) zu einem Abbruch des Scripts führen. Es wird dann eine Fehlermeldung anzeigt und ggf. eine Admin-Mail erzeugt. Es wird die gleiche Emailkonfiguration wie für bei SQL-Problemen (s.o.) verwendet.&lt;br /&gt;
&lt;br /&gt;
Dieser PHP-Errorhandler ist derzeit nur aktiviert, wenn in der Konfiguration der Debug-Modus eingeschaltet ist. Ansonsten erscheint bei Fehlern eine leere Seite.&lt;br /&gt;
&lt;br /&gt;
== OKAPI ==&lt;br /&gt;
&lt;br /&gt;
Die Opencaching-API ist ein eigenständiges PHP-Projekt, dessen Code auf verschiedenen OC-Seiten zum Einsatz kommt. Die Projekt-Homepage ist http://code.google.com/p/opencaching-api/. Beiträge, die nicht vom Code-Maintainer selbst kommen, werden üblicherweise in Branches hochgeladen und laufen dann durch ein Code Review.&lt;br /&gt;
&lt;br /&gt;
Die OKAPI wird – erfolgreich! – mit einem wesentlich höheren Anspruch an Codequalität und -Stil entwickelt als die OC-Länderseiten. Dokumentation und Codestruktur sind herausragend. Gleichzeitig steht sie bei einigen Details wie Template-Engine, Datenbank-Library und Konstanten-Definitionen hinter dem OC.de-Code zurück. Der OKAPI-Code ist nur für Webanwendungen geschrieben; Einbindung in Kommandozeilentools kann insbesondere am Exception-Handling scheitern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der OKAPI-Code wird aus dem OKAPI-Projekt in die lokalen OC-Code-Repositories (nach {{Codepath|htdocs/okapi}}) repliziert. Bei Opencaching.pl und .nl geschieht dies automatisch über einen SVN-&amp;quot;Commit-Hook&amp;quot;, bei Opencaching.de manuell durch den Code-Maintainer nach einem Security Review.&lt;br /&gt;
&lt;br /&gt;
OKAPI-Code kann über die &amp;quot;Facade&amp;quot;-Schnittstelle in OC-Code eingebunden werden ({{Codepath2|htdocs|okapi/facade.php}}). OC.pl macht davon insbesondere bei der Karte Gebrauch, die von der OKAPI generiert wird. OC.de verwendet die Facade bislang nur (experimentell) im Update-Script {{Codepath|bin/okapi-update.php}}, das von {{Codepath2|bin|dbupdate.php}} aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
Sämtliche OKAPI-Seitenzugriffe laufen über eine Rewrite-Engine ({{Codepath2|htdocs|okapi/.htaccess}} → {{Codepath2|htdocs|okapi/controller.php}}). Man kann daher die PHP-Scripte nicht direkt über ihre URLs idenitifizieren sondern muss schonmal etwas suchen. Methoden befinden sich in {{Codepath2|htdocs|okapi/services}}, Seiten mit HTML-Output in {{Codepath2|htdocs|okapi/views}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Dokumentation verwendet die OKAPI ein eigenes XML-Format, das von einem Parser aufbereitet wird.&lt;br /&gt;
&lt;br /&gt;
Templates für Methoden, die HTML- oder sonstiges XML-Output liefern, sind in .tpl.php-Dateien zusammen mit den PHP-Quelltexten abgelegt. Variablen werden per PHP-Code eingebunden, meist per &amp;quot;short open tags&amp;quot;, z.B.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? if (($vars[&#039;my_notes&#039;] == &#039;desc:text&#039;) &amp;amp;&amp;amp; ($c[&#039;my_notes&#039;] != null)) { /* Does user want us to include personal notes? */ ?&amp;gt;&lt;br /&gt;
   &amp;amp;lt;p&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;&amp;lt;?= _(&amp;quot;Personal notes&amp;quot;) ?&amp;gt;:&amp;amp;lt;/b&amp;amp;gt; &amp;lt;?= Okapi::xmlescape($c[&#039;my_notes&#039;]) ?&amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
 &amp;lt;? } ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Entwicklung|Codedoku]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Entwicklung/Codedoku&amp;diff=5659</id>
		<title>Entwicklung/Codedoku</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Entwicklung/Codedoku&amp;diff=5659"/>
		<updated>2014-05-18T07:53:47Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Übersetzung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Materialsammlung zum [http://github.com/OpencachingDeutschland/oc-server3 Opencaching-Programmcode]. Sie soll neuen [[Entwicklung|Entwicklern]] einen Überblick über die Grundstruktur und wichtigsten Bestandteile des OC-Codes geben. Mit &amp;quot;OC-Code&amp;quot; ist alles gemeint, was sich im [[Entwicklung/Git|Git-Repository]] befindet.&lt;br /&gt;
&lt;br /&gt;
Weitere Dokumentationen gibt es auch in den Codeverzeichnissen {{Codepath|doc}} und {{Codepath|htdocs/doc}}. Die Datei {{Codepath|doc/directories.txt}} enthält eine Übersicht der Repository-Verzeichnisstruktur. &#039;&#039;(Grüne Pfad- und Dateinamen sind anklickbar.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Alle die bereits an Opencaching mitprogrammiert haben, sind eingeladen, ihr Wissen beizusteuern! Wenn du dir zusätzliche Erläuterungen wünschst, kannst du sie auf der Diskussionsseite anfragen – vielleicht findet sich jemand, der den Artikel ergänzt.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[Entwicklung/Stil|Style Guidelines]]&lt;br /&gt;
&lt;br /&gt;
== Dateiformat ==&lt;br /&gt;
&lt;br /&gt;
Alle OC-Quelltextdateien haben [[wikipedia:UTF-8|UTF-8]]-Format. Im Kopf der Quelltextdateien befindet sich ein japanisches Wort (&amp;quot;Unicode Reminder&amp;quot;), mit dem geprüft werden kann ob die Zeichencodierung intakt ist. Sollte versehentlich nach ISO-8859-1 o.ä. umcodiert worden sein, erscheinen dort z.B. zwei Fragezeichen oder gar nichts.&lt;br /&gt;
&lt;br /&gt;
{{Codepath|local/tools/find_bad_encodings.php}} prüft alle Quelltexte auf fehlende oder beschädigte Unicode Reminder.&lt;br /&gt;
&lt;br /&gt;
Die Zeilenenden der Quelltexte bestehen grundsätzlich aus einem einfachen LF (line feed). Ausnahmen gibt es z.B. bei [[#Email-Templates|Email-Templates]]; hier ist CR/LF vorgeschrieben.&lt;br /&gt;
&lt;br /&gt;
== Hauptmodule ==&lt;br /&gt;
&lt;br /&gt;
Mit &amp;quot;lib1&amp;quot; und &amp;quot;lib2&amp;quot; sind im Folgenden die OC-eigenen Codebibliotheken in {{Codepath|htdocs/lib}} und {{Codepath|htdocs/lib2}} gemeint. Alle Teile des OC-Codes bauen auf einer dieser beiden Bibliotheken auf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;widelist&amp;quot;&amp;gt;&lt;br /&gt;
Der OC-Software besteht aus ...&lt;br /&gt;
* Den &#039;&#039;&#039;darstellbaren Seiten&#039;&#039;&#039; der OC-Website, z.B. Startseite (&#039;&#039;index&#039;&#039;) oder Cachelisting-Anzeige (&#039;&#039;viewcache&#039;&#039;). Diese bestehen jeweils aus einem PHP-Script im Verzeichnis {{Codepath|htdocs}} und einem [[#Templates|Template]] in {{Codepath|htdocs/templates2/ocstyle}} (lib1: {{Codepath|htdocs/lang/de/ocstyle}}). Das PHP-Script erzeugt die darzustellenden Inhalte, das Template stellt sie als HTML-Seite dar.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kommandozeilentools&#039;&#039;&#039; für verschiedene Zwecke, z.B. Wartungstools die per Crojob oder von Hand aufgerufen werden. Sie befinden sich in an verschiedenen Stellen:&lt;br /&gt;
** {{Codepath|bin}} (Update-Scripte)&lt;br /&gt;
** {{Codepath|htdocs/util}} (lib1, Tools für Produktivbetrieb)&lt;br /&gt;
** {{Codepath|htdocs/util2}} (lib2, Tools für Produktivbetrieb)&lt;br /&gt;
** {{Codepath|local}} (spezielle Tools für lokale Verwendung)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;APIs&#039;&#039;&#039;, also Schnittstellen für Datenabruf oder -upload durch Dritte:&lt;br /&gt;
** diverse APIs in {{Codepath|htdocs/api}}&lt;br /&gt;
** die [[OKAPI]] in {{Codepath|htdocs/okapi}}, repliziert aus dem [http://code.google.com/p/opencaching-api/source/browse/trunk/#trunk%2Fokapi OKAPI-Repository]&lt;br /&gt;
** die [[XML-Schnittstelle]] in {{Codepath|htdocs/xml}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Apache-Rewrites&#039;&#039;&#039;. Dies sind Konfigurationsdateien mit dem Name &#039;&#039;.htaccess&#039;&#039;, die vom Apache-Webserver ausgelesen werden. Sie interpretieren die übergebene URL und leiten auf ein PHP-Script um. Apache-Rewrites kommen an zwei Stellen zum Einsatz:&lt;br /&gt;
** Statistikbilder: {{Codepath|htdocs/statpics/htaccess-dist|htdocs/statpics/.htaccess}}&lt;br /&gt;
** OC-Kurz-URLs, z.B. http://opencaching.de/OC1234: diese sind direkt im Produktiv-Webserver konfiguriert.&lt;br /&gt;
&lt;br /&gt;
== Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Die einzelnen OC-Module verwenden verschiedene Code-Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
=== Eigene Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
==== lib1 ====&lt;br /&gt;
Die alte selbstgeschriebene Bibliothek von OC-Codeversion 1.0, in {{Codepath|htdocs/lib}}. Sie enthält z.B. Funktionen für Datenbankzugriff, Login, Menüs, geographische Berechnungen und ein einfaches Template-System.&lt;br /&gt;
&lt;br /&gt;
lib1 ist veraltet und wird auf OC.de nur noch für das Bearbeiten von Logs und Cachebeschschreibungen, für Benachrichtigungen über beobachtete und neue Caches und für die XML-Schnittstelle verwendet. Mittelfristig soll sie ganz durch lib2 ersetzt werden. (Alle auf OC.pl-Code basierenden [[Opencaching]]-Seiten verwenden weiterhin ausschließlich die lib1).&lt;br /&gt;
&lt;br /&gt;
lib1 wird eingebunden mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib/common.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lib2 ====&lt;br /&gt;
Die Bibliothek der OC.de-Codversion 2.0 und höher in {{Codepath|htdocs/lib2}}, Nachfolger von lib1. Sie ist wesentlich umfangreicher. Der Code ist aufgeteilt in das &amp;quot;Framework&amp;quot; mit allgemeinen Dingen wie Datenbankzugriff, Authentifizierung, Lokalisierung, Templates etc. und die sogenannte &amp;quot;Business Logic&amp;quot; in {{Codepath|htdocs/lib2/logic}} mit allen Geocaching-spezifischen Klassen und Funktionen.&lt;br /&gt;
&lt;br /&gt;
lib2 wird in Bestandteile der Website eingebunden mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib2/web.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
und in Kommandozeilentools mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib2/cli.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;gemeinsamer lib1- und lib2-Code&lt;br /&gt;
Manche Bibliotheksmodule werden versionsübergreifend verwendet, z.B. für Übersetzungen und Sprachauswahl. Sie sind in {{Codepath|htdocs/lib2}} abgelegt.&lt;br /&gt;
&lt;br /&gt;
==== libse ====&lt;br /&gt;
Eine Klassenbibliothek von Opencaching.se, in {{Codepath|htdocs/libse}}. Im Zuge der Codezusammenführung von OC.de und OC.se wurde sie 2011 mit in den OC.de-Code übernommen. Sie wird für zusätzliche Wegpunkte und persönliche Notizen im Cachelisting verwendet.&lt;br /&gt;
&lt;br /&gt;
==== Autoload ====&lt;br /&gt;
Für die Klassen aller drei Bibliotheken sind Autoloader installiert. Das heißt wenn man z.B. ein Cache-Objekt benötigt, muss man dafür nicht {{Codepath2|htdocs|lib2/logic/cache.class.php}} einbinden sondern man erzeugt einfach direkt das Objekt:&lt;br /&gt;
:&amp;lt;code&amp;gt;$cache = new cache();&amp;lt;/code&amp;gt;&lt;br /&gt;
{{Codepath2|htdocs/lib2/logic|cache.class.php}} wird dann automatisch geladen.&lt;br /&gt;
&lt;br /&gt;
=== Fremdbibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Die OC-Software macht ausgiebig Gebrauch von fertigen PHP- und JavaScript-Codebibliotheken. Eine vollständige Aufstellung incl. Codepfade, Bezugsquellen etc. enthält {{Codepath|doc/license.txt}}. Hier seien nur die wichtigsten davon erwähnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;widelist&amp;quot;&amp;gt;&lt;br /&gt;
* [http://www.smarty.net/ &#039;&#039;&#039;Smarty&#039;&#039;&#039;] wird als &amp;quot;Template-Engine&amp;quot; für lib2 verwendet. OC-spezifische Erweiterungen befinden sich in der Klasse &#039;&#039;OcSmarty&#039;&#039; und in {{Codepath2|htdocs|lib2/smarty/ocplugins}}. Mehr dazu im Abschnitt [[#Templates|Templates]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[http://htmlpurifier.org/ HTML Purifier]&#039;&#039;&#039; dient zum &amp;quot;Säubern&amp;quot; von HTML-Code, den der Benutzer z.B. in Cachebeschreibungen eingeben kann. lib1 und lib2 verwenden getrennte HTML-Purifier-Installationen. In lib2 wird er über die Klasse &#039;&#039;OcHTMLPurifier&#039;&#039; eingebunden und kann dort auch angepasst werden. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[http://www.tinymce.com/ TinyMCE]&#039;&#039;&#039; ist ein leistungsfähiger JavaScript-Wysiwyg-Texteditor. Er dient zum Bearbeiten von Cachebeschreibungen, Logs und Profiltexten. lib1 und lib2 verwenden beide die TinyMCE-Installation in {{Codepath|htdocs/resource2/tinymce}}. OC-spezifische Konfigurationsdaten gibt es in {{Codepath2|htdocs/resource2|tinymce/config}}. &lt;br /&gt;
&lt;br /&gt;
Von lib2-Code verwendete Bibliotheken sind in {{Codepath|htdocs/lib2}} (PHP) und {{Codepath|htdocs/resource2}} (JavaScript) angelegt. Bibliotheken für lib1 befinden sich an verschiedenen Stellen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdateien ==&lt;br /&gt;
&lt;br /&gt;
==== lib1-Konfiguration ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellungen für lib1-Code befinden sich überwiegend in&lt;br /&gt;
:&#039;&#039;htdocs/lib/settings.inc.php&#039;&#039;&lt;br /&gt;
Diese Datei ist nur lokal vorhanden. Als Vorlage für das Aufsetzen einer neuen Produktiv-Installation gibt es die Datei {{Codepath2|htdocs/lib|settings-dist.inc.php}}, die nach &#039;&#039;settings.inc.php&#039;&#039; zu kopieren und anzupassen ist.&lt;br /&gt;
&lt;br /&gt;
Für [[Entwicklung/Entwicklersystem|Entwicklersysteme]] gibt es entsprechend die Vorlage {{Codepath2|htdocs/lib|settings-sample-dev.inc.php}}. Sie verwendet die Datei {{Codepath2|htdocs/lib|settings-dev.inc.php}}, in der die Grundeinstellungen für Entwicklersysteme zusammengefasst sind.&lt;br /&gt;
&lt;br /&gt;
Daneben gibt es noch zwei Konfigurationsdateien &#039;&#039;settings.inc.php&#039;&#039; für die Benachrichtigungs-Cronjobs, in {{Codepath|htdocs/util/notification}} und {{Codepath|htdocs/util/watchlist}}.&lt;br /&gt;
&lt;br /&gt;
Weiterhin verwendet lib1 auch Teile der lib2-Konfiguration, insbesondere {{Codepath2|htdocs/config2|locale.inc.php}}.&lt;br /&gt;
&lt;br /&gt;
==== lib2-Konfiguration ====&lt;br /&gt;
&lt;br /&gt;
Die lib2-Einstellungen befinden sich alle in {{Codepath|htdocs/config2}}. Sie werden &#039;&#039;alle&#039;&#039; in folgender Reihenfolge eingebunden, sobald man {{Codepath2|htdocs/lib2|web.inc.php}} oder {{Codepath2|htdocs/lib2|cli.inc.php}} einbindet:&lt;br /&gt;
&lt;br /&gt;
* sprachabhängige Einstellungen: {{Codepath2|htdocs/config2|locale.inc.php}}&lt;br /&gt;
* sonstige Default-Einstellungen: {{Codepath2|htdocs/config2|settings-dist.inc.php}}&lt;br /&gt;
* lokale Einstellungen: &#039;&#039;settings.inc.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auch hier sind Vorlagen für Produktiv- ({{Codepath2|htdocs/config2|settings-sample.inc.php}}) und Entwicklersystem ({{Codepath2|htdocs/config2|settings-sample-dev.inc.php}}) vorhanden, die nach &#039;&#039;settings.inc.php&#039;&#039; zu kopieren und and die lokale Systeminstallation anzupassen sind.&lt;br /&gt;
&lt;br /&gt;
==== Der Rootpath ====&lt;br /&gt;
&lt;br /&gt;
Wenn man in PHP-Scripte mit &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt; weitere Dateien einbindet, geschieht dies relativ zum Verzeichnispfad des Hauptscripts. (Daneben kann man auch weitere Pfade festlegen, in denen PHP nach passenden Scripten sucht.)&lt;br /&gt;
&lt;br /&gt;
Wie unter [[#Hauptmodule|Hauptmodule]] erläutert, befinden sich die Module der OC-Software auf verschiedenen Verzeichnisebenen Die Startseite liegt z.B. in {{Codepath|htdocs}}, das lib2-Cronjob-Modul dagegen in {{Codepath|htdocs/util2/cron}}. Alle diese Module binden lib1- oder lib2-Bibliothekscode ein, der weitere Unterscripte einbindet. Damit das alles funktioniert, wird im OC-Code ein &#039;&#039;Basispfad&#039;&#039; für alle Includes festgelegt. Dieser heißt&lt;br /&gt;
:&amp;lt;code&amp;gt;$opt[&#039;rootpath&#039;]&amp;lt;/code&amp;gt;&lt;br /&gt;
in lib2 und&lt;br /&gt;
:&amp;lt;code&amp;gt;$rootpath&amp;lt;/code&amp;gt;&lt;br /&gt;
in lib1.&lt;br /&gt;
&lt;br /&gt;
Sofern man keine weiteren Vorkehrungen trifft, wird dieser Rootpath automatisch als Relativpfad &amp;quot;./&amp;quot; gesetzt. Scripte in Unterverzeichnissen müssen ihn dagegen selbst setzen, z.B. &amp;quot;../&amp;quot; wenn das Script eine Ebene tiefer liegt, oder absolut als &amp;lt;code&amp;gt;dirname(__FILE__).&#039;../&#039;&amp;lt;/code&amp;gt;, wenn nicht bekannt ist, aus welchem aktuellen Verzeichnis ein Kommandozeilentool aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
== Konstanten ==&lt;br /&gt;
&lt;br /&gt;
Globale Konstanten sind an folgenden Stellen definiert:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/lib/consts.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/const.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/error.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/logic/const.inc.php}}&lt;br /&gt;
&lt;br /&gt;
Die lib2-Konstanten werden auch teilweise auch in lib1-Code verwendet.&lt;br /&gt;
&lt;br /&gt;
== Datenbank ==&lt;br /&gt;
&lt;br /&gt;
Die OC-Software ist nur für die Verwendung von MySQL ausgelegt. Zwar werden in lib2 keine MySQL-Funktionen mehr direkt aufgerufen, aber zahlreiche SQL-Statements verlassen sich auf MySQL-Syntax.&lt;br /&gt;
&lt;br /&gt;
=== Grundlegende Datenbankfunktionen ===&lt;br /&gt;
&lt;br /&gt;
Für lib2 befinden sich alle Funktionen in {{Codepath2|htdocs|lib2/db.inc.php}} und sind dort kurz dokumentiert, für lib1 in {{Codepath2|htdocs|lib/clicompatbase.inc.php}}. Datenbankverbindungen werden automatisch entsprechend den Konfigurationseinstellungen hergestellt, sobald man eine Query absetzt.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten Funktionen seien hier anhand von Beispielen erläutert:&lt;br /&gt;
&lt;br /&gt;
 sql(&amp;quot;UPDATE `caches` SET `size`=&#039;&amp;amp;1&#039; WHERE `cache_id`=&#039;&amp;amp;2&#039;&amp;quot;,&lt;br /&gt;
     $newsize, $cacheid);&lt;br /&gt;
&lt;br /&gt;
Hier wird die Größe eines Caches geändert. Variablen werden als fortlaufend numerierte Platzhalter &amp;amp;1, &amp;amp;2 etc. übergeben. Die Funktion &#039;&#039;sql&#039;&#039; ruft dann intern für jede Variable &amp;lt;code&amp;gt;mysql_real_escape_string()&amp;lt;/code&amp;gt; auf, was spezielle Zeichen wie &amp;quot; codiert und gleichzeitig [[wikipedia:SQL-Injection|SQL-Injections]] verhindert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Niemals dürfen Variablen direkt in SQL-Statements eingebaut werden!&#039;&#039;&#039; Wann immer möglich sind Platzhalter zu verwenden. Notfalls kann auch direkt mit &amp;lt;code&amp;gt;sql_escape()&amp;lt;/code&amp;gt; codiert werden, was allerdings Probleme verursacht, wenn ein &amp;quot;&amp;amp;&amp;quot; in den Daten enthalten ist: Die Funktion &amp;lt;code&amp;gt;sql()&amp;lt;/code&amp;gt; interpretiert es anschließend als Startzeichen eines Platzhalters.&lt;br /&gt;
&lt;br /&gt;
 $cachesize = sql_value(&amp;quot;&lt;br /&gt;
    SELECT `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    null, $cacheid);&lt;br /&gt;
&lt;br /&gt;
Hier wird die Größe eines Caches abgefragt. Falls die Cache-ID nicht gefunden wird, wird der Defaultwert &#039;&#039;null&#039;&#039; zurückgeliefert. Denke immer daran, den Defaultwert als ersten Parameter anzugeben! Ihn zu vergessen ist eine häufige Fehlerquelle.&lt;br /&gt;
&lt;br /&gt;
In der lib1 heißt die Funktion anders und kann nicht mit Platzhaltern umgehen; der entsprechende Code lautet dann:&lt;br /&gt;
&lt;br /&gt;
 $cachesize = sqlValue(&amp;quot;&lt;br /&gt;
    SELECT `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;quot; . sql_escape($cacheid) . &amp;quot;&#039;&amp;quot;,&lt;br /&gt;
    null);&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel demonstriert, wie der Inhalt einer Tabelle ausgelesen wird:&lt;br /&gt;
&lt;br /&gt;
  $rs = sql(&amp;quot;&lt;br /&gt;
    SELECT `cache_id`, `name`, `type` `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    $cacheid);&lt;br /&gt;
  while ($r = sql_fetch_assoc($rs))&lt;br /&gt;
  {&lt;br /&gt;
    // ... Weiterverarbeitung von $r[&#039;cache_id&#039;], $r[&#039;name&#039;] etc.&lt;br /&gt;
  }&lt;br /&gt;
  sql_free_result($rs);&lt;br /&gt;
&lt;br /&gt;
=== Slave-Server ===&lt;br /&gt;
&lt;br /&gt;
Beide OC-Libraries sehen eine Lastverteilung auf einen Haupt-Datebankserver (Master) und einen oder mehrere &amp;quot;Slaves&amp;quot; vor, die replizierte Daten des Masters enthalten; siehe {{Codepath|doc/replication.txt}}. Dazu gibt es SQL-Funktionen mit dem Zusatz &amp;quot;_slave&amp;quot;, z.B. &amp;lt;code&amp;gt;sql_slave()&amp;lt;/code&amp;gt;, die von &amp;quot;datenbankintensiven&amp;quot; Programmmodulen wie z.B. der Suche ({{Codepath2|htdocs|search.php}}) anstatt der Basisfunktionen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Wenn per &#039;&#039;settings.inc.php&#039;&#039; keine Slave-Server konfiguriert sind, laufen alle Zugriffe über den Master. Zurzeit betreibt kein Opencaching-Knoten Slave-Server; die Kapazität des Masters reicht überall aus.&lt;br /&gt;
&lt;br /&gt;
=== Temporärtabellen ===&lt;br /&gt;
&lt;br /&gt;
Da Subqueries bei MySQL recht ineffizient sind, sind manchmal temporäre Tabellen für Zwischenergebnisse nötig.&lt;br /&gt;
&lt;br /&gt;
lib2 sieht einen speziellen Mechanismus zur Verwaltung von Temporärtabellen vor. Sie werden in einer eigenen Datenbank abgelegt, für die erweiterte Zugriffsrechte (Tabellen anlegen/löschen) vergeben werden, und werden per Cronjob automatisch aufgeräumt, wenn sie nicht gleich wieder gelöscht wurden.&lt;br /&gt;
&lt;br /&gt;
Ein (nicht unbedingt sinnvolles) Beispiel für die Verwendung von lib2-Temporärtabellen. Die temporäre Tabelle heißt &amp;quot;tmp_caches&amp;quot; und wird in SQL-Statements über einen Platzhalter referenziert:&lt;br /&gt;
&lt;br /&gt;
  sql_temp_table(&#039;tmp_caches&#039;);  // Tabelle registrieren&lt;br /&gt;
  sql(&amp;quot;                          // Tabelle anlegen&lt;br /&gt;
    CREATE TEMPORARY TABLE &amp;amp;tmp_caches ENGINE=MEMORY&lt;br /&gt;
    SELECT `cache_id` FROM `caches`&lt;br /&gt;
    WHERE `user`.`user_id` = `caches`.`user_id`&lt;br /&gt;
      AND `user`.`country` = &#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    $country);&lt;br /&gt;
 &lt;br /&gt;
  $rs = sql(&amp;quot;                    // Tabelle auslesen&lt;br /&gt;
    SELECT * FROM `cache_desc`, &amp;amp;tmp_caches&lt;br /&gt;
    WHERE `cache_desc`.`cache_id` = &amp;amp;tmp_caches.`cache_id`&amp;quot;);&lt;br /&gt;
  // ... Daten weiterverarbeiten&lt;br /&gt;
  sql_free_result($rs);&lt;br /&gt;
 &lt;br /&gt;
  sql_drop_temp_table(&#039;tmp_caches&#039;);  // Tabelle löschen&lt;br /&gt;
&lt;br /&gt;
=== Datenbankstruktur; statische Daten ===&lt;br /&gt;
&lt;br /&gt;
Datenbankstruktur und -inhalte werden an folgenden Stellen unter {{Codepath|htdocs/doc/sql}} definiert:&lt;br /&gt;
&lt;br /&gt;
* Tabellen, Felder und Indizes in {{Codepath2|htdocs/doc/sql|tables}}&lt;br /&gt;
* Stored Functions, Procedures und Triger in {{Codepath2|htdocs/doc/sql|stored-proc}}&lt;br /&gt;
* statische Daten wie z.B. Menüs, Cachetypen und sprachabhängige Texte in {{Codepath2|htdocs/doc/sql|static-data/data.sql}}.&lt;br /&gt;
&lt;br /&gt;
Es gibt weitere (geographische) &amp;quot;statische Daten&amp;quot;, die aufgrund ihres Umfangs nicht im Git-Repository enthalten sind; siehe {{Codepath2|htdocs/doc/sql|static-data/static-data.txt}}. Für Entwickler steht auf Anfrage ein Datenbankdump zur Verfügung, der eine vollständig initialisierte OC-Datenbank enthält (Veröffentlichung ist geplant). Weitere Updates können dann per&lt;br /&gt;
:{{Codepath|bin/dbupdate.php}}&lt;br /&gt;
eingepflegt werden, also man muss die oben aufgelisteten Dateien nicht von Hand weiterverarbeiten.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[Entwicklung/Datenbankversionierung|Datenbankversionierung]]&lt;br /&gt;
&lt;br /&gt;
==== OKAPI ====&lt;br /&gt;
&lt;br /&gt;
Die [[OKAPI]]-Tabellen werden zwar in der gleichen Datenbank abgelegt, sind aber unabhängig von den OC-Tabellen und daher &#039;&#039;nicht&#039;&#039; in {{Codepath|htdocs/doc/sql}} definiert. Bei [http://code.google.com/p/opencaching-api/#Installation_/_Update_Instructions Installation der OKAPI] werden sie automatisch angelegt und bei OKAPI-Updates automatisch aktualisiert. {{Codepath2|bin|dbupdate.php}} führt auch OKAPI-Updates durch, falls die OKAPI installiert ist.&lt;br /&gt;
&lt;br /&gt;
Auch der OKAPI-&#039;&#039;Code&#039;&#039; ist unabhängig vom OC-Code, d.h. sämtliche Datenbankzugriffe sind dort redundant implementiert. &#039;&#039;&#039;Bei Änderungen an Datenstrukturen oder -inhalten ist daher immer zu prüfen, ob eine Anpassung der OKAPI nötig ist!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Trigger &amp;amp; Stored Procedures ===&lt;br /&gt;
&lt;br /&gt;
Der Opencaching-Code macht reichlich Gebrauch von gespeicherten Datenbank-Funktionen und Triggern. Sie werden dazu eingesetzt, um die Konsistenz der Datenbankinhalte zu gewährleisten. Vor dem Hintergrund, dass drei unabhängige Frameworks parallel auf die Datenbank zugreifen – lib1, lib2 und OKAPI (und manchmal noch ein Administrator von Hand) – ist diese Vorgehensweise ratsam. Sie macht die OC.de-Datenbank ausgesprochen robust.&lt;br /&gt;
&lt;br /&gt;
Alle Datenbankfunktionen sind in &lt;br /&gt;
:{{Codepath|htdocs/doc/sql/stored-proc}}&lt;br /&gt;
definiert. Der aktuelle Stand befinden sich in {{Codepath2|htdocs/doc/sql/stored-proc|maintain-current.inc.php}}; für die [[Entwicklung/Datenbankversionierung|Datenbankversionierung]] können zusätzliche ältere Stände bzw. Update-Scripte existieren.&lt;br /&gt;
&lt;br /&gt;
Der Inhalt des &#039;&#039;maintain&#039;&#039;-Scripts lässt sich grob untergliedern in&lt;br /&gt;
* allgemeine Funktionen für komplexe Berechnungen, z.B. &amp;lt;code&amp;gt;DECTOWP&amp;lt;/code&amp;gt; für die Berechnung neuer OC-Wegpunkte&lt;br /&gt;
* Update-Funktionen für bestimmte Felder (&amp;lt;code&amp;gt;sp_update_*&amp;lt;/code&amp;gt;) die entweder von verschiedenen Triggern aufgerufen werden oder zur Datenbankwartung aus {{Codepath2|htdocs|dbmaint.php}} (Menü Admin|Datenbankwartung)&lt;br /&gt;
* Trigger-Prozeduren&lt;br /&gt;
&lt;br /&gt;
Eine Besonderheit sind &#039;&#039;&#039;globale Variablen&#039;&#039;&#039; die zur Parameterübergabe von PHP-Scripten an Datenbankfunktionen oder zwischen Datenbankfunktionen verwendet werden. Sie sind in {{Codepath2|htdocs/doc/sql/stored-proc|maintain-current.inc.php}} erläutert.&lt;br /&gt;
&lt;br /&gt;
=== SQL-Debugger ===&lt;br /&gt;
&lt;br /&gt;
lib1 und lib2 enthalten einen nützlichen SQL-Debugger ({{Codepath2|htdocs|lib/sqldebugger.inc.php}} bzw. {{Codepath2|htdocs|lib2/sqldebugger.class.php}}). Er zeigt für jedes ausgeführte SQL-Statment&lt;br /&gt;
&lt;br /&gt;
* das Statement selbst,&lt;br /&gt;
* ein [http://dev.mysql.com/doc/refman/5.1-olh/de/using-explain.html EXPLAIN],&lt;br /&gt;
* die ersten zurückgelieferten Datensätze, falls vorhanden,&lt;br /&gt;
* die Ausführungszeit,&lt;br /&gt;
* eventuelle MySQL-Warnungen.&lt;br /&gt;
&lt;br /&gt;
Der SQL-Debugger muss in den [[#Konfigurationsdateien|Settings]] aktiviert sein – für lib1 per &amp;lt;code&amp;gt;$sql_debug = true&amp;lt;/code&amp;gt;, in lib2 durch Setzen des Flags &amp;lt;code&amp;gt;DEBUG_SQLDEBUGGER&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;$opt[&#039;debug&#039;]&amp;lt;/code&amp;gt;. Wahlweise kann man diese Flags auch nur in einzelnen zu debuggenden PHP-Quelltexten setzen.&lt;br /&gt;
&lt;br /&gt;
Anschließend ist die zu debuggende Seite mit dem URL-Parameter &amp;lt;code&amp;gt;sqldebug=1&amp;lt;/code&amp;gt; aufzurufen.&lt;br /&gt;
&lt;br /&gt;
== Temporärdaten und Inhalte im Dateisystem ==&lt;br /&gt;
&lt;br /&gt;
Manche Dinge werden in Dateien statt in der Datenbank abgelegt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mediumlist&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Hochgeladene Bilder&#039;&#039;&#039; befinden sich üblicherweise in {{Codepath|htdocs/images/uploads}} (in den Settings änderbar), die Thumbnails darunter in {{Codepath2|htdocs/images/uploads|thumbs}}. Generierte Statistikbilder werden in {{Codepath|htdocs/images/statpics}} abgelegt.&lt;br /&gt;
* Herunterzuladende, gepackte &#039;&#039;&#039;Ausgaben der [[XML-Schnittstelle]]&#039;&#039;&#039; werden in {{Codepath|htdocs/download/zip}} zwischengespeichert (ebenfalls konfigurierbar).&lt;br /&gt;
* {{Codepath|htdocs/cache2}} enthält zwischengespeicherte [[#Templates|Templates]], [[#Übersetzung|Übersetzungsdateien]] für gettext und verschiedene Temporärdaten. Ein guter Teil dieser Daten wird von {{Codepath|bin/clear-webcache.php}} neu generiert.&lt;br /&gt;
* {{Codepath|htdocs/var}} enthält zwischengespeicherte OKAPI-Daten (die OKAPI legt allerdings auch eine Menge &amp;quot;gecachete&amp;quot; in der Datenbank ab) und Fehlerprotokolle.&lt;br /&gt;
* {{Codepath|htdocs/cache}} enthält vermutlich nur noch temporäre Prozess-Synchronisationsdateien (.pid-Dateien) der lib1-cronjobs für Log- und Cache-Benachrichtigungen.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:Template (Programmierung)|Templates]] dienen in Webanwendungen dazu, die Generierung von aus- und einzugebenden Daten von deren HTML-Darstellung zu trennen. HTML- und JavaScript-Code wird komplett in den Template-Dateien untergebracht, PHP-Code soweit wie irgend möglich in PHP-Scripten.&lt;br /&gt;
&lt;br /&gt;
Die Einbindung der Templates in den PHP-Programmablauf geschieht wie folgt:&lt;br /&gt;
# Festlegung, welche Templatedatei verwendet wird&lt;br /&gt;
# Zuweisung von variablen Inhalten an das Template&lt;br /&gt;
# Darstellung des Templates&lt;br /&gt;
Für alle drei Punkte gibt es entsprechende Bibliotheksfunktionen.&lt;br /&gt;
&lt;br /&gt;
=== lib1-Templates ===&lt;br /&gt;
&lt;br /&gt;
Die alte Library enthält ein selbstgemachtes, simples Templatesystem. Die Templatedateien befinden sich in {{Codepath|htdocs/lang/de/ocstyle}} und enthalten den auszugebenden HTML- und JavaScript-Code. Der Name der Template-Datei wird im PHP-Code über die globale Variable &amp;lt;code&amp;gt;$tplname&amp;lt;/code&amp;gt; festgelegt, z.B.&lt;br /&gt;
:&amp;lt;code&amp;gt;$tplname = &#039;newcache&#039;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für alle variablen Inhalte werden im Template Platzhalter wie z.B. &amp;lt;code&amp;gt;{cachename}&amp;lt;/code&amp;gt; verwendet; die PHP-Variable wird dann übergeben mit&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_set_var(&#039;cachename&#039;, $cachename);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sofern der variable Teil auch HTML-Code oder etwas zu Übersetzendes enthält, wird dies in speziellen Include-Dateien abgelegt, z.B.&lt;br /&gt;
&lt;br /&gt;
 $cachelink = &#039;&amp;lt;a href=&amp;quot;viewcache.php?cacheid={cacheid}&amp;quot;&amp;gt;{cachename}&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
 $outputformat_notexist = t(&#039;The selected output format is unknown!&#039;);&lt;br /&gt;
&lt;br /&gt;
Die Include-Datei wird im PHP-Hauptmodul eingebunden und die Variablen per &amp;lt;code&amp;gt;mb_ereg_replace&amp;lt;/code&amp;gt; ersetzt, bevor das Ganze per &amp;lt;code&amp;gt;tpl_set_var()&amp;lt;/code&amp;gt; ans Template übergeben wird.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_BuildTemplate();&amp;lt;/code&amp;gt;&lt;br /&gt;
stellt schließlich das Template dar und beendet das PHP-Script.&lt;br /&gt;
&lt;br /&gt;
Alle [[Opencaching]]-Seiten außer OC.de und OC.se/no verwenden noch das lib1-Templatesystem.&lt;br /&gt;
&lt;br /&gt;
=== lib2-Templates (Smarty) ===&lt;br /&gt;
&lt;br /&gt;
==== Grundlagen ====&lt;br /&gt;
&lt;br /&gt;
Die neue Bibliothek verwendet die leistungsfähige [[wikipedia:Smarty|Smarty]]-Engine. Smarty-Templates bestehen neben dem HTML/JavaScript-Code im Wesentlichen aus Kontrollstrukturen und Variableneinbindungen. Die Templates sind in {{Codepath|htdocs/templates2/ocstyle}} abgelegt.&lt;br /&gt;
&lt;br /&gt;
Die lib2 definiert die globale Variable&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl&amp;lt;/code&amp;gt;&lt;br /&gt;
über die alle Zugriffe auf Smarty und die Templates laufen. Am Beginn des PHP-Moduls wird jeweils das Template initialisiert:&lt;br /&gt;
&lt;br /&gt;
 $tpl-&amp;gt;name = &#039;newemail&#039;;   // Name der Template-Datei&lt;br /&gt;
 $tpl-&amp;gt;menuitem = MNU_MYPROFILE_DATA;  // Menü-ID, siehe doc/sql/static-data/data.sql&lt;br /&gt;
 $tpl-&amp;gt;caching = false;     // nicht zwischenspeichern&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;caching&#039;&#039;-Parameter legt fest, ob das Ergebnis der Templateausgabe zwischengespeichert wird; die Dauer der Zwischenspeicherung ist dann ggf. per&lt;br /&gt;
 $tpl-&amp;gt;caching_lifetime = 1800;  // halbe Stunde Caching&lt;br /&gt;
festzulegen. Dies empfiehlt sich bei häufig aufgerufenen, rechenintensiven Seiten. Seiten mit ständig wechselndem bzw. benutzerabhängigem Inhalt dürfen &#039;&#039;&#039;nicht&#039;&#039;&#039; &amp;quot;gecacht&amp;quot; werden!&lt;br /&gt;
&lt;br /&gt;
Neben Caching der Template-&#039;&#039;Ausgaben&#039;&#039; gibt es auch eine &#039;&#039;Vorcompilierung&#039;&#039; der Templates selbst. Diese erfolgt&lt;br /&gt;
* einmalig für alle Templates per &amp;lt;code&amp;gt;bin/clear-webcache.php&amp;lt;/code&amp;gt;,&lt;br /&gt;
* automatisch, wenn ein geändertes Template abgerufen wird,&lt;br /&gt;
* jedesmal bei jedem Template-Aufruf, falls in den Settings der Debug-Schalter &amp;lt;code&amp;gt;DEBUG_TEMPLATES&amp;lt;/code&amp;gt; gesetzt ist.&lt;br /&gt;
&lt;br /&gt;
Die zwischengespeicherten Templates werden in &amp;lt;code&amp;gt;htdocs/cache2/smarty&amp;lt;/code&amp;gt; abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf die Initialisierung des Templates folgen Variablen-Zuweisungen (s.u.) und schließlich die Darstellung mit&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;display();&amp;lt;/code&amp;gt;&lt;br /&gt;
die das PHP-Script beendet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Smarty-Syntax&lt;br /&gt;
&lt;br /&gt;
Im Folgenden sind ein paar grundlegende Smarty-Elemente erklärt; ansonsten sei auf die [http://www.smarty.net/docsv2/de/ Smarty-Dokumentation] verwiesen und auf die vielen Bespiele in {{Codepath2|htdocs|templates2/ocstyle}}. (Achtung: Der OC-Code verwendet eine ältere Smarty-Version; nicht alles was in der Doku steht ist hier auch schon verfügbar!)&lt;br /&gt;
&lt;br /&gt;
Alle Smarty-Elemente stehen in geschweiften Klammern {}. Wenn das Template solche Klammern für andere Zwecke verwendet, z.B. für JavaScript-Kontrollstrukturen, müssen diese von der Smarty-Interpretation ausgeklammert werden:&lt;br /&gt;
&lt;br /&gt;
  {literal}&lt;br /&gt;
  function js_function()&lt;br /&gt;
  {&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
  {/literal}&lt;br /&gt;
&lt;br /&gt;
==== Variablen ====&lt;br /&gt;
&lt;br /&gt;
Variablen werden z.B. per&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;assign(&#039;cachename&#039;, $cache[&#039;name&#039;]);&amp;lt;/code&amp;gt;&lt;br /&gt;
an das Template übergeben und dort als&lt;br /&gt;
:&amp;lt;code&amp;gt;{$cachename}&amp;lt;/code&amp;gt;&lt;br /&gt;
verwendet. Es können auch Arrays übergeben werden, deren Elemente statt [] mit einem Punkt referenziert werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;{$cache.name}&amp;lt;/code&amp;gt;&lt;br /&gt;
steht z.B. für &amp;lt;code&amp;gt;$caches[&#039;name&#039;]&amp;lt;/code&amp;gt;, übergeben per &amp;lt;code&amp;gt;$tpl-&amp;gt;assign(&#039;caches&#039;, ...)&amp;lt;/code&amp;gt;. Dies funktioniert auch mit numerischen Indizes – z.B. &amp;lt;code&amp;gt;{$user.0}&amp;lt;/code&amp;gt; für das erste Element eines $user-Arrays – und mit mehr als zwei Ebenen.&lt;br /&gt;
&lt;br /&gt;
Auch simple Berechnung sind möglich, z.B. &amp;lt;code&amp;gt;{$waylength*2}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu dem vom PHP-Code übergebenen Variablen kann man auch eigene definieren, z.B.&lt;br /&gt;
:&amp;lt;code&amp;gt;{assign var=counter value=1}&amp;lt;/code&amp;gt;&lt;br /&gt;
Mit &amp;lt;code&amp;gt;{capture}&amp;lt;/code&amp;gt; lassen sich u.U. auch komplexere Ausdrücke in einer Variable unterbringen.&lt;br /&gt;
&lt;br /&gt;
==== Kontrollstrukturen ====&lt;br /&gt;
&lt;br /&gt;
Bedingte Einbindung von Template-Komponenten ist mit &amp;lt;code&amp;gt;{if} … {elseif} … {else} … {/if}&amp;lt;/code&amp;gt;-Anweisungen möglich. Dabei können auch komplexere PHP-Ausdrucke verwendet werden, die als Boolean ausgewertet werden:&lt;br /&gt;
&lt;br /&gt;
  {if $show_statistics &amp;amp;&amp;amp; ($statdata|@count &amp;gt; 0)}&lt;br /&gt;
    ... Statistik ausgeben ...&lt;br /&gt;
  {/if}&lt;br /&gt;
&lt;br /&gt;
(@count ist eine [[#Benutzerdefinierte Erweiterungen; Übersetzungen|benutzerdefinierte Funktion]])&lt;br /&gt;
&lt;br /&gt;
Eine weiter häufig verwendete Struktur ist &amp;lt;code&amp;gt;{foreach}&amp;lt;/code&amp;gt; zum iterieren von Arrayelementen:&lt;br /&gt;
&lt;br /&gt;
  {foreach from=$caches item=cache}&lt;br /&gt;
    &amp;lt;td&amp;gt;{$cache.name|escape}&amp;lt;/td&amp;gt;&lt;br /&gt;
  {/foreach}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|escape&amp;lt;/code&amp;gt; ist ein &#039;&#039;Modifizierer&#039;&#039;, der den Variableninhalt weiterverarbeitet. In diesem Fall werden HTML-Entitäten &amp;quot;escaped&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;{strip}...{/strip}&amp;lt;/code&amp;gt; lassen sich alle Whitespaces (Leerzeichen, Tabs, Zeilenumbrüche) in einem Abschnitt herausfiltern, was die auszugebende Datenbank reduziert. Aber Vorsicht, falls Whitespaces als Trennzeichen in Ausgaben benötigt werden!&lt;br /&gt;
&lt;br /&gt;
==== Benutzerdefinierte Erweiterungen ====&lt;br /&gt;
&lt;br /&gt;
Smarty lässt sich um eigene&lt;br /&gt;
* Elemente (&amp;quot;Blocks&amp;quot;),&lt;br /&gt;
* Modifizierer und&lt;br /&gt;
* Funktionen&lt;br /&gt;
erweitern. Der Opencaching-Code enthält eine Reihe solcher eigener Erweiterungen in {{Codepath2|htdocs|lib2/smarty/ocplugins}}.&lt;br /&gt;
&lt;br /&gt;
Die wichtigste Erweiterung ist das &amp;lt;code&amp;gt;{t}&amp;lt;/code&amp;gt;-Element zum Übersetzen von Texten. Alle Texte in den Templates werden in Englisch geschrieben und in &amp;lt;code&amp;gt;{t} ... {/t}&amp;lt;/code&amp;gt; eingeschlossen; sie werden dadurch automatisch dem Übersetzungssystem zugeführt. Mehr dazu im Kapitel [[#Übersetzungen|Übersetzungen]].&lt;br /&gt;
&lt;br /&gt;
=== Systemtemplate und Menüsystem ===&lt;br /&gt;
&lt;br /&gt;
Was oben über einzelne Templates geschrieben wurde betrifft nur den Teil der Seite, der im &#039;&#039;Content-Container&#039;&#039; dargestellt wird – also dem Teil unterhalb und rechts des Menüsystems und oberhalb der Fußzeile. Alles &amp;quot;drumherum&amp;quot; wird vom &#039;&#039;Systemtemplate&#039;&#039; erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Codedateien sind daran in der lib1 beteiligt ...&lt;br /&gt;
* Systemtemplate: {{Codepath2|htdocs|lang/de/ocstyle/main.tpl.php}}&lt;br /&gt;
* Menüdefinitionen: {{Codepath2|htdocs|lang/de/ocstyle/lib/menu.php}}&lt;br /&gt;
* PHP-Framework: {{Codepath2|htdocs|lib/common.inc.php}} &amp;amp;rarr; tpl_BuildTemplate()&lt;br /&gt;
... und in der lib2:&lt;br /&gt;
* Systemtemplate: {{Codepath2|htdocs|templates2/ocstyle/sys_main.tpl}}&lt;br /&gt;
* Menüsystem: Tabelle &#039;sys_menu&#039; per {{Codepath2|htdocs|doc/sql/static-data/data.sql}}, {{Codepath2|htdocs|lib2/menu.class.php}}&lt;br /&gt;
* PHP-Framework: {{Codepath2|htdocs|lib2/OcSmarty.class.php}}&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Hauptmenü-Punkte sind via [[#Konfigurationsdateien|Konfigurationsdateien]] erzeugbar.&lt;br /&gt;
&lt;br /&gt;
=== Email-Templates ===&lt;br /&gt;
&lt;br /&gt;
Auch der Inhalt (&#039;&#039;body&#039;&#039;) von Emails wird über Templates erzeugt.&lt;br /&gt;
&lt;br /&gt;
lib1-Email-Templates befinden sich in {{Codepath|htdocs/lang/de/ocstyle/email}}, {{Codepath|htdocs/util/notification}} und {{Codepath|htdocs/util/watchlist}} und werden von den entsprechenden PHP-Modulen direkt per &amp;lt;code&amp;gt;mb_ereg_replace()&amp;lt;/code&amp;gt; aufgelöst.&lt;br /&gt;
&lt;br /&gt;
lib2-Email-Templates liegen in {{Codepath|htdocs/templates2/mail}} und werden von &amp;lt;code&amp;gt;mail.class.php&amp;lt;/code&amp;gt; per Smarty verarbeitet.&lt;br /&gt;
&lt;br /&gt;
=== OKAPI ===&lt;br /&gt;
Die OKAPI hat ein eigenes Templatesystem; mehr dazu im Abschnitt [[#OKAPI|OKAPI]].&lt;br /&gt;
&lt;br /&gt;
== CSS Style Sheets ==&lt;br /&gt;
Die Style Sheets befinden sich in {{Codepath|htdocs/resource2/ocstyle/css}}.&lt;br /&gt;
&lt;br /&gt;
== Grafiken ==&lt;br /&gt;
&lt;br /&gt;
Grafiken für Icons und andere Dinge verteilen sich – soweit es keine Drittbibliotheken betrifft – über drei Verzeichnisse:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/images}} (lib1 und lib2)&lt;br /&gt;
* {{Codepath|htdocs/lang/de/ocstyle/images}} (lib1)&lt;br /&gt;
* {{Codepath|htdocs/resource2/ocstyle/images}} (lib2)&lt;br /&gt;
&lt;br /&gt;
Hier herrscht etwas Chaos. Manches ist mehrfach vorhanden - auch innerhalb &#039;&#039;einer&#039;&#039; Library - oder inkonsistent abgelegt, die Dateitypen wechseln zwischen GIF und PNG. Glattziehen lässt sich das kaum, weil Grafiken auch gerne von anderer Stelle aus verlinkt werden, z.B. aus Cachelistings - teils sogar von anderen Plattformen aus. Schiebt man die Grafiken einfach weg oder ändert das Format, zerstört es unbemerkt Cachebeschreibungen.&lt;br /&gt;
&lt;br /&gt;
Zur Kompatibilität mit alten Cachebeschreibungen und Logs liegen in folgenden Verzeichnissen Grafiken, die anderweitig nicht mehr verwendet werden:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/lang/de/stdstyle/images}}&lt;br /&gt;
* {{Codepath|htdocs/lib/tinymce/plugins/emotions/images}}&lt;br /&gt;
* {{Codepath|htdocs/resource2/stdstyle/images}}&lt;br /&gt;
&lt;br /&gt;
== Übersetzung ==&lt;br /&gt;
&lt;br /&gt;
Der OC-Code ist mehrsprachig und frei übersetzbar, mit Ausnahme&lt;br /&gt;
* der Benachrichtigungs-Emails, die es bislang nur in Deutsch gibt (-&amp;gt; http://redmine.opencaching.de/issues/141)&lt;br /&gt;
* des Garmin-Download-Dialogs ({{Codepath2|htdocs|garmin.php}}), dessen untere Hälfte es nur in Deutsch und Englisch gibt (siehe {{Codepath|htdocs/resource2/ocstyle/js/GarminDisplay.js}})&lt;br /&gt;
(weitere noch nicht lokalisierbare Module bitte ergänzen!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Lokalisierung je nach gewählter Sprache erfolgt grundsätzlich mit folgenden Mechanismen:&lt;br /&gt;
* In Templates über die Smarty-Tags &amp;lt;code&amp;gt;{t}English Text{/t}&amp;lt;/code&amp;gt;. Hierbei können auch Variablen eingesetzt werden, z.B.&lt;br /&gt;
*:&amp;lt;code&amp;gt;{t 1=$cachename 2=$username}The geocache %1 has been found by %2{/t}&amp;lt;/code&amp;gt;&lt;br /&gt;
* Notfalls direkt im PHP-Code durch Aufruf von &amp;lt;code&amp;gt;$translate-&amp;gt;t()&amp;lt;/code&amp;gt;, z.B.&lt;br /&gt;
*:&amp;lt;code&amp;gt;$text = $translate-&amp;gt;t(&#039;New password code&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, basename(__FILE__), __LINE__)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Bei Artikelseiten, die via {{Codepath|htdocs/articles.php}} dargestellt werden, per Ablage der Templates in Unterverzeichnissen von {{Codepath|htdocs/templates2/ocstyle/articles}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Übersetzungssystem arbeitet intern mit &amp;lt;code&amp;gt;gettext()&amp;lt;/code&amp;gt;. Die Strings dafür befinden sich in der Tabellen &#039;&#039;sys_trans&#039;&#039; und &#039;&#039;sys_trans_text&#039;&#039;. Man kann sie direkt via {{Codepath2|htdocs/doc/sql/static-data|data.sql}} einpflegen, oder mit dem &amp;quot;Schnellübersetzungsmodus&amp;quot; + &amp;quot;SQL-Export&amp;quot; von {{Codepath2|htdocs|translate.php}} (Menü Admin|Übersetzung). Letzteres kann allerdings jede Menge Git-Merge-Konflikte beim Zusammenführen verschiedener Branches erzeugen, daher werden OC.de-Übersetzungen derzeit nur direkt in {{Codepath2|htdocs/doc/sql/static-data|data.sql}} eingepflegt.&lt;br /&gt;
&lt;br /&gt;
Achtung: &#039;&#039;&#039;Auch für die englische Seitendarstellung läuft nochmal alles durch den Übersetzer&#039;&#039;&#039;, Artikel ausgenommen. Die englischen Originaltexte in den Templates oder im PHP-Code sind also nur eine Basis für die weitere Übersetzung. Kleinere Fehler dort müssen nicht korrigiert werden, solange die Texte verständlich sind. &#039;&#039;Wenn&#039;&#039; dort etwas korrigiert wird, muss es gleichzeitig auch in der Tabelle &#039;&#039;sys_trans&#039;&#039; in {{Codepath2|htdocs/doc/sql/static-data|data.sql}} geändert werden!&lt;br /&gt;
&lt;br /&gt;
Opencaching.de gibt es zurzeit in Deutsch, Englisch, Italienisch und Spanisch. Die Übersetzungen werden durch den von Opencaching Deutschland eingesetzten Code Maintainer organisiert.&lt;br /&gt;
&lt;br /&gt;
== Fehlerbehandlung ==&lt;br /&gt;
&lt;br /&gt;
Der OC-Code verwendet kein Exception Handling (mit Ausnahme der OKAPI). Wenn etwas fehlschlägt, wird dies durch den Rückgabewert der betreffenden Funktion signalisiert und entsprechend reagiert. Würde man den betroffenen Funktionen noch einen Namenszusatz spendieren, der die mögliche Fehlerrückgabe kennzeichnet, wäre dieses System transparenter und in sich weniger fehleranfällig als ein strukturiertes Exception Handling.&lt;br /&gt;
&lt;br /&gt;
==== fehlerhafte Benutzereingaben ====&lt;br /&gt;
Wenn es Probleme mit einer Benutzereingabe gibt, wird das betreffende Template nochmals angezeigt und an passender Stelle eine mit dem CSS-Stil &amp;lt;code&amp;gt;errormsg&amp;lt;/code&amp;gt; formatierte Meldung eingeblendet. Dies ist jeweils entsprechend zu implementieren.&lt;br /&gt;
&lt;br /&gt;
==== erkanntes Problem ====&lt;br /&gt;
Wenn anderweitig ein nicht handhhabbares Problem erkannt wird, wird das Fehlertemplate angezeigt. In &#039;&#039;&#039;lib1&#039;&#039;&#039; befindet sich dies in {{Codepath2|htdocs|lang/de/ocstyle/error.tpl.php}} und wird aufgerufen per&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_errorMsg(&#039;original_templatename&#039;, $fehlermeldung);&amp;lt;/code&amp;gt;&lt;br /&gt;
z.B.&lt;br /&gt;
 $error_desc_not_found = t(&#039;(internal error) The description is not available.&#039;);&lt;br /&gt;
 ...&lt;br /&gt;
 tpl_errorMsg(&#039;editdesc&#039;, $error_desc_not_found);&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;&#039;lib2&#039;&#039;&#039;-Fehlertemplate befindet sich in bzw. {{Codepath2|htdocs|templates2/ocstyle/error.tpl}} und wird verwendet mit&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;error(Fehlernummer)&amp;lt;/code&amp;gt;&lt;br /&gt;
oder&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;error($fehlermeldung);&amp;lt;/code&amp;gt;&lt;br /&gt;
Die Fehlernummern sind in {{Codepath2|htdocs|lib2/error.inc.php}} definiert.&lt;br /&gt;
&lt;br /&gt;
; SQL-Fehler&lt;br /&gt;
&lt;br /&gt;
Bei MySQL-Fehlern wird ein Fehlertemplate anzeigt und eine Admin-Email versandt, sofern in den [[#Konfigurationsdateien|Settings]] eine Mailadresse hinterlegt ist. In der lib1 ist sie in&lt;br /&gt;
:&amp;lt;code&amp;gt;$sql_errormail&amp;lt;/code&amp;gt;&lt;br /&gt;
einzutragen, in der lib2 in&lt;br /&gt;
:&amp;lt;code&amp;gt;$opt[&#039;db&#039;][&#039;error&#039;][&#039;mail&#039;]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Entwicklersysteme werden so konfiguriert, dass das komplette SQL-Statement auch direkt angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann man per &amp;lt;code&amp;gt;$sql_warntime&amp;lt;/code&amp;gt; (lib1) bzw. &amp;lt;code&amp;gt;$opt[&#039;db&#039;][&#039;warn&#039;][&#039;time&#039;]&amp;lt;/code&amp;gt; (lib2) eine Warnschwelle für zu lange SQL-Ausführungszeiten festlegen. Bei Überschreitung werden dann Admin-Mails erzeugt.&lt;br /&gt;
&lt;br /&gt;
==== unerkanntes Problem ====&lt;br /&gt;
&lt;br /&gt;
{{Codepath2|htdocs|lib2/errorhandler.inc.php}} enthält ein noch in der Testphase befindlichen Handler für PHP-Fehler, der auch in lib1 eingebunden ist. Er wird bei PHP-Fehlern aktiv, die (abhängig von der &#039;&#039;error_reporting&#039;&#039;-Einstellung in der PHP-Konfiguration) zu einem Abbruch des Scripts führen. Es wird dann eine Fehlermeldung anzeigt und ggf. eine Admin-Mail erzeugt. Es wird die gleiche Emailkonfiguration wie für bei SQL-Problemen (s.o.) verwendet.&lt;br /&gt;
&lt;br /&gt;
Dieser PHP-Errorhandler ist derzeit nur aktiviert, wenn in der Konfiguration der Debug-Modus eingeschaltet ist. Ansonsten erscheint bei Fehlern eine leere Seite.&lt;br /&gt;
&lt;br /&gt;
== OKAPI ==&lt;br /&gt;
&lt;br /&gt;
Die Opencaching-API ist ein eigenständiges PHP-Projekt, dessen Code auf verschiedenen OC-Seiten zum Einsatz kommt. Die Projekt-Homepage ist http://code.google.com/p/opencaching-api/. Beiträge, die nicht vom Code-Maintainer selbst kommen, werden üblicherweise in Branches hochgeladen und laufen dann durch ein Code Review.&lt;br /&gt;
&lt;br /&gt;
Die OKAPI wird – erfolgreich! – mit einem wesentlich höheren Anspruch an Codequalität und -Stil entwickelt als die OC-Länderseiten. Dokumentation und Codestruktur sind herausragend. Gleichzeitig steht sie bei einigen Details wie Template-Engine, Datenbank-Library und Konstanten-Definitionen hinter dem OC.de-Code zurück. Der OKAPI-Code ist nur für Webanwendungen geschrieben; Einbindung in Kommandozeilentools kann insbesondere am Exception-Handling scheitern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der OKAPI-Code wird aus dem OKAPI-Projekt in die lokalen OC-Code-Repositories (nach {{Codepath|htdocs/okapi}}) repliziert. Bei Opencaching.pl und .nl geschieht dies automatisch über einen SVN-&amp;quot;Commit-Hook&amp;quot;, bei Opencaching.de manuell durch den Code-Maintainer nach einem Security Review.&lt;br /&gt;
&lt;br /&gt;
OKAPI-Code kann über die &amp;quot;Facade&amp;quot;-Schnittstelle in OC-Code eingebunden werden ({{Codepath2|htdocs|okapi/facade.php}}). OC.pl macht davon insbesondere bei der Karte Gebrauch, die von der OKAPI generiert wird. OC.de verwendet die Facade bislang nur (experimentell) im Update-Script {{Codepath|bin/okapi-update.php}}, das von {{Codepath2|bin|dbupdate.php}} aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
Sämtliche OKAPI-Seitenzugriffe laufen über eine Rewrite-Engine ({{Codepath2|htdocs|okapi/.htaccess}} → {{Codepath2|htdocs|okapi/controller.php}}). Man kann daher die PHP-Scripte nicht direkt über ihre URLs idenitifizieren sondern muss schonmal etwas suchen. Methoden befinden sich in {{Codepath2|htdocs|okapi/services}}, Seiten mit HTML-Output in {{Codepath2|htdocs|okapi/views}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Dokumentation verwendet die OKAPI ein eigenes XML-Format, das von einem Parser aufbereitet wird.&lt;br /&gt;
&lt;br /&gt;
Templates für Methoden, die HTML- oder sonstiges XML-Output liefern, sind in .tpl.php-Dateien zusammen mit den PHP-Quelltexten abgelegt. Variablen werden per PHP-Code eingebunden, meist per &amp;quot;short open tags&amp;quot;, z.B.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? if (($vars[&#039;my_notes&#039;] == &#039;desc:text&#039;) &amp;amp;&amp;amp; ($c[&#039;my_notes&#039;] != null)) { /* Does user want us to include personal notes? */ ?&amp;gt;&lt;br /&gt;
   &amp;amp;lt;p&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;&amp;lt;?= _(&amp;quot;Personal notes&amp;quot;) ?&amp;gt;:&amp;amp;lt;/b&amp;amp;gt; &amp;lt;?= Okapi::xmlescape($c[&#039;my_notes&#039;]) ?&amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
 &amp;lt;? } ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Entwicklung|Codedoku]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Entwicklung/Codedoku&amp;diff=5658</id>
		<title>Entwicklung/Codedoku</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Entwicklung/Codedoku&amp;diff=5658"/>
		<updated>2014-05-18T07:50:38Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Grundlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Materialsammlung zum [http://github.com/OpencachingDeutschland/oc-server3 Opencaching-Programmcode]. Sie soll neuen [[Entwicklung|Entwicklern]] einen Überblick über die Grundstruktur und wichtigsten Bestandteile des OC-Codes geben. Mit &amp;quot;OC-Code&amp;quot; ist alles gemeint, was sich im [[Entwicklung/Git|Git-Repository]] befindet.&lt;br /&gt;
&lt;br /&gt;
Weitere Dokumentationen gibt es auch in den Codeverzeichnissen {{Codepath|doc}} und {{Codepath|htdocs/doc}}. Die Datei {{Codepath|doc/directories.txt}} enthält eine Übersicht der Repository-Verzeichnisstruktur. &#039;&#039;(Grüne Pfad- und Dateinamen sind anklickbar.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Alle die bereits an Opencaching mitprogrammiert haben, sind eingeladen, ihr Wissen beizusteuern! Wenn du dir zusätzliche Erläuterungen wünschst, kannst du sie auf der Diskussionsseite anfragen – vielleicht findet sich jemand, der den Artikel ergänzt.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[Entwicklung/Stil|Style Guidelines]]&lt;br /&gt;
&lt;br /&gt;
== Dateiformat ==&lt;br /&gt;
&lt;br /&gt;
Alle OC-Quelltextdateien haben [[wikipedia:UTF-8|UTF-8]]-Format. Im Kopf der Quelltextdateien befindet sich ein japanisches Wort (&amp;quot;Unicode Reminder&amp;quot;), mit dem geprüft werden kann ob die Zeichencodierung intakt ist. Sollte versehentlich nach ISO-8859-1 o.ä. umcodiert worden sein, erscheinen dort z.B. zwei Fragezeichen oder gar nichts.&lt;br /&gt;
&lt;br /&gt;
{{Codepath|local/tools/find_bad_encodings.php}} prüft alle Quelltexte auf fehlende oder beschädigte Unicode Reminder.&lt;br /&gt;
&lt;br /&gt;
Die Zeilenenden der Quelltexte bestehen grundsätzlich aus einem einfachen LF (line feed). Ausnahmen gibt es z.B. bei [[#Email-Templates|Email-Templates]]; hier ist CR/LF vorgeschrieben.&lt;br /&gt;
&lt;br /&gt;
== Hauptmodule ==&lt;br /&gt;
&lt;br /&gt;
Mit &amp;quot;lib1&amp;quot; und &amp;quot;lib2&amp;quot; sind im Folgenden die OC-eigenen Codebibliotheken in {{Codepath|htdocs/lib}} und {{Codepath|htdocs/lib2}} gemeint. Alle Teile des OC-Codes bauen auf einer dieser beiden Bibliotheken auf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;widelist&amp;quot;&amp;gt;&lt;br /&gt;
Der OC-Software besteht aus ...&lt;br /&gt;
* Den &#039;&#039;&#039;darstellbaren Seiten&#039;&#039;&#039; der OC-Website, z.B. Startseite (&#039;&#039;index&#039;&#039;) oder Cachelisting-Anzeige (&#039;&#039;viewcache&#039;&#039;). Diese bestehen jeweils aus einem PHP-Script im Verzeichnis {{Codepath|htdocs}} und einem [[#Templates|Template]] in {{Codepath|htdocs/templates2/ocstyle}} (lib1: {{Codepath|htdocs/lang/de/ocstyle}}). Das PHP-Script erzeugt die darzustellenden Inhalte, das Template stellt sie als HTML-Seite dar.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kommandozeilentools&#039;&#039;&#039; für verschiedene Zwecke, z.B. Wartungstools die per Crojob oder von Hand aufgerufen werden. Sie befinden sich in an verschiedenen Stellen:&lt;br /&gt;
** {{Codepath|bin}} (Update-Scripte)&lt;br /&gt;
** {{Codepath|htdocs/util}} (lib1, Tools für Produktivbetrieb)&lt;br /&gt;
** {{Codepath|htdocs/util2}} (lib2, Tools für Produktivbetrieb)&lt;br /&gt;
** {{Codepath|local}} (spezielle Tools für lokale Verwendung)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;APIs&#039;&#039;&#039;, also Schnittstellen für Datenabruf oder -upload durch Dritte:&lt;br /&gt;
** diverse APIs in {{Codepath|htdocs/api}}&lt;br /&gt;
** die [[OKAPI]] in {{Codepath|htdocs/okapi}}, repliziert aus dem [http://code.google.com/p/opencaching-api/source/browse/trunk/#trunk%2Fokapi OKAPI-Repository]&lt;br /&gt;
** die [[XML-Schnittstelle]] in {{Codepath|htdocs/xml}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Apache-Rewrites&#039;&#039;&#039;. Dies sind Konfigurationsdateien mit dem Name &#039;&#039;.htaccess&#039;&#039;, die vom Apache-Webserver ausgelesen werden. Sie interpretieren die übergebene URL und leiten auf ein PHP-Script um. Apache-Rewrites kommen an zwei Stellen zum Einsatz:&lt;br /&gt;
** Statistikbilder: {{Codepath|htdocs/statpics/htaccess-dist|htdocs/statpics/.htaccess}}&lt;br /&gt;
** OC-Kurz-URLs, z.B. http://opencaching.de/OC1234: diese sind direkt im Produktiv-Webserver konfiguriert.&lt;br /&gt;
&lt;br /&gt;
== Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Die einzelnen OC-Module verwenden verschiedene Code-Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
=== Eigene Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
==== lib1 ====&lt;br /&gt;
Die alte selbstgeschriebene Bibliothek von OC-Codeversion 1.0, in {{Codepath|htdocs/lib}}. Sie enthält z.B. Funktionen für Datenbankzugriff, Login, Menüs, geographische Berechnungen und ein einfaches Template-System.&lt;br /&gt;
&lt;br /&gt;
lib1 ist veraltet und wird auf OC.de nur noch für das Bearbeiten von Logs und Cachebeschschreibungen, für Benachrichtigungen über beobachtete und neue Caches und für die XML-Schnittstelle verwendet. Mittelfristig soll sie ganz durch lib2 ersetzt werden. (Alle auf OC.pl-Code basierenden [[Opencaching]]-Seiten verwenden weiterhin ausschließlich die lib1).&lt;br /&gt;
&lt;br /&gt;
lib1 wird eingebunden mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib/common.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lib2 ====&lt;br /&gt;
Die Bibliothek der OC.de-Codversion 2.0 und höher in {{Codepath|htdocs/lib2}}, Nachfolger von lib1. Sie ist wesentlich umfangreicher. Der Code ist aufgeteilt in das &amp;quot;Framework&amp;quot; mit allgemeinen Dingen wie Datenbankzugriff, Authentifizierung, Lokalisierung, Templates etc. und die sogenannte &amp;quot;Business Logic&amp;quot; in {{Codepath|htdocs/lib2/logic}} mit allen Geocaching-spezifischen Klassen und Funktionen.&lt;br /&gt;
&lt;br /&gt;
lib2 wird in Bestandteile der Website eingebunden mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib2/web.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
und in Kommandozeilentools mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib2/cli.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;gemeinsamer lib1- und lib2-Code&lt;br /&gt;
Manche Bibliotheksmodule werden versionsübergreifend verwendet, z.B. für Übersetzungen und Sprachauswahl. Sie sind in {{Codepath|htdocs/lib2}} abgelegt.&lt;br /&gt;
&lt;br /&gt;
==== libse ====&lt;br /&gt;
Eine Klassenbibliothek von Opencaching.se, in {{Codepath|htdocs/libse}}. Im Zuge der Codezusammenführung von OC.de und OC.se wurde sie 2011 mit in den OC.de-Code übernommen. Sie wird für zusätzliche Wegpunkte und persönliche Notizen im Cachelisting verwendet.&lt;br /&gt;
&lt;br /&gt;
==== Autoload ====&lt;br /&gt;
Für die Klassen aller drei Bibliotheken sind Autoloader installiert. Das heißt wenn man z.B. ein Cache-Objekt benötigt, muss man dafür nicht {{Codepath2|htdocs|lib2/logic/cache.class.php}} einbinden sondern man erzeugt einfach direkt das Objekt:&lt;br /&gt;
:&amp;lt;code&amp;gt;$cache = new cache();&amp;lt;/code&amp;gt;&lt;br /&gt;
{{Codepath2|htdocs/lib2/logic|cache.class.php}} wird dann automatisch geladen.&lt;br /&gt;
&lt;br /&gt;
=== Fremdbibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Die OC-Software macht ausgiebig Gebrauch von fertigen PHP- und JavaScript-Codebibliotheken. Eine vollständige Aufstellung incl. Codepfade, Bezugsquellen etc. enthält {{Codepath|doc/license.txt}}. Hier seien nur die wichtigsten davon erwähnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;widelist&amp;quot;&amp;gt;&lt;br /&gt;
* [http://www.smarty.net/ &#039;&#039;&#039;Smarty&#039;&#039;&#039;] wird als &amp;quot;Template-Engine&amp;quot; für lib2 verwendet. OC-spezifische Erweiterungen befinden sich in der Klasse &#039;&#039;OcSmarty&#039;&#039; und in {{Codepath2|htdocs|lib2/smarty/ocplugins}}. Mehr dazu im Abschnitt [[#Templates|Templates]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[http://htmlpurifier.org/ HTML Purifier]&#039;&#039;&#039; dient zum &amp;quot;Säubern&amp;quot; von HTML-Code, den der Benutzer z.B. in Cachebeschreibungen eingeben kann. lib1 und lib2 verwenden getrennte HTML-Purifier-Installationen. In lib2 wird er über die Klasse &#039;&#039;OcHTMLPurifier&#039;&#039; eingebunden und kann dort auch angepasst werden. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[http://www.tinymce.com/ TinyMCE]&#039;&#039;&#039; ist ein leistungsfähiger JavaScript-Wysiwyg-Texteditor. Er dient zum Bearbeiten von Cachebeschreibungen, Logs und Profiltexten. lib1 und lib2 verwenden beide die TinyMCE-Installation in {{Codepath|htdocs/resource2/tinymce}}. OC-spezifische Konfigurationsdaten gibt es in {{Codepath2|htdocs/resource2|tinymce/config}}. &lt;br /&gt;
&lt;br /&gt;
Von lib2-Code verwendete Bibliotheken sind in {{Codepath|htdocs/lib2}} (PHP) und {{Codepath|htdocs/resource2}} (JavaScript) angelegt. Bibliotheken für lib1 befinden sich an verschiedenen Stellen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdateien ==&lt;br /&gt;
&lt;br /&gt;
==== lib1-Konfiguration ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellungen für lib1-Code befinden sich überwiegend in&lt;br /&gt;
:&#039;&#039;htdocs/lib/settings.inc.php&#039;&#039;&lt;br /&gt;
Diese Datei ist nur lokal vorhanden. Als Vorlage für das Aufsetzen einer neuen Produktiv-Installation gibt es die Datei {{Codepath2|htdocs/lib|settings-dist.inc.php}}, die nach &#039;&#039;settings.inc.php&#039;&#039; zu kopieren und anzupassen ist.&lt;br /&gt;
&lt;br /&gt;
Für [[Entwicklung/Entwicklersystem|Entwicklersysteme]] gibt es entsprechend die Vorlage {{Codepath2|htdocs/lib|settings-sample-dev.inc.php}}. Sie verwendet die Datei {{Codepath2|htdocs/lib|settings-dev.inc.php}}, in der die Grundeinstellungen für Entwicklersysteme zusammengefasst sind.&lt;br /&gt;
&lt;br /&gt;
Daneben gibt es noch zwei Konfigurationsdateien &#039;&#039;settings.inc.php&#039;&#039; für die Benachrichtigungs-Cronjobs, in {{Codepath|htdocs/util/notification}} und {{Codepath|htdocs/util/watchlist}}.&lt;br /&gt;
&lt;br /&gt;
Weiterhin verwendet lib1 auch Teile der lib2-Konfiguration, insbesondere {{Codepath2|htdocs/config2|locale.inc.php}}.&lt;br /&gt;
&lt;br /&gt;
==== lib2-Konfiguration ====&lt;br /&gt;
&lt;br /&gt;
Die lib2-Einstellungen befinden sich alle in {{Codepath|htdocs/config2}}. Sie werden &#039;&#039;alle&#039;&#039; in folgender Reihenfolge eingebunden, sobald man {{Codepath2|htdocs/lib2|web.inc.php}} oder {{Codepath2|htdocs/lib2|cli.inc.php}} einbindet:&lt;br /&gt;
&lt;br /&gt;
* sprachabhängige Einstellungen: {{Codepath2|htdocs/config2|locale.inc.php}}&lt;br /&gt;
* sonstige Default-Einstellungen: {{Codepath2|htdocs/config2|settings-dist.inc.php}}&lt;br /&gt;
* lokale Einstellungen: &#039;&#039;settings.inc.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auch hier sind Vorlagen für Produktiv- ({{Codepath2|htdocs/config2|settings-sample.inc.php}}) und Entwicklersystem ({{Codepath2|htdocs/config2|settings-sample-dev.inc.php}}) vorhanden, die nach &#039;&#039;settings.inc.php&#039;&#039; zu kopieren und and die lokale Systeminstallation anzupassen sind.&lt;br /&gt;
&lt;br /&gt;
==== Der Rootpath ====&lt;br /&gt;
&lt;br /&gt;
Wenn man in PHP-Scripte mit &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt; weitere Dateien einbindet, geschieht dies relativ zum Verzeichnispfad des Hauptscripts. (Daneben kann man auch weitere Pfade festlegen, in denen PHP nach passenden Scripten sucht.)&lt;br /&gt;
&lt;br /&gt;
Wie unter [[#Hauptmodule|Hauptmodule]] erläutert, befinden sich die Module der OC-Software auf verschiedenen Verzeichnisebenen Die Startseite liegt z.B. in {{Codepath|htdocs}}, das lib2-Cronjob-Modul dagegen in {{Codepath|htdocs/util2/cron}}. Alle diese Module binden lib1- oder lib2-Bibliothekscode ein, der weitere Unterscripte einbindet. Damit das alles funktioniert, wird im OC-Code ein &#039;&#039;Basispfad&#039;&#039; für alle Includes festgelegt. Dieser heißt&lt;br /&gt;
:&amp;lt;code&amp;gt;$opt[&#039;rootpath&#039;]&amp;lt;/code&amp;gt;&lt;br /&gt;
in lib2 und&lt;br /&gt;
:&amp;lt;code&amp;gt;$rootpath&amp;lt;/code&amp;gt;&lt;br /&gt;
in lib1.&lt;br /&gt;
&lt;br /&gt;
Sofern man keine weiteren Vorkehrungen trifft, wird dieser Rootpath automatisch als Relativpfad &amp;quot;./&amp;quot; gesetzt. Scripte in Unterverzeichnissen müssen ihn dagegen selbst setzen, z.B. &amp;quot;../&amp;quot; wenn das Script eine Ebene tiefer liegt, oder absolut als &amp;lt;code&amp;gt;dirname(__FILE__).&#039;../&#039;&amp;lt;/code&amp;gt;, wenn nicht bekannt ist, aus welchem aktuellen Verzeichnis ein Kommandozeilentool aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
== Konstanten ==&lt;br /&gt;
&lt;br /&gt;
Globale Konstanten sind an folgenden Stellen definiert:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/lib/consts.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/const.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/error.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/logic/const.inc.php}}&lt;br /&gt;
&lt;br /&gt;
Die lib2-Konstanten werden auch teilweise auch in lib1-Code verwendet.&lt;br /&gt;
&lt;br /&gt;
== Datenbank ==&lt;br /&gt;
&lt;br /&gt;
Die OC-Software ist nur für die Verwendung von MySQL ausgelegt. Zwar werden in lib2 keine MySQL-Funktionen mehr direkt aufgerufen, aber zahlreiche SQL-Statements verlassen sich auf MySQL-Syntax.&lt;br /&gt;
&lt;br /&gt;
=== Grundlegende Datenbankfunktionen ===&lt;br /&gt;
&lt;br /&gt;
Für lib2 befinden sich alle Funktionen in {{Codepath2|htdocs|lib2/db.inc.php}} und sind dort kurz dokumentiert, für lib1 in {{Codepath2|htdocs|lib/clicompatbase.inc.php}}. Datenbankverbindungen werden automatisch entsprechend den Konfigurationseinstellungen hergestellt, sobald man eine Query absetzt.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten Funktionen seien hier anhand von Beispielen erläutert:&lt;br /&gt;
&lt;br /&gt;
 sql(&amp;quot;UPDATE `caches` SET `size`=&#039;&amp;amp;1&#039; WHERE `cache_id`=&#039;&amp;amp;2&#039;&amp;quot;,&lt;br /&gt;
     $newsize, $cacheid);&lt;br /&gt;
&lt;br /&gt;
Hier wird die Größe eines Caches geändert. Variablen werden als fortlaufend numerierte Platzhalter &amp;amp;1, &amp;amp;2 etc. übergeben. Die Funktion &#039;&#039;sql&#039;&#039; ruft dann intern für jede Variable &amp;lt;code&amp;gt;mysql_real_escape_string()&amp;lt;/code&amp;gt; auf, was spezielle Zeichen wie &amp;quot; codiert und gleichzeitig [[wikipedia:SQL-Injection|SQL-Injections]] verhindert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Niemals dürfen Variablen direkt in SQL-Statements eingebaut werden!&#039;&#039;&#039; Wann immer möglich sind Platzhalter zu verwenden. Notfalls kann auch direkt mit &amp;lt;code&amp;gt;sql_escape()&amp;lt;/code&amp;gt; codiert werden, was allerdings Probleme verursacht, wenn ein &amp;quot;&amp;amp;&amp;quot; in den Daten enthalten ist: Die Funktion &amp;lt;code&amp;gt;sql()&amp;lt;/code&amp;gt; interpretiert es anschließend als Startzeichen eines Platzhalters.&lt;br /&gt;
&lt;br /&gt;
 $cachesize = sql_value(&amp;quot;&lt;br /&gt;
    SELECT `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    null, $cacheid);&lt;br /&gt;
&lt;br /&gt;
Hier wird die Größe eines Caches abgefragt. Falls die Cache-ID nicht gefunden wird, wird der Defaultwert &#039;&#039;null&#039;&#039; zurückgeliefert. Denke immer daran, den Defaultwert als ersten Parameter anzugeben! Ihn zu vergessen ist eine häufige Fehlerquelle.&lt;br /&gt;
&lt;br /&gt;
In der lib1 heißt die Funktion anders und kann nicht mit Platzhaltern umgehen; der entsprechende Code lautet dann:&lt;br /&gt;
&lt;br /&gt;
 $cachesize = sqlValue(&amp;quot;&lt;br /&gt;
    SELECT `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;quot; . sql_escape($cacheid) . &amp;quot;&#039;&amp;quot;,&lt;br /&gt;
    null);&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel demonstriert, wie der Inhalt einer Tabelle ausgelesen wird:&lt;br /&gt;
&lt;br /&gt;
  $rs = sql(&amp;quot;&lt;br /&gt;
    SELECT `cache_id`, `name`, `type` `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    $cacheid);&lt;br /&gt;
  while ($r = sql_fetch_assoc($rs))&lt;br /&gt;
  {&lt;br /&gt;
    // ... Weiterverarbeitung von $r[&#039;cache_id&#039;], $r[&#039;name&#039;] etc.&lt;br /&gt;
  }&lt;br /&gt;
  sql_free_result($rs);&lt;br /&gt;
&lt;br /&gt;
=== Slave-Server ===&lt;br /&gt;
&lt;br /&gt;
Beide OC-Libraries sehen eine Lastverteilung auf einen Haupt-Datebankserver (Master) und einen oder mehrere &amp;quot;Slaves&amp;quot; vor, die replizierte Daten des Masters enthalten; siehe {{Codepath|doc/replication.txt}}. Dazu gibt es SQL-Funktionen mit dem Zusatz &amp;quot;_slave&amp;quot;, z.B. &amp;lt;code&amp;gt;sql_slave()&amp;lt;/code&amp;gt;, die von &amp;quot;datenbankintensiven&amp;quot; Programmmodulen wie z.B. der Suche ({{Codepath2|htdocs|search.php}}) anstatt der Basisfunktionen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Wenn per &#039;&#039;settings.inc.php&#039;&#039; keine Slave-Server konfiguriert sind, laufen alle Zugriffe über den Master. Zurzeit betreibt kein Opencaching-Knoten Slave-Server; die Kapazität des Masters reicht überall aus.&lt;br /&gt;
&lt;br /&gt;
=== Temporärtabellen ===&lt;br /&gt;
&lt;br /&gt;
Da Subqueries bei MySQL recht ineffizient sind, sind manchmal temporäre Tabellen für Zwischenergebnisse nötig.&lt;br /&gt;
&lt;br /&gt;
lib2 sieht einen speziellen Mechanismus zur Verwaltung von Temporärtabellen vor. Sie werden in einer eigenen Datenbank abgelegt, für die erweiterte Zugriffsrechte (Tabellen anlegen/löschen) vergeben werden, und werden per Cronjob automatisch aufgeräumt, wenn sie nicht gleich wieder gelöscht wurden.&lt;br /&gt;
&lt;br /&gt;
Ein (nicht unbedingt sinnvolles) Beispiel für die Verwendung von lib2-Temporärtabellen. Die temporäre Tabelle heißt &amp;quot;tmp_caches&amp;quot; und wird in SQL-Statements über einen Platzhalter referenziert:&lt;br /&gt;
&lt;br /&gt;
  sql_temp_table(&#039;tmp_caches&#039;);  // Tabelle registrieren&lt;br /&gt;
  sql(&amp;quot;                          // Tabelle anlegen&lt;br /&gt;
    CREATE TEMPORARY TABLE &amp;amp;tmp_caches ENGINE=MEMORY&lt;br /&gt;
    SELECT `cache_id` FROM `caches`&lt;br /&gt;
    WHERE `user`.`user_id` = `caches`.`user_id`&lt;br /&gt;
      AND `user`.`country` = &#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    $country);&lt;br /&gt;
 &lt;br /&gt;
  $rs = sql(&amp;quot;                    // Tabelle auslesen&lt;br /&gt;
    SELECT * FROM `cache_desc`, &amp;amp;tmp_caches&lt;br /&gt;
    WHERE `cache_desc`.`cache_id` = &amp;amp;tmp_caches.`cache_id`&amp;quot;);&lt;br /&gt;
  // ... Daten weiterverarbeiten&lt;br /&gt;
  sql_free_result($rs);&lt;br /&gt;
 &lt;br /&gt;
  sql_drop_temp_table(&#039;tmp_caches&#039;);  // Tabelle löschen&lt;br /&gt;
&lt;br /&gt;
=== Datenbankstruktur; statische Daten ===&lt;br /&gt;
&lt;br /&gt;
Datenbankstruktur und -inhalte werden an folgenden Stellen unter {{Codepath|htdocs/doc/sql}} definiert:&lt;br /&gt;
&lt;br /&gt;
* Tabellen, Felder und Indizes in {{Codepath2|htdocs/doc/sql|tables}}&lt;br /&gt;
* Stored Functions, Procedures und Triger in {{Codepath2|htdocs/doc/sql|stored-proc}}&lt;br /&gt;
* statische Daten wie z.B. Menüs, Cachetypen und sprachabhängige Texte in {{Codepath2|htdocs/doc/sql|static-data/data.sql}}.&lt;br /&gt;
&lt;br /&gt;
Es gibt weitere (geographische) &amp;quot;statische Daten&amp;quot;, die aufgrund ihres Umfangs nicht im Git-Repository enthalten sind; siehe {{Codepath2|htdocs/doc/sql|static-data/static-data.txt}}. Für Entwickler steht auf Anfrage ein Datenbankdump zur Verfügung, der eine vollständig initialisierte OC-Datenbank enthält (Veröffentlichung ist geplant). Weitere Updates können dann per&lt;br /&gt;
:{{Codepath|bin/dbupdate.php}}&lt;br /&gt;
eingepflegt werden, also man muss die oben aufgelisteten Dateien nicht von Hand weiterverarbeiten.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[Entwicklung/Datenbankversionierung|Datenbankversionierung]]&lt;br /&gt;
&lt;br /&gt;
==== OKAPI ====&lt;br /&gt;
&lt;br /&gt;
Die [[OKAPI]]-Tabellen werden zwar in der gleichen Datenbank abgelegt, sind aber unabhängig von den OC-Tabellen und daher &#039;&#039;nicht&#039;&#039; in {{Codepath|htdocs/doc/sql}} definiert. Bei [http://code.google.com/p/opencaching-api/#Installation_/_Update_Instructions Installation der OKAPI] werden sie automatisch angelegt und bei OKAPI-Updates automatisch aktualisiert. {{Codepath2|bin|dbupdate.php}} führt auch OKAPI-Updates durch, falls die OKAPI installiert ist.&lt;br /&gt;
&lt;br /&gt;
Auch der OKAPI-&#039;&#039;Code&#039;&#039; ist unabhängig vom OC-Code, d.h. sämtliche Datenbankzugriffe sind dort redundant implementiert. &#039;&#039;&#039;Bei Änderungen an Datenstrukturen oder -inhalten ist daher immer zu prüfen, ob eine Anpassung der OKAPI nötig ist!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Trigger &amp;amp; Stored Procedures ===&lt;br /&gt;
&lt;br /&gt;
Der Opencaching-Code macht reichlich Gebrauch von gespeicherten Datenbank-Funktionen und Triggern. Sie werden dazu eingesetzt, um die Konsistenz der Datenbankinhalte zu gewährleisten. Vor dem Hintergrund, dass drei unabhängige Frameworks parallel auf die Datenbank zugreifen – lib1, lib2 und OKAPI (und manchmal noch ein Administrator von Hand) – ist diese Vorgehensweise ratsam. Sie macht die OC.de-Datenbank ausgesprochen robust.&lt;br /&gt;
&lt;br /&gt;
Alle Datenbankfunktionen sind in &lt;br /&gt;
:{{Codepath|htdocs/doc/sql/stored-proc}}&lt;br /&gt;
definiert. Der aktuelle Stand befinden sich in {{Codepath2|htdocs/doc/sql/stored-proc|maintain-current.inc.php}}; für die [[Entwicklung/Datenbankversionierung|Datenbankversionierung]] können zusätzliche ältere Stände bzw. Update-Scripte existieren.&lt;br /&gt;
&lt;br /&gt;
Der Inhalt des &#039;&#039;maintain&#039;&#039;-Scripts lässt sich grob untergliedern in&lt;br /&gt;
* allgemeine Funktionen für komplexe Berechnungen, z.B. &amp;lt;code&amp;gt;DECTOWP&amp;lt;/code&amp;gt; für die Berechnung neuer OC-Wegpunkte&lt;br /&gt;
* Update-Funktionen für bestimmte Felder (&amp;lt;code&amp;gt;sp_update_*&amp;lt;/code&amp;gt;) die entweder von verschiedenen Triggern aufgerufen werden oder zur Datenbankwartung aus {{Codepath2|htdocs|dbmaint.php}} (Menü Admin|Datenbankwartung)&lt;br /&gt;
* Trigger-Prozeduren&lt;br /&gt;
&lt;br /&gt;
Eine Besonderheit sind &#039;&#039;&#039;globale Variablen&#039;&#039;&#039; die zur Parameterübergabe von PHP-Scripten an Datenbankfunktionen oder zwischen Datenbankfunktionen verwendet werden. Sie sind in {{Codepath2|htdocs/doc/sql/stored-proc|maintain-current.inc.php}} erläutert.&lt;br /&gt;
&lt;br /&gt;
=== SQL-Debugger ===&lt;br /&gt;
&lt;br /&gt;
lib1 und lib2 enthalten einen nützlichen SQL-Debugger ({{Codepath2|htdocs|lib/sqldebugger.inc.php}} bzw. {{Codepath2|htdocs|lib2/sqldebugger.class.php}}). Er zeigt für jedes ausgeführte SQL-Statment&lt;br /&gt;
&lt;br /&gt;
* das Statement selbst,&lt;br /&gt;
* ein [http://dev.mysql.com/doc/refman/5.1-olh/de/using-explain.html EXPLAIN],&lt;br /&gt;
* die ersten zurückgelieferten Datensätze, falls vorhanden,&lt;br /&gt;
* die Ausführungszeit,&lt;br /&gt;
* eventuelle MySQL-Warnungen.&lt;br /&gt;
&lt;br /&gt;
Der SQL-Debugger muss in den [[#Konfigurationsdateien|Settings]] aktiviert sein – für lib1 per &amp;lt;code&amp;gt;$sql_debug = true&amp;lt;/code&amp;gt;, in lib2 durch Setzen des Flags &amp;lt;code&amp;gt;DEBUG_SQLDEBUGGER&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;$opt[&#039;debug&#039;]&amp;lt;/code&amp;gt;. Wahlweise kann man diese Flags auch nur in einzelnen zu debuggenden PHP-Quelltexten setzen.&lt;br /&gt;
&lt;br /&gt;
Anschließend ist die zu debuggende Seite mit dem URL-Parameter &amp;lt;code&amp;gt;sqldebug=1&amp;lt;/code&amp;gt; aufzurufen.&lt;br /&gt;
&lt;br /&gt;
== Temporärdaten und Inhalte im Dateisystem ==&lt;br /&gt;
&lt;br /&gt;
Manche Dinge werden in Dateien statt in der Datenbank abgelegt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mediumlist&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Hochgeladene Bilder&#039;&#039;&#039; befinden sich üblicherweise in {{Codepath|htdocs/images/uploads}} (in den Settings änderbar), die Thumbnails darunter in {{Codepath2|htdocs/images/uploads|thumbs}}. Generierte Statistikbilder werden in {{Codepath|htdocs/images/statpics}} abgelegt.&lt;br /&gt;
* Herunterzuladende, gepackte &#039;&#039;&#039;Ausgaben der [[XML-Schnittstelle]]&#039;&#039;&#039; werden in {{Codepath|htdocs/download/zip}} zwischengespeichert (ebenfalls konfigurierbar).&lt;br /&gt;
* {{Codepath|htdocs/cache2}} enthält zwischengespeicherte [[#Templates|Templates]], [[#Übersetzung|Übersetzungsdateien]] für gettext und verschiedene Temporärdaten. Ein guter Teil dieser Daten wird von {{Codepath|bin/clear-webcache.php}} neu generiert.&lt;br /&gt;
* {{Codepath|htdocs/var}} enthält zwischengespeicherte OKAPI-Daten (die OKAPI legt allerdings auch eine Menge &amp;quot;gecachete&amp;quot; in der Datenbank ab) und Fehlerprotokolle.&lt;br /&gt;
* {{Codepath|htdocs/cache}} enthält vermutlich nur noch temporäre Prozess-Synchronisationsdateien (.pid-Dateien) der lib1-cronjobs für Log- und Cache-Benachrichtigungen.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:Template (Programmierung)|Templates]] dienen in Webanwendungen dazu, die Generierung von aus- und einzugebenden Daten von deren HTML-Darstellung zu trennen. HTML- und JavaScript-Code wird komplett in den Template-Dateien untergebracht, PHP-Code soweit wie irgend möglich in PHP-Scripten.&lt;br /&gt;
&lt;br /&gt;
Die Einbindung der Templates in den PHP-Programmablauf geschieht wie folgt:&lt;br /&gt;
# Festlegung, welche Templatedatei verwendet wird&lt;br /&gt;
# Zuweisung von variablen Inhalten an das Template&lt;br /&gt;
# Darstellung des Templates&lt;br /&gt;
Für alle drei Punkte gibt es entsprechende Bibliotheksfunktionen.&lt;br /&gt;
&lt;br /&gt;
=== lib1-Templates ===&lt;br /&gt;
&lt;br /&gt;
Die alte Library enthält ein selbstgemachtes, simples Templatesystem. Die Templatedateien befinden sich in {{Codepath|htdocs/lang/de/ocstyle}} und enthalten den auszugebenden HTML- und JavaScript-Code. Der Name der Template-Datei wird im PHP-Code über die globale Variable &amp;lt;code&amp;gt;$tplname&amp;lt;/code&amp;gt; festgelegt, z.B.&lt;br /&gt;
:&amp;lt;code&amp;gt;$tplname = &#039;newcache&#039;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für alle variablen Inhalte werden im Template Platzhalter wie z.B. &amp;lt;code&amp;gt;{cachename}&amp;lt;/code&amp;gt; verwendet; die PHP-Variable wird dann übergeben mit&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_set_var(&#039;cachename&#039;, $cachename);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sofern der variable Teil auch HTML-Code oder etwas zu Übersetzendes enthält, wird dies in speziellen Include-Dateien abgelegt, z.B.&lt;br /&gt;
&lt;br /&gt;
 $cachelink = &#039;&amp;lt;a href=&amp;quot;viewcache.php?cacheid={cacheid}&amp;quot;&amp;gt;{cachename}&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
 $outputformat_notexist = t(&#039;The selected output format is unknown!&#039;);&lt;br /&gt;
&lt;br /&gt;
Die Include-Datei wird im PHP-Hauptmodul eingebunden und die Variablen per &amp;lt;code&amp;gt;mb_ereg_replace&amp;lt;/code&amp;gt; ersetzt, bevor das Ganze per &amp;lt;code&amp;gt;tpl_set_var()&amp;lt;/code&amp;gt; ans Template übergeben wird.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_BuildTemplate();&amp;lt;/code&amp;gt;&lt;br /&gt;
stellt schließlich das Template dar und beendet das PHP-Script.&lt;br /&gt;
&lt;br /&gt;
Alle [[Opencaching]]-Seiten außer OC.de und OC.se/no verwenden noch das lib1-Templatesystem.&lt;br /&gt;
&lt;br /&gt;
=== lib2-Templates (Smarty) ===&lt;br /&gt;
&lt;br /&gt;
==== Grundlagen ====&lt;br /&gt;
&lt;br /&gt;
Die neue Bibliothek verwendet die leistungsfähige [[wikipedia:Smarty|Smarty]]-Engine. Smarty-Templates bestehen neben dem HTML/JavaScript-Code im Wesentlichen aus Kontrollstrukturen und Variableneinbindungen. Die Templates sind in {{Codepath|htdocs/templates2/ocstyle}} abgelegt.&lt;br /&gt;
&lt;br /&gt;
Die lib2 definiert die globale Variable&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl&amp;lt;/code&amp;gt;&lt;br /&gt;
über die alle Zugriffe auf Smarty und die Templates laufen. Am Beginn des PHP-Moduls wird jeweils das Template initialisiert:&lt;br /&gt;
&lt;br /&gt;
 $tpl-&amp;gt;name = &#039;newemail&#039;;   // Name der Template-Datei&lt;br /&gt;
 $tpl-&amp;gt;menuitem = MNU_MYPROFILE_DATA;  // Menü-ID, siehe doc/sql/static-data/data.sql&lt;br /&gt;
 $tpl-&amp;gt;caching = false;     // nicht zwischenspeichern&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;caching&#039;&#039;-Parameter legt fest, ob das Ergebnis der Templateausgabe zwischengespeichert wird; die Dauer der Zwischenspeicherung ist dann ggf. per&lt;br /&gt;
 $tpl-&amp;gt;caching_lifetime = 1800;  // halbe Stunde Caching&lt;br /&gt;
festzulegen. Dies empfiehlt sich bei häufig aufgerufenen, rechenintensiven Seiten. Seiten mit ständig wechselndem bzw. benutzerabhängigem Inhalt dürfen &#039;&#039;&#039;nicht&#039;&#039;&#039; &amp;quot;gecacht&amp;quot; werden!&lt;br /&gt;
&lt;br /&gt;
Neben Caching der Template-&#039;&#039;Ausgaben&#039;&#039; gibt es auch eine &#039;&#039;Vorcompilierung&#039;&#039; der Templates selbst. Diese erfolgt&lt;br /&gt;
* einmalig für alle Templates per &amp;lt;code&amp;gt;bin/clear-webcache.php&amp;lt;/code&amp;gt;,&lt;br /&gt;
* automatisch, wenn ein geändertes Template abgerufen wird,&lt;br /&gt;
* jedesmal bei jedem Template-Aufruf, falls in den Settings der Debug-Schalter &amp;lt;code&amp;gt;DEBUG_TEMPLATES&amp;lt;/code&amp;gt; gesetzt ist.&lt;br /&gt;
&lt;br /&gt;
Die zwischengespeicherten Templates werden in &amp;lt;code&amp;gt;htdocs/cache2/smarty&amp;lt;/code&amp;gt; abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf die Initialisierung des Templates folgen Variablen-Zuweisungen (s.u.) und schließlich die Darstellung mit&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;display();&amp;lt;/code&amp;gt;&lt;br /&gt;
die das PHP-Script beendet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Smarty-Syntax&lt;br /&gt;
&lt;br /&gt;
Im Folgenden sind ein paar grundlegende Smarty-Elemente erklärt; ansonsten sei auf die [http://www.smarty.net/docsv2/de/ Smarty-Dokumentation] verwiesen und auf die vielen Bespiele in {{Codepath2|htdocs|templates2/ocstyle}}. (Achtung: Der OC-Code verwendet eine ältere Smarty-Version; nicht alles was in der Doku steht ist hier auch schon verfügbar!)&lt;br /&gt;
&lt;br /&gt;
Alle Smarty-Elemente stehen in geschweiften Klammern {}. Wenn das Template solche Klammern für andere Zwecke verwendet, z.B. für JavaScript-Kontrollstrukturen, müssen diese von der Smarty-Interpretation ausgeklammert werden:&lt;br /&gt;
&lt;br /&gt;
  {literal}&lt;br /&gt;
  function js_function()&lt;br /&gt;
  {&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
  {/literal}&lt;br /&gt;
&lt;br /&gt;
==== Variablen ====&lt;br /&gt;
&lt;br /&gt;
Variablen werden z.B. per&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;assign(&#039;cachename&#039;, $cache[&#039;name&#039;]);&amp;lt;/code&amp;gt;&lt;br /&gt;
an das Template übergeben und dort als&lt;br /&gt;
:&amp;lt;code&amp;gt;{$cachename}&amp;lt;/code&amp;gt;&lt;br /&gt;
verwendet. Es können auch Arrays übergeben werden, deren Elemente statt [] mit einem Punkt referenziert werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;{$cache.name}&amp;lt;/code&amp;gt;&lt;br /&gt;
steht z.B. für &amp;lt;code&amp;gt;$caches[&#039;name&#039;]&amp;lt;/code&amp;gt;, übergeben per &amp;lt;code&amp;gt;$tpl-&amp;gt;assign(&#039;caches&#039;, ...)&amp;lt;/code&amp;gt;. Dies funktioniert auch mit numerischen Indizes – z.B. &amp;lt;code&amp;gt;{$user.0}&amp;lt;/code&amp;gt; für das erste Element eines $user-Arrays – und mit mehr als zwei Ebenen.&lt;br /&gt;
&lt;br /&gt;
Auch simple Berechnung sind möglich, z.B. &amp;lt;code&amp;gt;{$waylength*2}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu dem vom PHP-Code übergebenen Variablen kann man auch eigene definieren, z.B.&lt;br /&gt;
:&amp;lt;code&amp;gt;{assign var=counter value=1}&amp;lt;/code&amp;gt;&lt;br /&gt;
Mit &amp;lt;code&amp;gt;{capture}&amp;lt;/code&amp;gt; lassen sich u.U. auch komplexere Ausdrücke in einer Variable unterbringen.&lt;br /&gt;
&lt;br /&gt;
==== Kontrollstrukturen ====&lt;br /&gt;
&lt;br /&gt;
Bedingte Einbindung von Template-Komponenten ist mit &amp;lt;code&amp;gt;{if} … {elseif} … {else} … {/if}&amp;lt;/code&amp;gt;-Anweisungen möglich. Dabei können auch komplexere PHP-Ausdrucke verwendet werden, die als Boolean ausgewertet werden:&lt;br /&gt;
&lt;br /&gt;
  {if $show_statistics &amp;amp;&amp;amp; ($statdata|@count &amp;gt; 0)}&lt;br /&gt;
    ... Statistik ausgeben ...&lt;br /&gt;
  {/if}&lt;br /&gt;
&lt;br /&gt;
(@count ist eine [[#Benutzerdefinierte Erweiterungen; Übersetzungen|benutzerdefinierte Funktion]])&lt;br /&gt;
&lt;br /&gt;
Eine weiter häufig verwendete Struktur ist &amp;lt;code&amp;gt;{foreach}&amp;lt;/code&amp;gt; zum iterieren von Arrayelementen:&lt;br /&gt;
&lt;br /&gt;
  {foreach from=$caches item=cache}&lt;br /&gt;
    &amp;lt;td&amp;gt;{$cache.name|escape}&amp;lt;/td&amp;gt;&lt;br /&gt;
  {/foreach}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|escape&amp;lt;/code&amp;gt; ist ein &#039;&#039;Modifizierer&#039;&#039;, der den Variableninhalt weiterverarbeitet. In diesem Fall werden HTML-Entitäten &amp;quot;escaped&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;{strip}...{/strip}&amp;lt;/code&amp;gt; lassen sich alle Whitespaces (Leerzeichen, Tabs, Zeilenumbrüche) in einem Abschnitt herausfiltern, was die auszugebende Datenbank reduziert. Aber Vorsicht, falls Whitespaces als Trennzeichen in Ausgaben benötigt werden!&lt;br /&gt;
&lt;br /&gt;
==== Benutzerdefinierte Erweiterungen ====&lt;br /&gt;
&lt;br /&gt;
Smarty lässt sich um eigene&lt;br /&gt;
* Elemente (&amp;quot;Blocks&amp;quot;),&lt;br /&gt;
* Modifizierer und&lt;br /&gt;
* Funktionen&lt;br /&gt;
erweitern. Der Opencaching-Code enthält eine Reihe solcher eigener Erweiterungen in {{Codepath2|htdocs|lib2/smarty/ocplugins}}.&lt;br /&gt;
&lt;br /&gt;
Die wichtigste Erweiterung ist das &amp;lt;code&amp;gt;{t}&amp;lt;/code&amp;gt;-Element zum Übersetzen von Texten. Alle Texte in den Templates werden in Englisch geschrieben und in &amp;lt;code&amp;gt;{t} ... {/t}&amp;lt;/code&amp;gt; eingeschlossen; sie werden dadurch automatisch dem Übersetzungssystem zugeführt. Mehr dazu im Kapitel [[#Übersetzungen|Übersetzungen]].&lt;br /&gt;
&lt;br /&gt;
=== Systemtemplate und Menüsystem ===&lt;br /&gt;
&lt;br /&gt;
Was oben über einzelne Templates geschrieben wurde betrifft nur den Teil der Seite, der im &#039;&#039;Content-Container&#039;&#039; dargestellt wird – also dem Teil unterhalb und rechts des Menüsystems und oberhalb der Fußzeile. Alles &amp;quot;drumherum&amp;quot; wird vom &#039;&#039;Systemtemplate&#039;&#039; erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Codedateien sind daran in der lib1 beteiligt ...&lt;br /&gt;
* Systemtemplate: {{Codepath2|htdocs|lang/de/ocstyle/main.tpl.php}}&lt;br /&gt;
* Menüdefinitionen: {{Codepath2|htdocs|lang/de/ocstyle/lib/menu.php}}&lt;br /&gt;
* PHP-Framework: {{Codepath2|htdocs|lib/common.inc.php}} &amp;amp;rarr; tpl_BuildTemplate()&lt;br /&gt;
... und in der lib2:&lt;br /&gt;
* Systemtemplate: {{Codepath2|htdocs|templates2/ocstyle/sys_main.tpl}}&lt;br /&gt;
* Menüsystem: Tabelle &#039;sys_menu&#039; per {{Codepath2|htdocs|doc/sql/static-data/data.sql}}, {{Codepath2|htdocs|lib2/menu.class.php}}&lt;br /&gt;
* PHP-Framework: {{Codepath2|htdocs|lib2/OcSmarty.class.php}}&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Hauptmenü-Punkte sind via [[#Konfigurationsdateien|Konfigurationsdateien]] erzeugbar.&lt;br /&gt;
&lt;br /&gt;
=== Email-Templates ===&lt;br /&gt;
&lt;br /&gt;
Auch der Inhalt (&#039;&#039;body&#039;&#039;) von Emails wird über Templates erzeugt.&lt;br /&gt;
&lt;br /&gt;
lib1-Email-Templates befinden sich in {{Codepath|htdocs/lang/de/ocstyle/email}}, {{Codepath|htdocs/util/notification}} und {{Codepath|htdocs/util/watchlist}} und werden von den entsprechenden PHP-Modulen direkt per &amp;lt;code&amp;gt;mb_ereg_replace()&amp;lt;/code&amp;gt; aufgelöst.&lt;br /&gt;
&lt;br /&gt;
lib2-Email-Templates liegen in {{Codepath|htdocs/templates2/mail}} und werden von &amp;lt;code&amp;gt;mail.class.php&amp;lt;/code&amp;gt; per Smarty verarbeitet.&lt;br /&gt;
&lt;br /&gt;
=== OKAPI ===&lt;br /&gt;
Die OKAPI hat ein eigenes Templatesystem; mehr dazu im Abschnitt [[#OKAPI|OKAPI]].&lt;br /&gt;
&lt;br /&gt;
== CSS Style Sheets ==&lt;br /&gt;
Die Style Sheets befinden sich in {{Codepath|htdocs/resource2/ocstyle/css}}.&lt;br /&gt;
&lt;br /&gt;
== Grafiken ==&lt;br /&gt;
&lt;br /&gt;
Grafiken für Icons und andere Dinge verteilen sich – soweit es keine Drittbibliotheken betrifft – über drei Verzeichnisse:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/images}} (lib1 und lib2)&lt;br /&gt;
* {{Codepath|htdocs/lang/de/ocstyle/images}} (lib1)&lt;br /&gt;
* {{Codepath|htdocs/resource2/ocstyle/images}} (lib2)&lt;br /&gt;
&lt;br /&gt;
Hier herrscht etwas Chaos. Manches ist mehrfach vorhanden - auch innerhalb &#039;&#039;einer&#039;&#039; Library - oder inkonsistent abgelegt, die Dateitypen wechseln zwischen GIF und PNG. Glattziehen lässt sich das kaum, weil Grafiken auch gerne von anderer Stelle aus verlinkt werden, z.B. aus Cachelistings - teils sogar von anderen Plattformen aus. Schiebt man die Grafiken einfach weg oder ändert das Format, zerstört es unbemerkt Cachebeschreibungen.&lt;br /&gt;
&lt;br /&gt;
Zur Kompatibilität mit alten Cachebeschreibungen und Logs liegen in folgenden Verzeichnissen Grafiken, die anderweitig nicht mehr verwendet werden:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/lang/de/stdstyle/images}}&lt;br /&gt;
* {{Codepath|htdocs/lib/tinymce/plugins/emotions/images}}&lt;br /&gt;
* {{Codepath|htdocs/resource2/stdstyle/images}}&lt;br /&gt;
&lt;br /&gt;
== Übersetzung ==&lt;br /&gt;
&lt;br /&gt;
Der OC-Code ist mehrsprachig und frei übersetzbar, mit Ausnahme&lt;br /&gt;
* der Benachrichtigungs-Emails, die es bislang nur in Deutsch gibt (-&amp;gt; http://redmine.opencaching.de/issues/141)&lt;br /&gt;
* des Garmin-Download-Dialogs ({{Codepath2|htdocs|garmin.php}}), dessen untere Hälfte es nur in Deutsch und Englisch gibt (siehe {{Codepath|htdocs/resource2/ocstyle/js/GarminDisplay.js}})&lt;br /&gt;
(weitere noch nicht lokalisierbare Module bitte ergänzen!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Lokalisierung je nach gewählte Sprache erfolgt grundsätzlich mit folgenden Mechanismen:&lt;br /&gt;
* In Templates über die Smarty-Tags &amp;lt;code&amp;gt;{t}English Text{/t}&amp;lt;/code&amp;gt;. Hierbei können auch Variablen eingesetzt werden, z.B.&lt;br /&gt;
*:&amp;lt;code&amp;gt;{t 1=$cachename 2=$username}The geocache %1 has been found by %2{/t}&amp;lt;/code&amp;gt;&lt;br /&gt;
* Notfalls direkt im PHP-Code durch Aufruf von &amp;lt;code&amp;gt;$translate-&amp;gt;t()&amp;lt;/code&amp;gt;, z.B.&lt;br /&gt;
*:&amp;lt;code&amp;gt;$text = $translate-&amp;gt;t(&#039;New password code&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, basename(__FILE__), __LINE__)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Bei Artikelseiten, die via {{Codepath|htdocs/articles.php}} dargestellt werden, per Ablage der Templates in Unterverzeichnissen von {{Codepath|htdocs/templates2/ocstyle/articles}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Übersetzungssystem arbeitet intern mit &amp;lt;code&amp;gt;gettext()&amp;lt;/code&amp;gt;. Die Strings dafür befinden sich in der Tabellen &#039;&#039;sys_trans&#039;&#039; und &#039;&#039;sys_trans_text&#039;&#039;. Man kann sie direkt via {{Codepath2|htdocs/doc/sql/static-data|data.sql}} einpflegen, oder mit dem &amp;quot;Schnellübersetzungsmodus&amp;quot; + &amp;quot;SQL-Export&amp;quot; von {{Codepath2|htdocs|translate.php}} (Menü Admin|Übersetzung). Letzteres kann allerdings jede Menge Git-Merge-Konflikte beim Zusammenführen verschiedener Branches erzeugen, daher werden OC.de-Übersetzungen derzeit nur direkt in {{Codepath2|htdocs/doc/sql/static-data|data.sql}} eingepflegt.&lt;br /&gt;
&lt;br /&gt;
Achtung: &#039;&#039;&#039;Auch für die englische Seitendarstellung läuft nochmal alles durch den Übersetzer&#039;&#039;&#039;, Artikel ausgenommen. Die englischen Originaltexte in den Templates oder im PHP-Code sind also nur eine Basis für die weitere Übersetzung. Kleinere Fehler dort müssen nicht korrigiert werden, solange die Texte verständlich sind. &#039;&#039;Wenn&#039;&#039; dort etwas korrigiert wird, muss es gleichzeitig auch in der Tabelle &#039;&#039;sys_trans&#039;&#039; in {{Codepath2|htdocs/doc/sql/static-data|data.sql}} geändert werden!&lt;br /&gt;
&lt;br /&gt;
Opencaching.de gibt es zurzeit in Deutsch, Englisch, Italienisch und Spanisch. Die Übersetzungen werden durch den von Opencaching Deutschland eingesetzten Code Maintainer organisiert.&lt;br /&gt;
&lt;br /&gt;
== Fehlerbehandlung ==&lt;br /&gt;
&lt;br /&gt;
Der OC-Code verwendet kein Exception Handling (mit Ausnahme der OKAPI). Wenn etwas fehlschlägt, wird dies durch den Rückgabewert der betreffenden Funktion signalisiert und entsprechend reagiert. Würde man den betroffenen Funktionen noch einen Namenszusatz spendieren, der die mögliche Fehlerrückgabe kennzeichnet, wäre dieses System transparenter und in sich weniger fehleranfällig als ein strukturiertes Exception Handling.&lt;br /&gt;
&lt;br /&gt;
==== fehlerhafte Benutzereingaben ====&lt;br /&gt;
Wenn es Probleme mit einer Benutzereingabe gibt, wird das betreffende Template nochmals angezeigt und an passender Stelle eine mit dem CSS-Stil &amp;lt;code&amp;gt;errormsg&amp;lt;/code&amp;gt; formatierte Meldung eingeblendet. Dies ist jeweils entsprechend zu implementieren.&lt;br /&gt;
&lt;br /&gt;
==== erkanntes Problem ====&lt;br /&gt;
Wenn anderweitig ein nicht handhhabbares Problem erkannt wird, wird das Fehlertemplate angezeigt. In &#039;&#039;&#039;lib1&#039;&#039;&#039; befindet sich dies in {{Codepath2|htdocs|lang/de/ocstyle/error.tpl.php}} und wird aufgerufen per&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_errorMsg(&#039;original_templatename&#039;, $fehlermeldung);&amp;lt;/code&amp;gt;&lt;br /&gt;
z.B.&lt;br /&gt;
 $error_desc_not_found = t(&#039;(internal error) The description is not available.&#039;);&lt;br /&gt;
 ...&lt;br /&gt;
 tpl_errorMsg(&#039;editdesc&#039;, $error_desc_not_found);&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;&#039;lib2&#039;&#039;&#039;-Fehlertemplate befindet sich in bzw. {{Codepath2|htdocs|templates2/ocstyle/error.tpl}} und wird verwendet mit&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;error(Fehlernummer)&amp;lt;/code&amp;gt;&lt;br /&gt;
oder&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;error($fehlermeldung);&amp;lt;/code&amp;gt;&lt;br /&gt;
Die Fehlernummern sind in {{Codepath2|htdocs|lib2/error.inc.php}} definiert.&lt;br /&gt;
&lt;br /&gt;
; SQL-Fehler&lt;br /&gt;
&lt;br /&gt;
Bei MySQL-Fehlern wird ein Fehlertemplate anzeigt und eine Admin-Email versandt, sofern in den [[#Konfigurationsdateien|Settings]] eine Mailadresse hinterlegt ist. In der lib1 ist sie in&lt;br /&gt;
:&amp;lt;code&amp;gt;$sql_errormail&amp;lt;/code&amp;gt;&lt;br /&gt;
einzutragen, in der lib2 in&lt;br /&gt;
:&amp;lt;code&amp;gt;$opt[&#039;db&#039;][&#039;error&#039;][&#039;mail&#039;]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Entwicklersysteme werden so konfiguriert, dass das komplette SQL-Statement auch direkt angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann man per &amp;lt;code&amp;gt;$sql_warntime&amp;lt;/code&amp;gt; (lib1) bzw. &amp;lt;code&amp;gt;$opt[&#039;db&#039;][&#039;warn&#039;][&#039;time&#039;]&amp;lt;/code&amp;gt; (lib2) eine Warnschwelle für zu lange SQL-Ausführungszeiten festlegen. Bei Überschreitung werden dann Admin-Mails erzeugt.&lt;br /&gt;
&lt;br /&gt;
==== unerkanntes Problem ====&lt;br /&gt;
&lt;br /&gt;
{{Codepath2|htdocs|lib2/errorhandler.inc.php}} enthält ein noch in der Testphase befindlichen Handler für PHP-Fehler, der auch in lib1 eingebunden ist. Er wird bei PHP-Fehlern aktiv, die (abhängig von der &#039;&#039;error_reporting&#039;&#039;-Einstellung in der PHP-Konfiguration) zu einem Abbruch des Scripts führen. Es wird dann eine Fehlermeldung anzeigt und ggf. eine Admin-Mail erzeugt. Es wird die gleiche Emailkonfiguration wie für bei SQL-Problemen (s.o.) verwendet.&lt;br /&gt;
&lt;br /&gt;
Dieser PHP-Errorhandler ist derzeit nur aktiviert, wenn in der Konfiguration der Debug-Modus eingeschaltet ist. Ansonsten erscheint bei Fehlern eine leere Seite.&lt;br /&gt;
&lt;br /&gt;
== OKAPI ==&lt;br /&gt;
&lt;br /&gt;
Die Opencaching-API ist ein eigenständiges PHP-Projekt, dessen Code auf verschiedenen OC-Seiten zum Einsatz kommt. Die Projekt-Homepage ist http://code.google.com/p/opencaching-api/. Beiträge, die nicht vom Code-Maintainer selbst kommen, werden üblicherweise in Branches hochgeladen und laufen dann durch ein Code Review.&lt;br /&gt;
&lt;br /&gt;
Die OKAPI wird – erfolgreich! – mit einem wesentlich höheren Anspruch an Codequalität und -Stil entwickelt als die OC-Länderseiten. Dokumentation und Codestruktur sind herausragend. Gleichzeitig steht sie bei einigen Details wie Template-Engine, Datenbank-Library und Konstanten-Definitionen hinter dem OC.de-Code zurück. Der OKAPI-Code ist nur für Webanwendungen geschrieben; Einbindung in Kommandozeilentools kann insbesondere am Exception-Handling scheitern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der OKAPI-Code wird aus dem OKAPI-Projekt in die lokalen OC-Code-Repositories (nach {{Codepath|htdocs/okapi}}) repliziert. Bei Opencaching.pl und .nl geschieht dies automatisch über einen SVN-&amp;quot;Commit-Hook&amp;quot;, bei Opencaching.de manuell durch den Code-Maintainer nach einem Security Review.&lt;br /&gt;
&lt;br /&gt;
OKAPI-Code kann über die &amp;quot;Facade&amp;quot;-Schnittstelle in OC-Code eingebunden werden ({{Codepath2|htdocs|okapi/facade.php}}). OC.pl macht davon insbesondere bei der Karte Gebrauch, die von der OKAPI generiert wird. OC.de verwendet die Facade bislang nur (experimentell) im Update-Script {{Codepath|bin/okapi-update.php}}, das von {{Codepath2|bin|dbupdate.php}} aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
Sämtliche OKAPI-Seitenzugriffe laufen über eine Rewrite-Engine ({{Codepath2|htdocs|okapi/.htaccess}} → {{Codepath2|htdocs|okapi/controller.php}}). Man kann daher die PHP-Scripte nicht direkt über ihre URLs idenitifizieren sondern muss schonmal etwas suchen. Methoden befinden sich in {{Codepath2|htdocs|okapi/services}}, Seiten mit HTML-Output in {{Codepath2|htdocs|okapi/views}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Dokumentation verwendet die OKAPI ein eigenes XML-Format, das von einem Parser aufbereitet wird.&lt;br /&gt;
&lt;br /&gt;
Templates für Methoden, die HTML- oder sonstiges XML-Output liefern, sind in .tpl.php-Dateien zusammen mit den PHP-Quelltexten abgelegt. Variablen werden per PHP-Code eingebunden, meist per &amp;quot;short open tags&amp;quot;, z.B.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? if (($vars[&#039;my_notes&#039;] == &#039;desc:text&#039;) &amp;amp;&amp;amp; ($c[&#039;my_notes&#039;] != null)) { /* Does user want us to include personal notes? */ ?&amp;gt;&lt;br /&gt;
   &amp;amp;lt;p&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;&amp;lt;?= _(&amp;quot;Personal notes&amp;quot;) ?&amp;gt;:&amp;amp;lt;/b&amp;amp;gt; &amp;lt;?= Okapi::xmlescape($c[&#039;my_notes&#039;]) ?&amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
 &amp;lt;? } ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Entwicklung|Codedoku]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Cachearten&amp;diff=5641</id>
		<title>Cachearten</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Cachearten&amp;diff=5641"/>
		<updated>2014-04-24T05:56:20Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Virtueller Cache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Cachetypes-oc.png|thumb|hochkant=2|Verteilung der Cachearten auf Opencaching.de, Oktober 2012]]&lt;br /&gt;
Siehe auch [http://www.opencaching.de/articles.php?page=cacheinfo auf opencaching.de]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Cacharten.jpg|framed]]&lt;br /&gt;
&lt;br /&gt;
== Normaler Cache („Tradi“) ==    &lt;br /&gt;
Die eingetragenen Koordinaten geben möglichst genau die Cacheposition an. Der Cache ist z.B. eine Dose mit Logbuch darin, zum Finden und Öffnen des Caches sind keine Rätsel oder Aufgaben zu lösen.&lt;br /&gt;
&lt;br /&gt;
Tradis sind am einfachsten zu [[Fachjargon#Legen|legen]] und zu finden, daher eignen sie sich gut für Anfänger und erhalten mehr [[Log]]s als aufwändigere Caches.&lt;br /&gt;
&lt;br /&gt;
== Drive-In ==&lt;br /&gt;
Ein normaler Cache, der direkt bei einem Parkplatz liegt. Es wird keine Spezialausrüstung benötigt.&lt;br /&gt;
&lt;br /&gt;
== [[Multicache]] („Multi“) ==&lt;br /&gt;
Die angegebenen Koordinaten geben nicht die Cacheposition, sondern den Startpunkt für die Suche nach dem Cache an. Von dort aus kann er durch das Lösen von Aufgaben oder Rätseln und/oder durch das Finden von Zwischenstationen erreicht werden. Die Lösung der Aufgaben und Rätsel muss vor Ort möglich sein.&lt;br /&gt;
&lt;br /&gt;
== Rätselcache („Mystery“) ==&lt;br /&gt;
Um die Koordinaten des Caches herauszufinden, muss zuerst ein Rätsel gelöst werden. Im weiteren Verlauf kann es sich um jede Art von Cache (normal, multi, virtuell usw.) handeln.&lt;br /&gt;
&lt;br /&gt;
Wenn du einen Rätselcache listest kannst du als zusätzlichen Service einen [[Geochecker]] einzubauen. Damit lässt sich vor der Suche überprüfen, ob die errätselten Koordinaten stimmen.&lt;br /&gt;
&lt;br /&gt;
== Mathe-/Physikcache ==&lt;br /&gt;
Zur Lösung des Caches müssen eine oder mehrere Mathe- oder Physikaufgaben gelöst werden, die über das kleine Geocacher-1x1 hinaus gehen.&lt;br /&gt;
&lt;br /&gt;
== Beweglicher Cache ==&lt;br /&gt;
Der Cache wechselt seine Position. Er kann z.&amp;amp;nbsp;B. von jedem Finder an einem neuen Ort versteckt werden; die neuen Koordinaten und ggf. eine neue Aufgabe werden dann im Logeintrag veröffentlicht. Oder der Cache befindet sich an einem Verkehrsmittel, dessen Koordinaten herauszufinden sind.&lt;br /&gt;
&lt;br /&gt;
[[Datei:OC5E7A Skulptur.JPG|thumb|virtueller Cache [http://www.opencaching.de/OC5E7A OC5E7A]]]&lt;br /&gt;
== Virtueller Cache ==&lt;br /&gt;
Am Ziel befindet sich weder ein Behälter noch ein Logbuch. Stattdessen ist dort eine Aufgabe zu lösen, bevor man den Cache loggen kann – z.&amp;amp;nbsp;B. indem man etwas abliest, ein Foto macht usw.&lt;br /&gt;
&lt;br /&gt;
Virtuelle Caches sind für Orte gedacht, wo es schwer ist einen Behälter zu verstecken oder wo dies dem Ort schaden könnte, etwa in [[Naturschutz]]gebieten. Dieser Cachetyp eignet sich auch für Orte, bei denen es schwierig oder unmöglich ist, die Erlaubnis zum Legen eines Caches zu bekommen.&lt;br /&gt;
&lt;br /&gt;
== Webcam-Cache ==&lt;br /&gt;
Zum Lösen des Caches wird eine öffentliche Webcam genutzt. Meist muss die Webcam an den angegebenen Koordinaten gefunden werden, um von dieser ein Bild mit sich selbst zu machen. Das Bild wird dann beim Logeintrag hinzugefügt. Es gibt weder Tauschbehälter noch Logbuch.&lt;br /&gt;
&lt;br /&gt;
== Event-Cache ==&lt;br /&gt;
[[Event|Treffen von Geocachern]] zum gemeinsamen Plausch. Es darf jeder Geocacher teilnehmen, der Lust hat. Vor dem Treffen loggt man, dass man teilnehmen möchte, und danach dass man teilgenommen hat.&lt;br /&gt;
&lt;br /&gt;
== Unbekannter Cachetyp ==&lt;br /&gt;
Alles was nicht in die oben aufgelisteten Cachetypen einordnen lässt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
[[Kategorie:Listings und Logs]]&lt;br /&gt;
[[Kategorie:Geocaches]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Typ skrzynki]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Cachearten&amp;diff=5640</id>
		<title>Cachearten</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Cachearten&amp;diff=5640"/>
		<updated>2014-04-24T05:54:17Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Webcam-Cache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Cachetypes-oc.png|thumb|hochkant=2|Verteilung der Cachearten auf Opencaching.de, Oktober 2012]]&lt;br /&gt;
Siehe auch [http://www.opencaching.de/articles.php?page=cacheinfo auf opencaching.de]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Cacharten.jpg|framed]]&lt;br /&gt;
&lt;br /&gt;
== Normaler Cache („Tradi“) ==    &lt;br /&gt;
Die eingetragenen Koordinaten geben möglichst genau die Cacheposition an. Der Cache ist z.B. eine Dose mit Logbuch darin, zum Finden und Öffnen des Caches sind keine Rätsel oder Aufgaben zu lösen.&lt;br /&gt;
&lt;br /&gt;
Tradis sind am einfachsten zu [[Fachjargon#Legen|legen]] und zu finden, daher eignen sie sich gut für Anfänger und erhalten mehr [[Log]]s als aufwändigere Caches.&lt;br /&gt;
&lt;br /&gt;
== Drive-In ==&lt;br /&gt;
Ein normaler Cache, der direkt bei einem Parkplatz liegt. Es wird keine Spezialausrüstung benötigt.&lt;br /&gt;
&lt;br /&gt;
== [[Multicache]] („Multi“) ==&lt;br /&gt;
Die angegebenen Koordinaten geben nicht die Cacheposition, sondern den Startpunkt für die Suche nach dem Cache an. Von dort aus kann er durch das Lösen von Aufgaben oder Rätseln und/oder durch das Finden von Zwischenstationen erreicht werden. Die Lösung der Aufgaben und Rätsel muss vor Ort möglich sein.&lt;br /&gt;
&lt;br /&gt;
== Rätselcache („Mystery“) ==&lt;br /&gt;
Um die Koordinaten des Caches herauszufinden, muss zuerst ein Rätsel gelöst werden. Im weiteren Verlauf kann es sich um jede Art von Cache (normal, multi, virtuell usw.) handeln.&lt;br /&gt;
&lt;br /&gt;
Wenn du einen Rätselcache listest kannst du als zusätzlichen Service einen [[Geochecker]] einzubauen. Damit lässt sich vor der Suche überprüfen, ob die errätselten Koordinaten stimmen.&lt;br /&gt;
&lt;br /&gt;
== Mathe-/Physikcache ==&lt;br /&gt;
Zur Lösung des Caches müssen eine oder mehrere Mathe- oder Physikaufgaben gelöst werden, die über das kleine Geocacher-1x1 hinaus gehen.&lt;br /&gt;
&lt;br /&gt;
== Beweglicher Cache ==&lt;br /&gt;
Der Cache wechselt seine Position. Er kann z.&amp;amp;nbsp;B. von jedem Finder an einem neuen Ort versteckt werden; die neuen Koordinaten und ggf. eine neue Aufgabe werden dann im Logeintrag veröffentlicht. Oder der Cache befindet sich an einem Verkehrsmittel, dessen Koordinaten herauszufinden sind.&lt;br /&gt;
&lt;br /&gt;
[[Datei:OC5E7A Skulptur.JPG|thumb|virtueller Cache [http://www.opencaching.de/OC5E7A OC5E7A]]]&lt;br /&gt;
== Virtueller Cache ==&lt;br /&gt;
Am Ziel befindet sich weder ein Behälter noch ein Logbuch. Stattdessen ist dort eine Aufgabe zu lösen, bevor man den Cache loggen kann – z.&amp;amp;nbsp;B. indem man etwas abliest, ein Foto macht usw.&lt;br /&gt;
&lt;br /&gt;
Virtuelle Caches sind für Orte gedacht, wo es schwer ist einen Behälter zu verstecken oder wo dies dem Ort schaden könnte, etwa in [[Naturschutz]]gebieten. &lt;br /&gt;
&lt;br /&gt;
== Webcam-Cache ==&lt;br /&gt;
Zum Lösen des Caches wird eine öffentliche Webcam genutzt. Meist muss die Webcam an den angegebenen Koordinaten gefunden werden, um von dieser ein Bild mit sich selbst zu machen. Das Bild wird dann beim Logeintrag hinzugefügt. Es gibt weder Tauschbehälter noch Logbuch.&lt;br /&gt;
&lt;br /&gt;
== Event-Cache ==&lt;br /&gt;
[[Event|Treffen von Geocachern]] zum gemeinsamen Plausch. Es darf jeder Geocacher teilnehmen, der Lust hat. Vor dem Treffen loggt man, dass man teilnehmen möchte, und danach dass man teilgenommen hat.&lt;br /&gt;
&lt;br /&gt;
== Unbekannter Cachetyp ==&lt;br /&gt;
Alles was nicht in die oben aufgelisteten Cachetypen einordnen lässt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
[[Kategorie:Listings und Logs]]&lt;br /&gt;
[[Kategorie:Geocaches]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Typ skrzynki]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Caches_entlang_einer_Route&amp;diff=5634</id>
		<title>Caches entlang einer Route</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Caches_entlang_einer_Route&amp;diff=5634"/>
		<updated>2014-04-01T14:25:30Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Oc car1.png|200px|thumb|right|Parameter]]Es gibt ein Script das unter Linux läuft, mit dem eine [[GPX-Datei|GPX]] Datei erzeugt werden kann, die alle Caches entlang einer Route beinhaltet. Das Script wurde durch [http://www.opencaching.de/viewprofile.php?userid=214033 ka_be] entwickelt und freundlicherweise im [http://forum.opencaching-network.org/index.php?topic=3784.0 Opencaching-Forum] zur Verfügung gestellt. &lt;br /&gt;
&lt;br /&gt;
Das Script sucht sich entweder selbst die Route oder es wird mit einer GPX Datei gefüttert, die die geplante Route enthält – dieses kann bspw. ganz einfach bei [http://openrouteservice.org Openrouteservice.org] erzeugt werden. Schon sammelt es via [[OKAPI]] alle nötigen Daten zusammen. Es sendet auf Wunsch sogar die GPX Daten zu einer E-Mail Adresse. Ab 500 Caches wird eine weitere GPX Datei angelegt und versendet.&lt;br /&gt;
&lt;br /&gt;
Damit das Script funktioniert, muss GPSBabel installiert sein, es wird für den E-Mail Versand SendEmail, zum Skript-Downloand curl benötigt. Gestartet wird das Script dann ganz einfach im Terminal, wobei man diverse Parameter angeben muss/kann wie Benutzernamen, Start, Ziel.&lt;br /&gt;
&lt;br /&gt;
Folgende Angaben sollten für Start / Ziel funktionieren&lt;br /&gt;
* Koordinaten im Format lat,lng ohne Leerzeichen, auf . und , achten-&amp;gt; 48.321,9.123&lt;br /&gt;
* Ortsnamen&lt;br /&gt;
* Straße,Ortsnamen ohne Leerzeichen -&amp;gt; manchmal gehts, manchmal nicht&lt;br /&gt;
&lt;br /&gt;
Das Script rödelt dann kurz durch und anschließend befindet sich im Scriptverzeichnis das fertige GPX-File mit allen Caches entlang der vorgegebenen Route. Das kann dann ganz bequem mit der Software der eigenen Wahl weiter verarbeitet, direkt auf das GPS geschoben oder ans Handy versendet werden.&lt;br /&gt;
&lt;br /&gt;
== Die Installation unter Linux ==&lt;br /&gt;
[[Datei:Oc car.png|200px|thumb|right|Fertig durchgelaufenes Skript]]&lt;br /&gt;
Starte Terminal, Shortcut: Strg + Alt + T, das Terminal wird im home Verzeichnis geöffnet&lt;br /&gt;
&lt;br /&gt;
Lege ein neues Verzeichnis an mit&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir oc_car&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln ins Verzeichnis mit&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;cd oc_car&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pakete (unter Debian Linux und Derivaten) installieren - soweit nötig - mit &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install gpsbabel bc&amp;lt;/code&amp;gt;  &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install sendemail&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install curl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download Skript mit&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;curl https://raw.githubusercontent.com/kabegeo/oc_car/master/oc_car_0.3.1.sh &amp;gt; oc_car.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Skript ausführbar machen mit&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Sudo chmod 744 oc_car.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausführen mit&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;./oc_car.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem ersten Durchlauf wird die Datei oc_car.conf erstellt. Hier bitte E-Mail Daten hinterlegen, wenn E-Mail Versand erwünscht.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;oc_car.conf&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Bilder&amp;diff=5612</id>
		<title>Bilder</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Bilder&amp;diff=5612"/>
		<updated>2014-03-19T16:54:31Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:OC5E7A-2.jpg|miniatur|hochkant=1.2|Logbild von {{Cachelink|OC5E7A}}]]&lt;br /&gt;
In [[Cachebeschreibung (Listing)|Cachebeschreibungen]] und [[Das Onlinelog|Logs]] können Bilder hinzugefügt werden, zum Beispiel um einen Eindruck von der Umgebung des Caches zu vermitteln oder um die Cachesuche zu dokumentieren. Bei [[Cachearten#Webcam-Cache|Webcam-Caches]] gehört zu jedem Log auch eine Webcam-Aufnahme.&lt;br /&gt;
&lt;br /&gt;
Das Hinzufügen von Bildern zu deinen Cachebeschreibungen ist unter [[Erstellen einer Cachebeschreibung/ Listing#Bilder hinzufügen|Erstellen einer Cachebeschreibung]] beschrieben, wie du Logbilder hochlädst unter [[Das Onlinelog#Fotos hinzufügen|Das Onlinelog]]. Die Bilder dürfen maximal 150 KB groß sein und sind ggf. vor dem Hochladen mit einem Bildbearbeitungsprogramm zu verkleinern. Es werden die Dateiformate JPEG, GIF, PNG und BMP unterstützt.&lt;br /&gt;
&lt;br /&gt;
Bilder, deren längere Seite größer als 1024 Pixel ist, werden proportional verkleinert, so dass diese Seite 1024 Pixel misst. Unterstützt werden nur die angegebenen Bildformate deren Größe das genannte Maximum nicht überschreiten.&lt;br /&gt;
Dies ist eine neue Funktion. Bitte berichtet uns, falls sie noch nicht wie gewünscht funktioniert.&lt;br /&gt;
Die Funktion ist automatisiert und &#039;&#039;&#039;&#039;&#039;schert daher alles über einen Kamm&#039;&#039;&#039;&#039;&#039;. Es kann also zur Qualitätsverschlechterung Deiner Bilder kommen. Wenn Du das vermeiden willst, so solltest Du die Verkleinerung mit Deinen optimalen Werkzeugen vor dem Hochladen auf Deinem Rechner erledigen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Galerien ==&lt;br /&gt;
Logbilder erscheinen in verschiedenen Galerien:&lt;br /&gt;
* Die neuesten sechs Bilder direkt auf der [http://www.opencaching.de/ Startseite]. Dabei wird maximal ein Bild pro Benutzer und Tag sowie pro Cache und Tag angezeigt.&lt;br /&gt;
* Die neuesten 48 Bilder in auf der Seite „[http://www.opencaching.de/ Logbildgalerie]“, ereichbar im Menü der Startseite; maximal ein Bild pro Benutzer und Tag, das nicht das gleiche sein muss wie auf der Startseite;&lt;br /&gt;
* deine sechs neuesten Bilder in deinem [http://www.opencaching.de/myhome.php Benutzerprofil]&lt;br /&gt;
* alle deine hochgeladenen Logbilder über den Link [http://www.opencaching.de/myhome.php?allpics=1 alle anzeigen] in deinem (nicht-öffentlichen) Benutzerprofil&lt;br /&gt;
* alle hochgeladenen Bilder eines Benutzers – ausgenommen [[Spoiler]] – in dessen öffentlichem Benutzerprofil über den Link „Logbilder - alle anzeigen“, sofern er diesen nicht deaktiviert hat.&lt;br /&gt;
&lt;br /&gt;
In deinen [http://www.opencaching.de/mydetails.php Profileinstellungen] kannst du festlegen, ob deine persönliche Bildstatistik und -galerie für andere Benutzer sichtbar ist oder nicht.&lt;br /&gt;
&lt;br /&gt;
Die Bilder aus einer Galerie lassen sich durchblättern, sobald eines davon per Anklicken vergrößert wurde. Am einfachsten geht dies mit dem Mausrad oder mit den Pfeiltasten nach links und rechts.&lt;br /&gt;
&lt;br /&gt;
== Kartenvorschaubilder ==&lt;br /&gt;
Wenn du ein Bild zu einer Cachebeschreibung hochlädst kannst du ankreuzen, dass es sich um das Vorschaubild für die [[Cachekarte]] handelt. Dieses Bild erscheint links oben in der Kartenansicht, wenn jemand auf das Symbol des Caches klickt. War bereits ein anderes Vorschaubild gewählt, so wird dies auf der Karte durch das neue ersetzt.&lt;br /&gt;
&lt;br /&gt;
Die Darstellungsgröße der Vorschaubilder kann jeder Benutzer für sich in den Karteneinstellungen festlegen, und zwar in Prozent der Kartenfläche. Das heißt: Die Breite oder Höhe des Bildes wird dadurch nicht direkt begrenzt. Ein Panoramafoto erscheint z.B. breiter als ein „normales“ Bild im 4x3- oder 16x9-Format. Denkbar ist auch eine Collage mehrerer kleiner Bilder, die untereinader montiert sind und dann als Streifen am linken Kartenrand erscheinen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Spoiler Vorschau.png|miniatur|hochkant=0.8|Spoiler-Platzhalter]]&lt;br /&gt;
&lt;br /&gt;
== Platzhalter ==&lt;br /&gt;
Bei Bildanhängen in Cachebeschreibungen und in Galerien erscheinen Platzhalter, wenn ein Bild dort nicht als Miniatur dargestellt werden kann oder soll. Den [[Spoiler]]-Platzhalter hast du vielleicht schon in dem einen oder anderen Cachelisting gesehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Thumbnail-formaterror.png|hochkant=0.8|miniatur]]&lt;br /&gt;
Die Anzeige „Unbekanntes Dateiformat“ kann z.&amp;amp;nbsp;B. bei JPEG-Bildern erscheinen, deren Dateiformat-Variante vom Miniaturbildgenerator nicht verstanden wird.&lt;br /&gt;
&lt;br /&gt;
Die Bilder selbst sind immer anzeigbar, indem man auf den Platzhalter klickt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Bilder&amp;diff=5611</id>
		<title>Bilder</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Bilder&amp;diff=5611"/>
		<updated>2014-03-19T16:52:29Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:OC5E7A-2.jpg|miniatur|hochkant=1.2|Logbild von {{Cachelink|OC5E7A}}]]&lt;br /&gt;
In [[Cachebeschreibung (Listing)|Cachebeschreibungen]] und [[Das Onlinelog|Logs]] können Bilder hinzugefügt werden, zum Beispiel um einen Eindruck von der Umgebung des Caches zu vermitteln oder um die Cachesuche zu dokumentieren. Bei [[Cachearten#Webcam-Cache|Webcam-Caches]] gehört zu jedem Log auch eine Webcam-Aufnahme.&lt;br /&gt;
&lt;br /&gt;
Das Hinzufügen von Bildern zu deinen Cachebeschreibungen ist unter [[Erstellen einer Cachebeschreibung/ Listing#Bilder hinzufügen|Erstellen einer Cachebeschreibung]] beschrieben, wie du Logbilder hochlädst unter [[Das Onlinelog#Fotos hinzufügen|Das Onlinelog]]. Die Bilder dürfen maximal 150 KB groß sein und sind ggf. vor dem Hochladen mit einem Bildbearbeitungsprogramm zu verkleinern. Es werden die Dateiformate JPEG, GIF, PNG und BMP unterstützt.&lt;br /&gt;
&lt;br /&gt;
Bilder, deren längere Seite größer als 1024 Pixel ist, werden proportional verkleinert, so dass diese Seite 1024 Pixel misst. Unterstützt werden nur die angegebenen Bildformate deren Größe das genannte Maximum nicht überschreiten.&lt;br /&gt;
Dies ist eine neue Funktion. Bitte berichtet uns, falls sie noch nicht wie gewünscht funktioniert.&lt;br /&gt;
Die Funktion ist automatisiert und &#039;&#039;schert daher alles über einen Kamm&#039;&#039;. Es kann also zur Qualitätsverschlechterung Deiner Bilder kommen. Solltest Du das vermeiden wollen, so solltest Du die Verkleinerung mit Deinen optimalen Werkzeugen vor dem Hochladen auf Deinem Rechner erledigen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Galerien ==&lt;br /&gt;
Logbilder erscheinen in verschiedenen Galerien:&lt;br /&gt;
* Die neuesten sechs Bilder direkt auf der [http://www.opencaching.de/ Startseite]. Dabei wird maximal ein Bild pro Benutzer und Tag sowie pro Cache und Tag angezeigt.&lt;br /&gt;
* Die neuesten 48 Bilder in auf der Seite „[http://www.opencaching.de/ Logbildgalerie]“, ereichbar im Menü der Startseite; maximal ein Bild pro Benutzer und Tag, das nicht das gleiche sein muss wie auf der Startseite;&lt;br /&gt;
* deine sechs neuesten Bilder in deinem [http://www.opencaching.de/myhome.php Benutzerprofil]&lt;br /&gt;
* alle deine hochgeladenen Logbilder über den Link [http://www.opencaching.de/myhome.php?allpics=1 alle anzeigen] in deinem (nicht-öffentlichen) Benutzerprofil&lt;br /&gt;
* alle hochgeladenen Bilder eines Benutzers – ausgenommen [[Spoiler]] – in dessen öffentlichem Benutzerprofil über den Link „Logbilder - alle anzeigen“, sofern er diesen nicht deaktiviert hat.&lt;br /&gt;
&lt;br /&gt;
In deinen [http://www.opencaching.de/mydetails.php Profileinstellungen] kannst du festlegen, ob deine persönliche Bildstatistik und -galerie für andere Benutzer sichtbar ist oder nicht.&lt;br /&gt;
&lt;br /&gt;
Die Bilder aus einer Galerie lassen sich durchblättern, sobald eines davon per Anklicken vergrößert wurde. Am einfachsten geht dies mit dem Mausrad oder mit den Pfeiltasten nach links und rechts.&lt;br /&gt;
&lt;br /&gt;
== Kartenvorschaubilder ==&lt;br /&gt;
Wenn du ein Bild zu einer Cachebeschreibung hochlädst kannst du ankreuzen, dass es sich um das Vorschaubild für die [[Cachekarte]] handelt. Dieses Bild erscheint links oben in der Kartenansicht, wenn jemand auf das Symbol des Caches klickt. War bereits ein anderes Vorschaubild gewählt, so wird dies auf der Karte durch das neue ersetzt.&lt;br /&gt;
&lt;br /&gt;
Die Darstellungsgröße der Vorschaubilder kann jeder Benutzer für sich in den Karteneinstellungen festlegen, und zwar in Prozent der Kartenfläche. Das heißt: Die Breite oder Höhe des Bildes wird dadurch nicht direkt begrenzt. Ein Panoramafoto erscheint z.B. breiter als ein „normales“ Bild im 4x3- oder 16x9-Format. Denkbar ist auch eine Collage mehrerer kleiner Bilder, die untereinader montiert sind und dann als Streifen am linken Kartenrand erscheinen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Spoiler Vorschau.png|miniatur|hochkant=0.8|Spoiler-Platzhalter]]&lt;br /&gt;
&lt;br /&gt;
== Platzhalter ==&lt;br /&gt;
Bei Bildanhängen in Cachebeschreibungen und in Galerien erscheinen Platzhalter, wenn ein Bild dort nicht als Miniatur dargestellt werden kann oder soll. Den [[Spoiler]]-Platzhalter hast du vielleicht schon in dem einen oder anderen Cachelisting gesehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Thumbnail-formaterror.png|hochkant=0.8|miniatur]]&lt;br /&gt;
Die Anzeige „Unbekanntes Dateiformat“ kann z.&amp;amp;nbsp;B. bei JPEG-Bildern erscheinen, deren Dateiformat-Variante vom Miniaturbildgenerator nicht verstanden wird.&lt;br /&gt;
&lt;br /&gt;
Die Bilder selbst sind immer anzeigbar, indem man auf den Platzhalter klickt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Bilder&amp;diff=5610</id>
		<title>Bilder</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Bilder&amp;diff=5610"/>
		<updated>2014-03-12T15:50:22Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:OC5E7A-2.jpg|miniatur|hochkant=1.2|Logbild von {{Cachelink|OC5E7A}}]]&lt;br /&gt;
In [[Cachebeschreibung (Listing)|Cachebeschreibungen]] und [[Das Onlinelog|Logs]] können Bilder hinzugefügt werden, zum Beispiel um einen Eindruck von der Umgebung des Caches zu vermitteln oder um die Cachesuche zu dokumentieren. Bei [[Cachearten#Webcam-Cache|Webcam-Caches]] gehört zu jedem Log auch eine Webcam-Aufnahme.&lt;br /&gt;
&lt;br /&gt;
Das Hinzufügen von Bildern zu deinen Cachebeschreibungen ist unter [[Erstellen einer Cachebeschreibung/ Listing#Bilder hinzufügen|Erstellen einer Cachebeschreibung]] beschrieben, wie du Logbilder hochlädst unter [[Das Onlinelog#Fotos hinzufügen|Das Onlinelog]]. Die Bilder dürfen maximal 150 KB groß sein und sind ggf. vor dem Hochladen mit einem Bildbearbeitungsprogramm zu verkleinern. Es werden die Dateiformate JPEG, GIF, PNG und BMP unterstützt.&lt;br /&gt;
&lt;br /&gt;
Bilder, deren längere Seite größer als 1024 Pixel ist, werden proportional verkleinert, so dass diese Seite 1024 Pixel misst. Unterstützt werden nur die angegebenen Bildformate deren Größe das genannte Maximum nicht überschreiten.&lt;br /&gt;
Dies ist eine neue Funktion. Bitte berichtet uns, falls sie noch nicht wie gewünscht funktioniert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Galerien ==&lt;br /&gt;
Logbilder erscheinen in verschiedenen Galerien:&lt;br /&gt;
* Die neuesten sechs Bilder direkt auf der [http://www.opencaching.de/ Startseite]. Dabei wird maximal ein Bild pro Benutzer und Tag sowie pro Cache und Tag angezeigt.&lt;br /&gt;
* Die neuesten 48 Bilder in auf der Seite „[http://www.opencaching.de/ Logbildgalerie]“, ereichbar im Menü der Startseite; maximal ein Bild pro Benutzer und Tag, das nicht das gleiche sein muss wie auf der Startseite;&lt;br /&gt;
* deine sechs neuesten Bilder in deinem [http://www.opencaching.de/myhome.php Benutzerprofil]&lt;br /&gt;
* alle deine hochgeladenen Logbilder über den Link [http://www.opencaching.de/myhome.php?allpics=1 alle anzeigen] in deinem (nicht-öffentlichen) Benutzerprofil&lt;br /&gt;
* alle hochgeladenen Bilder eines Benutzers – ausgenommen [[Spoiler]] – in dessen öffentlichem Benutzerprofil über den Link „Logbilder - alle anzeigen“, sofern er diesen nicht deaktiviert hat.&lt;br /&gt;
&lt;br /&gt;
In deinen [http://www.opencaching.de/mydetails.php Profileinstellungen] kannst du festlegen, ob deine persönliche Bildstatistik und -galerie für andere Benutzer sichtbar ist oder nicht.&lt;br /&gt;
&lt;br /&gt;
Die Bilder aus einer Galerie lassen sich durchblättern, sobald eines davon per Anklicken vergrößert wurde. Am einfachsten geht dies mit dem Mausrad oder mit den Pfeiltasten nach links und rechts.&lt;br /&gt;
&lt;br /&gt;
== Kartenvorschaubilder ==&lt;br /&gt;
Wenn du ein Bild zu einer Cachebeschreibung hochlädst kannst du ankreuzen, dass es sich um das Vorschaubild für die [[Cachekarte]] handelt. Dieses Bild erscheint links oben in der Kartenansicht, wenn jemand auf das Symbol des Caches klickt. War bereits ein anderes Vorschaubild gewählt, so wird dies auf der Karte durch das neue ersetzt.&lt;br /&gt;
&lt;br /&gt;
Die Darstellungsgröße der Vorschaubilder kann jeder Benutzer für sich in den Karteneinstellungen festlegen, und zwar in Prozent der Kartenfläche. Das heißt: Die Breite oder Höhe des Bildes wird dadurch nicht direkt begrenzt. Ein Panoramafoto erscheint z.B. breiter als ein „normales“ Bild im 4x3- oder 16x9-Format. Denkbar ist auch eine Collage mehrerer kleiner Bilder, die untereinader montiert sind und dann als Streifen am linken Kartenrand erscheinen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Spoiler Vorschau.png|miniatur|hochkant=0.8|Spoiler-Platzhalter]]&lt;br /&gt;
&lt;br /&gt;
== Platzhalter ==&lt;br /&gt;
Bei Bildanhängen in Cachebeschreibungen und in Galerien erscheinen Platzhalter, wenn ein Bild dort nicht als Miniatur dargestellt werden kann oder soll. Den [[Spoiler]]-Platzhalter hast du vielleicht schon in dem einen oder anderen Cachelisting gesehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Thumbnail-formaterror.png|hochkant=0.8|miniatur]]&lt;br /&gt;
Die Anzeige „Unbekanntes Dateiformat“ kann z.&amp;amp;nbsp;B. bei JPEG-Bildern erscheinen, deren Dateiformat-Variante vom Miniaturbildgenerator nicht verstanden wird.&lt;br /&gt;
&lt;br /&gt;
Die Bilder selbst sind immer anzeigbar, indem man auf den Platzhalter klickt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Wie_finde_ich_meinen_ersten_Cache%3F&amp;diff=5609</id>
		<title>Wie finde ich meinen ersten Cache?</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Wie_finde_ich_meinen_ersten_Cache%3F&amp;diff=5609"/>
		<updated>2014-03-06T17:25:43Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Einen Geocache auf das Navigationsgerät übertragen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Erste Schritte auf Opencaching.de&lt;br /&gt;
&lt;br /&gt;
Um einen Cache auf Openaching.de zu suchen, muss man sich &#039;&#039;&#039;nicht&#039;&#039;&#039; [[Registrierung|registrieren]]!&lt;br /&gt;
&lt;br /&gt;
== Einen Cache aus dem Internet heraussuchen ==&lt;br /&gt;
 &lt;br /&gt;
=== Variante 1: Das [[Suchformular]] ===&lt;br /&gt;
&#039;&#039;&#039;Von der [http://www.opencaching.de/index.php?id=63 Opencaching Startseite] aus den Button &#039;&#039;Caches&#039;&#039; klicken.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dieser öffnet die Auswahl an Parametern nach denen gesucht wird. Dort muss  zunächst eine Auswahl getroffen werden, welche Geocaches gewünscht werden. Für den Anfang eignen sich am besten zunächst Caches des Typs [[Cachearten|normaler Geocache]] in den [[Behältergrößen|Größen]] Klein oder Normal, mit [[Schwierigkeitswertung|Schwierigkeits-]] und [[Geländewertung]] 1–2. &lt;br /&gt;
Als nächster Schritt wird dann die Gegend gewählt, in der sich der Geocache befinden soll.&lt;br /&gt;
Diese bestimmt man zu Beginn am besten über die Postleitzahl oder den Ortsnamen. Hierzu muss in der obersten Reihe bei Ausgabe sortieren nach: Entfernung angehakt sein.&lt;br /&gt;
&lt;br /&gt;
Ist dies eingegeben, musst du nur noch den dahinter liegenden Button Suchen anklicken, und schon wird die Liste der nächstgelegenen Caches in aufsteigender Entfernung angezeigt. Von hier aus können die einzelnen Geocaches angeklickt und näher angeschaut werden. &lt;br /&gt;
&lt;br /&gt;
Rechts oben in der Cachebeschreibung (auch &#039;&#039;Listing&#039;&#039; genannt) befindet sich eine kleine Karte. Klickt man einen der Links darunter an, öffnet sich eine größere Karte, auf der du erkennen kannst, in welcher Umgebung der Cache liegt. Dort findest du auch weitere Caches in der Nähe.&lt;br /&gt;
&lt;br /&gt;
=== Variante 2: Die Karte ===&lt;br /&gt;
&#039;&#039;&#039;Von der [http://www.opencaching.de/index.php?id=63 Opencaching Startseite] aus den Button &#039;&#039;Karte&#039;&#039; klicken.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es öffnet sich eine [[Cachekarte|Kartenansicht]], auf der Geocaches als Symbole eingezeichnet sind. Die Karte kann, wie z. B. von Google Maps gewohnt, mit der Maus bedient werden (verschieben, zoomen durch das Mausrad, usw.); zusätzlich kann man im Suchfeld nach Orten suchen. &lt;br /&gt;
Klickt man eines der Geocachesymbole auf der Karte an, öffnet sich ein Popupfenster mit den wichtigsten Informationen zum betreffenden Geocache; mit einem Klick auf den Namen des Geocaches gelangt man direkt zur vollständigen Cachebeschreibung.&lt;br /&gt;
&lt;br /&gt;
Fortgeschrittene Nutzer können Filter benutzen um nur bestimmte Geocaches auf der Karte anzuzeigen; die Filtereinstellungen befinden sich direkt unterhalb der Kartenansicht. Möchte man beispielsweise nur Geocaches angezeigt bekommen, die einen Behälter haben, in den auf jeden Fall [[Tauschgegenstände]] passen, entfernt man aus der Liste &amp;quot;CACHE BEHÄLTER&amp;quot; alle Häkchen bis auf diejenigen bei &#039;&#039;klein&#039;&#039;, &#039;&#039;normal&#039;&#039;, &#039;&#039;groß&#039;&#039; und &#039;&#039;extrem groß&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Einen Geocache auf das Navigationsgerät übertragen ==&lt;br /&gt;
Ist ein bestimmter Geocache ausgewählt, geht es wie folgt weiter:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Cachedownload.png|thumb|rechts|Download-Buttons im Listing|400px]]&lt;br /&gt;
[[GPS-Gerät]] per USB-Kabel mit dem PC verbinden, und warten bis der PC dieses erkannt hat. Falls es sich um ein Garmin-Gerät handelt: Im Listing unter dem ersten Datenblock auf &#039;&#039;&#039;An GPS-Gerät senden&#039;&#039;&#039; klicken, und schon wird die Cachebeschreibung übertragen. Vor der ersten Übertragung muss möglicherweise noch ein „Plugin“ für das entsprechende Gerät heruntergeladen werden. In diesem Fall einfach der dortigen Menüführung folgen.&lt;br /&gt;
&lt;br /&gt;
Wenn es kein Garmin-Gerät ist, kannst du Wegpunkt und Koordinaten dort entweder von Hand eingeben, oder du überträgst das Listing als [[GPX-Datei]]. Dazu lädst du die Daten mit dem Knopf &#039;&#039;&#039;Download als …&#039;&#039;&#039; (Auswahl: GPX) herunter und mit einem zusätzlichen Programm wie [[OpenCacheManager]] auf das GPS-Gerät. Wahrscheinlich lag deinem Gerät auch entsprechende Software bei.&lt;br /&gt;
&lt;br /&gt;
Ist der Geocache fertig übertragen, kann das Gerät abgestöpselt werden und der Outdoorteil kann beginnen. &#039;&#039;&#039;Für den Anfang empfiehlt es sich immer, das Listing noch auszudrucken und mitzunehmen.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Kleiner Tip: Viele Geocaches haben sog. [[Hinweise|verschlüsselte Hinweise]]. Diese kann man, wenn man sie nutzen möchte (für Anfänger auf jeden Fall empfohlen) vor dem Ausdruck entschlüsseln, indem man in der Cachebeschreibung auf &#039;&#039;&#039;Entschlüsseln&#039;&#039;&#039; klickt.&lt;br /&gt;
&lt;br /&gt;
== Der Outdoorteil ==&lt;br /&gt;
Ist der Geoache auf das Gerät überspielt, kann der Outdoorteil beginnen. &lt;br /&gt;
&lt;br /&gt;
Zunächst auf dem [[GPS-Gerät]] den zu suchenden Geoache auswählen. Dies funktioniert bei jedem Gerät anders, Bedienungsanleitung beachten. Meist gibt es eine Funktion Suche. In dieser „Geocaches“ auswählen und den gewünschten Geocache anwählen. Los drücken und ab auf die Suche.&lt;br /&gt;
&lt;br /&gt;
Viele Geräte haben ein Kompassfeld, in dem man dann die Annäherung an das Ziel in einem der Datenfelder anzeigen lassen und ablesen kann. &lt;br /&gt;
Zeigt dieses null Meter an, steht man nicht automatisch vor dem Geocache, auch wenn das schön wäre. Es gibt immer gewisse Abweichungen in den Koordinaten durch [[GPS#Genauigkeit|Schwankungen der Empfangsqualität]] zu rechnen – 5–10&amp;amp;nbsp;Meter Abweichung sind normal, aber auch 20&amp;amp;nbsp;Meter kommen vor. Daher ist vorsichtiges Suchen angesagt, wenn man vor Ort angekommen ist. Hier kann der entschlüsselte Hinweis eine weitere Unterstützung sein. Bitte stets vorsichtig suchen, die [[Naturschutz|Natur]] wird es dir danken. Wenn andere Leute (nach Harry Potter „Muggels“ benannt) in der Nähe sind, besser erst mal warten bis diese verschwunden sind und dann suchen. Nicht jeder hat Verständnis für unser Hobby. Werden Verstecke durch unvorsichtiges Suchen verrraten, kommt es nicht selten vor, dass sie ausgeraubt („gemuggelt“) werden.&lt;br /&gt;
&lt;br /&gt;
== Dose gefunden – und was jetzt? ==&lt;br /&gt;
&#039;&#039;&#039;Erst mal herzlichen Glückwunsch, Du hast deinen ersten Geocache gefunden!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der Dose befindet sich immer mindestens das [[Logbuch]]. In diesem verewigt man sich mit dem Usernamen, den man sich bei der [[Registrierung]] zugelegt hat, Datum und evtl. Uhrzeit. Befinden sich [[Tauschgegenstände]] in der Dose, kann nach Belieben etwas getauscht werden (besonders beliebt bei Kindern), dabei aber bitte immer &#039;&#039;&#039;gleichwertig, oder höherwertig&#039;&#039;&#039; tauschen. Nichts ist so frustrierend, gerade für Kinder, wie eine Dose voll Schrott. &lt;br /&gt;
Es können sich auch sog. [[Reisende]] in der Dose befinden. Diese können ohne Tausch mitgenommen werden, um sie zu einem anderen Geocache reisen zu lassen. Bitte aber &#039;&#039;&#039;nur dann&#039;&#039;&#039; Reisende mitnehmen, wenn man sie auch wirklich ordnungsgemäß [[log]]gen will.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist dies alles abgeschlossen, wird die Dose wieder versteckt, wie sie vorgefunden wurde. Die Tarnung darf natürlich leicht verbessert werden falls die Dose schlecht getarnt war, aber &#039;&#039;&#039;&#039;&#039;keinesfalls&#039;&#039;&#039;&#039;&#039; soll eine Dose [[Fachjargon#umverstecken|an einer anderen Stelle versteckt]] werden, auch wenn eine andere Stelle geeigneter erscheint. &#039;&#039;&#039;Einzige Ausnahme:&#039;&#039;&#039; Die Dose war offensichtlich nicht mehr in ihrem Versteck und lag offen herum. Dann ist es sinnvoll sie dort zu verstecken, wo man vermutet, dass sie vorher versteckt war. In diesem Fall sollte man am besten zusätzlich noch den [[Owner]] darüber informieren, wie man die Dose vorgefunden und wie man sie versteckt hat (am besten mit Fotos). Sollte es sich dann nicht um das richtige Versteck handeln, kann der Owner darauf reagieren, aber der Cache ist auf jeden Fall erst einmal gerettet.&lt;br /&gt;
&lt;br /&gt;
== Und danach? ==&lt;br /&gt;
&#039;&#039;&#039;Heim zum [[Das Onlinelog|Onlinelog]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Szukanie skrzynki]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Smartphone-Apps_f%C3%BCr_Opencaching.de&amp;diff=5547</id>
		<title>Smartphone-Apps für Opencaching.de</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Smartphone-Apps_f%C3%BCr_Opencaching.de&amp;diff=5547"/>
		<updated>2013-12-21T14:57:20Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Seite beschreibt Apps für das [[Smartphone-Caching]] auf Opencaching.de.&lt;br /&gt;
&lt;br /&gt;
Inzwischen ist auch das [[Das Onlinelog|Loggen]] über eine App möglich. Aber nicht alle Apps unterstützen diese Möglichkeit. Des weiteren gibt es einige Möglichkeiten, OC-Caches auf dein Handy zu bringen. Hierzu zeigen wir, wie man die GPX Datei importiert. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Siehe auch:&#039;&#039; [[Wie erhalte ich eine GPX-Datei?]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
Aktuell ist ein Loggen über eine App nur mit [[OKAPI]] möglich.&lt;br /&gt;
&lt;br /&gt;
=== BikeAtor ===&lt;br /&gt;
* [http://www.bikeator.com/ BikeAtor]&lt;br /&gt;
* [https://play.google.com/store/apps/details?id=com.bikeator.bikeator_alpha BikeAtor bei Google play]&lt;br /&gt;
&lt;br /&gt;
Wenn Opencaching.de in den Einstellungen aktiviert ist, dann können über das Popupmenü auf der Karte (langes Drücken) Geocaches von Opencaching.de heruntergeladen werden. Die Cachebeschreibungen (ohne Bilder) sind dann Offline verfügbar. Loggen über [[OKAPI]] ist ebenfalls ab Version 0.1.0e möglich.&lt;br /&gt;
&lt;br /&gt;
==== Geocaches installieren für Offlinenutzung ====&lt;br /&gt;
BikeAtor speichert alle heruntergeladenen Geocaches in einer Datenbank (Ohne Bilder).&lt;br /&gt;
&lt;br /&gt;
==== Karten installieren für Offlinenutzung ====&lt;br /&gt;
BikeAtor speichert alle heruntergeladenen Bilder in einer Datenbank für den Offlinegebrauch. Über das Popupmenü auf der Karte, kann ein Kartenausschnitt in weiteren Zoomstufen herunter geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== c:geo ===&lt;br /&gt;
* [http://www.cgeo.org/ c:geo]&lt;br /&gt;
* [https://play.google.com/store/apps/details?id=cgeo.geocaching c:geo bei Google play]&lt;br /&gt;
&lt;br /&gt;
==== Direkter Zugriff ====&lt;br /&gt;
Ab der Version 2013.08.24 hat c:geo einen direkten Zugriff auf die Cachedatenbank von Opencaching.de via [[OKAPI]].&lt;br /&gt;
Über &#039;Menü&#039; &amp;gt; &#039;Dienste&#039; kann man Opencaching.de einfach aktivieren. Nun hat man alle Möglichkeiten offen. &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
CgeoMenue.jpg |Menü --&amp;gt; Einstellungen&lt;br /&gt;
CgeoEin1.jpg |Dienste auswählen&lt;br /&gt;
CgeoOC1.jpg |Natürlich Opencaching.de&lt;br /&gt;
CgeoOC2.jpg |&#039;&#039;&#039;1&#039;&#039;&#039; Aktivieren und danach noch &#039;&#039;&#039;2&#039;&#039;&#039; c:geo autorisieren&lt;br /&gt;
CgeoOC3.jpg |Die Autoriersung starten, dann öffnet sich automatisch&lt;br /&gt;
CgeoOC4.jpg |die OC Website mit einem Code den man kopieren muss (ggf. vorher noch Opencaching.de am Handy einloggen)&lt;br /&gt;
CgeoOC5.jpg |Einfügen und dann Fertig. &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Ab jetzt kannst du alle OC-Caches mit c:geo unterwegs finden und auch loggen! Da aber nicht immer ein gutes Netz vorhanden ist, kann man die Caches auch vorab über eine .[[Abkürzungen#GPX|gpx]] Datei importieren.&lt;br /&gt;
&lt;br /&gt;
==== GPX Import ====&lt;br /&gt;
Kopiere die .[[Abkürzungen#GPX|gpx]] Datei auf dein Handy am besten nach /sdcard/gpx oder falls du diesen nicht findest in einen anderen Ordner auf der SD Karte.&lt;br /&gt;
&lt;br /&gt;
Vorab kann es empfehlenswert sein, in den Einstellungen die Häkchen bei den beiden Statischen Karten-Speicherungen zu entfernen. Das Laden der Statischen Karten benötigt teilweise viel Zeit.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
CgeoMenue.jpg |Menü --&amp;gt; Einstellungen&lt;br /&gt;
CgeoEin2.jpg |--&amp;gt; Offlinedaten&lt;br /&gt;
Cgeooff.jpg |die Statischen Karten abwählen&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Dann kannst Du beginnen, die GPX Datei zu importieren.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Cgeoeinstellung21.png|Gespeicherte Caches&lt;br /&gt;
Cgeoeinstellung22.png|Menü --&amp;gt; Verwalten (Disketten Symbol)&lt;br /&gt;
Cgeoeinstellung23.png|Importiere GPX Datei&lt;br /&gt;
Cgeoeinstellung24.png|c:geo durchsucht nun den Speicher&lt;br /&gt;
Cgeoeinstellung25.png|Datei auswählen, c:geo lädt nun die Caches. Das kann etwas dauern. &#039;&#039;&#039;Happy Opencaching&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um nachverfolgen zu können, welche Caches man bereits gefunden hat, kann man die gefundenen Caches in eine andere Liste verschieben.&lt;br /&gt;
&lt;br /&gt;
==== Listen erstellen ====&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Cgeoeinstellung21.png|Wähle gespeicherte Caches&lt;br /&gt;
Cgeoliste1.png|In der Grundeinstellung ist nur die Standardliste vorhanden. Drücke kurz darauf &lt;br /&gt;
Cgeoliste2.png|und es öffnet sich ein Menü, bei dem du eine Neue Liste erstellen kannst.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es empfehlen sich zum Beispiel die Listen&lt;br /&gt;
&lt;br /&gt;
* OC&lt;br /&gt;
* GC&lt;br /&gt;
* Zum Loggen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Cgeoliste4.png|Einen Cache kannst du verschieben, indem du lange auf ihn drückst,&lt;br /&gt;
Cgeoliste3.png|aus der Liste dann &#039;Verschieben&#039; auswählst und dann die Liste aussuchst, in die du den Cache verschieben willst.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Zuhause kannst du dann die gefundenen Caches loggen.&lt;br /&gt;
&lt;br /&gt;
=== Columbus ===&lt;br /&gt;
* [http://columbus.spacebreak.sk/ Columbus]&lt;br /&gt;
* [https://play.google.com/store/apps/details?id=geocaching.columbus Columbus bei Google play]&lt;br /&gt;
{{Überarbeiten|Loggen ist Möglich}}&lt;br /&gt;
&lt;br /&gt;
==== Unterwegssuche ====&lt;br /&gt;
&amp;lt;gallery&amp;gt; &lt;br /&gt;
Columbussuche1.png|Markiere das obere linke Symbol&amp;lt;br&amp;gt; Menü --&amp;gt; Suche&lt;br /&gt;
Columbussuche2.png|Nächsten Online&lt;br /&gt;
Columbussuche4.png|Entfernung überprüfen, Koordinaten automatisch, Cache site kurz drücken&lt;br /&gt;
Columbussuche3.png|opencaching.de auswählen OK --&amp;gt; Caches werden geladen und angezeigt &amp;lt;br /&amp;gt; &#039;&#039;&#039;Happy Caching!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GPX Import ====&lt;br /&gt;
Du benötigst eine GPX-Datei von opencaching.de, siehe dazu [[Wie_erhalte_ich_eine_GPX-Datei%3F|Wie erhalte ich eine GPX-Datei?]].&lt;br /&gt;
Diese muss auf dem Handy, oder alternativ in einem Dropbox-Konto entpackt gespeichert sein.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Columbusgpx1.png|Markiere das obere rechte Symbol und danach GPX importieren&lt;br /&gt;
Columbusgpx2.png|ggf. Gruppe auswählen, Cache Site kann ignoriert werden, auf Ordner klicken&lt;br /&gt;
Columbusgpx3.png|Dropbox Konto öffnen, verbinden, Datei auswählen, sie wird geladen, bzw. Datei von der SD-Karte auswählen &lt;br /&gt;
Columbusgpx4.png|den Import Starten &#039;&#039;&#039;Happy Caching&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GeOrg ===&lt;br /&gt;
* [http://android.ranitos.de/ Georg]&lt;br /&gt;
* [https://play.google.com/store/apps/details?id=de.ranitos.georg GeOrg bei Google play]&lt;br /&gt;
* [https://play.google.com/store/apps/details?id=de.ranitos.georg.connector.oc GeOrg - opencaching.de bei Google play]&lt;br /&gt;
&lt;br /&gt;
GeOrg verwaltet Caches in einer (oder mehreren) &amp;quot;CacheDB&amp;quot;. Caches, die in der &amp;quot;CacheDB&amp;quot; vorhanden sind, sind auf dem Smartphone gespeichert und können ohne Datenverbindung abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Caches von Opencaching.de können auf zwei Arten in die &amp;quot;CacheDB&amp;quot; gelangen: (1) über den OC-Connector, der eine Online-Verbindung mit Opencaching.de herstellt, oder (2) über den Import von GPX-Dateien. Die Variante über den OC-Connector ist vor allem dann praktisch, wenn man unterwegs ist und einzelne OC-Caches in der Umgebung suchen möchte. Über den GPX-Import hingegen können große Mengen an Caches auf einen Schlag in die &amp;quot;CacheDB&amp;quot; gebracht werden.&lt;br /&gt;
&lt;br /&gt;
==== Online Zugriff auf Opencaching.de via Connector ====&lt;br /&gt;
Damit GeOrg online auf die Cache-Datenbank von Opencaching.de zugreifen kann, muss zuerst der &amp;quot;OC-Connector&amp;quot; über &amp;quot;Google play&amp;quot; installiert werden ([https://play.google.com/store/apps/details?id=de.ranitos.georg.connector.oc GeOrg - opencaching.de]) und im Optionsmenü unter den &amp;quot;Connector - Options&amp;quot; aktiviert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
georg-optionsmenue.png|Im &amp;quot;Optionsmenü&amp;quot;... &lt;br /&gt;
georg-connector-aktivieren.png|&amp;quot;OC-Connector&amp;quot; aktivieren&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun kann der OC-Connector in der Kartenansicht als Quelle ausgewählt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
georg-karte.png|In der Kartenansicht...&lt;br /&gt;
georg-karte-menue.png|das Menü öffnen...&lt;br /&gt;
georg-karte-connector.png|und den OC-Connector als Quelle auswählen.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ab sofort zeigt die Karte Geocaches von Opencaching.de an!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
georg-karte-caches.png|Cache antippen...&lt;br /&gt;
georg-karte-popup.png|Ein Popup mit den Cacheinfos erscheint. Klickt man diesen an...&lt;br /&gt;
georg-karte-import.png|öffnet sich ein Menü, mit dem man den Cache auf&#039;s Smartphone importieren kann.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternativ können Caches über die &amp;quot;In der Nähe&amp;quot;-Ansicht gesucht werden:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
georg-connector-naechste.png|Nächste Caches bei Opencaching.de&lt;br /&gt;
georg-naechste-import.png|Auch von hier kann man Caches auf&#039;s Smartphone importieren&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Importierte Caches landen in der &amp;quot;CacheDB&amp;quot; und können von dort aus angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
georg-listing.png|Listing&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Import von GPX-Dateien ====&lt;br /&gt;
Kopiere dazu eine GPX-Datei in den Speicher des Smartphones.&lt;br /&gt;
&lt;br /&gt;
Diese kann in der &amp;quot;CacheDB&amp;quot;-Ansicht mit dem Menüpunkt &amp;quot;GPX-Import&amp;quot; importiert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
georg-cachedb.png|In der &amp;quot;CacheDB&amp;quot; auf &amp;quot;GPX-Import&amp;quot; tippen&lt;br /&gt;
georg-cachedb-import.png|Die passende GPX-Datei wählen...&lt;br /&gt;
georg-cachedb-importing.png|...und importieren lassen.&lt;br /&gt;
georg-cachedb-imported.png|Die Caches der GPX-Datei sind jetzt der &amp;quot;CacheDB&amp;quot; vorhanden...&lt;br /&gt;
georg-listing.png|und können von dort aus angezeigt werden.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Locus ===&lt;br /&gt;
* [http://www.locusmap.eu/?lang=de Locus]&lt;br /&gt;
* [https://play.google.com/store/apps/details?id=menion.android.locus.pro&amp;amp;hl=de Locus Pro bei Google play]&lt;br /&gt;
* [https://play.google.com/store/apps/details?id=menion.android.locus&amp;amp;feature=more_from_developer#?t=W251bGwsMSwyLDEwMiwibWVuaW9uLmFuZHJvaWQubG9jdXMiXQ.. Locus Free bei Google play]&lt;br /&gt;
&lt;br /&gt;
Locus ist ein vielfältige Kartenanwendung, unter anderem auch für Geocaching.&lt;br /&gt;
Es stehen eine kostenlose und eine kostenpflichtige Version bei Google Play zum Download bereit.&lt;br /&gt;
&lt;br /&gt;
Caches von Opencaching.de können über den Import von GPX-Dateien unter Locus angezeigt und verwaltet werden. Der Import ist unkompliziert und schnell.&lt;br /&gt;
&lt;br /&gt;
==== Import von GPX-Dateien ====&lt;br /&gt;
Kopiere dazu eine GPX-Datei in den Speicher des Smartphones.&lt;br /&gt;
&lt;br /&gt;
Diese kann in der Daten-Ansicht importiert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Locus A - Karte.png|In der Kartenansicht auf das Datenbanksymbol tippen&lt;br /&gt;
Locus B - Daten.png|Über die &amp;quot;+&amp;quot; Schaltfläche eine neue Kategorie hinzufügen, z.B. &amp;quot;oc.de&amp;quot;&lt;br /&gt;
Locus D - Import_auswählen.png|Durch tippen auf die drei Punkte das Importmenü aufrufen&lt;br /&gt;
Locus E - Datei_auswählen.png|Die GPX-Datei unter &amp;quot;LOKALE DATEI&amp;quot; auswählen und laden&lt;br /&gt;
Locus F - Import_starten.png|Kategorie auswählen, Haken unter &amp;quot;Nach dem Import auf der Karte zeigen&amp;quot; setzen und &amp;quot;Importieren&amp;quot; anwählen&lt;br /&gt;
Locus G - Cache_auswählen.png|Cachesymbol antippen&lt;br /&gt;
Locus H - Kurzansicht.png|Kurzansicht des Caches, Listing aufrufen durch das Symbol ganz links&lt;br /&gt;
Locus I - Cachelisting.png|Ansicht der D/T-Wertung, Behältergröße und Attributen -&amp;gt; Listing und Logs in extra Reiter&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Karten installieren für Offlinenutzung ====&lt;br /&gt;
Locus unterstützt vektorbasiertes Kartenmaterial. Im Vergleich zu Karten, die aus einzelnen Kacheln bestehen, kann so deutlich Speicher eingespart werden.&lt;br /&gt;
&lt;br /&gt;
Auf OSM basierende Karten werden auf verschiedenen Seiten kostenlos angeboten wie z.B.&lt;br /&gt;
&lt;br /&gt;
* [http://www.openandromaps.org openandroidmaps]&lt;br /&gt;
* [http://www.vectormaps4locus.eu vectormaps4locus]&lt;br /&gt;
* [http://www.easyclasspage.de/maps/index.html Freizeitkarte]&lt;br /&gt;
&lt;br /&gt;
und einigen mehr.&lt;br /&gt;
&lt;br /&gt;
Gerade die Freizeitkarte läßt sich sehr komfortabel in Locus nutzen. Man kann diese Karten auf den PC laden, entpacken und auf die Speicherkarte des Handys laden, oder direkt den Link im Android-Browser öffnen und damit die Karten und das Theme direkt an die richtige Stelle auf der Speicherkarte ablegen.&lt;br /&gt;
&lt;br /&gt;
Automatischer Download über Locus:&lt;br /&gt;
* im Android-Browser die [http://www.easyclasspage.de/maps/index.html Freizeitkarte] aufrufen&lt;br /&gt;
* gewünschte Karte auswählen und über den entsprechenden Locus-Button den Download starten&lt;br /&gt;
* Karte und Design werden direkt an richtiger Stelle auf der Karte abgelegt&lt;br /&gt;
* Einstellung unter Locus: Einstellungen → Karte-Erweitert → Thema der Karte → Freizeitkarte auswählen&lt;br /&gt;
 &lt;br /&gt;
Manueller Download über PC:&lt;br /&gt;
* gewünschte Karte(n) auswählen und herunterladen&lt;br /&gt;
* Datei(n) entpacken&lt;br /&gt;
* Karte (*.map) auf SD Karte kopierenn → Locus/mapsVector&lt;br /&gt;
* Design herunterladen&lt;br /&gt;
* Design entpacken&lt;br /&gt;
* Design (Verzeichnis freizeitkarte) auf SD Karte kopieren → Locus/mapsVector/_themes&lt;br /&gt;
* Einstellung unter Locus: Einstellungen → Karte-Erweitert → Thema der Karte → Freizeitkarte auswählen&lt;br /&gt;
&lt;br /&gt;
Diese Karten können anschließend auch unter c:geo genutzt werden.&lt;br /&gt;
&lt;br /&gt;
=== OCM ===&lt;br /&gt;
[http://opencachemanage.sourceforge.net/ocmmobileedition.html OCM Mobile Edition]&lt;br /&gt;
&lt;br /&gt;
Vom OpenCacheManager gibt es auch eine Mobile Edition. Diese wird mit den Daten der [[OpenCacheManager|PC-Version]] versorgt.&lt;br /&gt;
&lt;br /&gt;
{{Unvollständig|Screenshots, Beschreibung}}&lt;br /&gt;
&lt;br /&gt;
== iOS ==&lt;br /&gt;
* [http://www.btstsoft.nl/gcbuddy4oc/ Geocaching Buddy 4 OC]&lt;br /&gt;
&lt;br /&gt;
== WindowsPhone ==&lt;br /&gt;
* [http://www.windowsphone.com/de-de/store/app/me-caching-geo-oc-de/437b17fe-b701-44cd-bc90-2b93d4a19119 Me Caching Geo OC.DE]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
[[Kategorie:Geocaching-Software]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|iOS und Windows Phone}}&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Newsletter&amp;diff=5534</id>
		<title>Newsletter</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Newsletter&amp;diff=5534"/>
		<updated>2013-11-17T08:32:28Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Wie kann ich mich vom Newsletter abmelden? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um über Neuerungen, Updates, neue Features und sonstige Themen rund um [[Opencaching.de]] zu informieren, wurde im November/ Dezember 2013 eine Newsletterverwaltung eingeführt. Die Häufigkeit des Newsletters ist pro Jahr auf max. 5 Aussendungen begrenzt.&lt;br /&gt;
&lt;br /&gt;
== Wer empfängt den Newsletter? ==&lt;br /&gt;
Jeder, der im [[Benutzerprofil]] einen Haken beim Newsletterempfang gesetzt hat. Zum Start dieser Erweiterung wurden standardmäßig alle Optionen eingecheckt, dass heisst jedes Mitglied mit gültiger EMail Adresse wird diesen Newsletter empfangen.&lt;br /&gt;
&lt;br /&gt;
== Wie kann ich mich vom Newsletter abmelden? ==&lt;br /&gt;
In eurem Profil habt ihr die Möglichkeit, über den Button &#039;&#039;&#039;Ändern&#039;&#039;&#039; eure Einstellungen zu bearbeiten. Klickt dazu auf &#039;&#039;&#039;Mein Profil&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Profildaten&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Ändern&#039;&#039;&#039; um dorthin zu gelangen. Wenn ihr etwas geändert habt, vergesst nicht, dies über den Button &#039;&#039;&#039;Bestätigen&#039;&#039;&#039; zu aktivieren.&lt;br /&gt;
Ist der Haken gesetzt, empfangt ihr den Newsletter, ist er nicht gesetzt, werdet ihr von uns auch keine News erhalten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Newsletter_abbestellen01.png|&#039;&#039;Mein Profil&#039;&#039; - &#039;&#039;Profildaten&#039;&#039; - &#039;&#039;Ändern&#039;&#039;&lt;br /&gt;
Newsletter_abbestellen02.png|entsprechenden Haken entfernen und auf &#039;&#039;Bestätigen&#039;&#039; klicken&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Newsletter&amp;diff=5533</id>
		<title>Newsletter</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Newsletter&amp;diff=5533"/>
		<updated>2013-11-17T08:31:11Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Wer empfängt den Newsletter? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um über Neuerungen, Updates, neue Features und sonstige Themen rund um [[Opencaching.de]] zu informieren, wurde im November/ Dezember 2013 eine Newsletterverwaltung eingeführt. Die Häufigkeit des Newsletters ist pro Jahr auf max. 5 Aussendungen begrenzt.&lt;br /&gt;
&lt;br /&gt;
== Wer empfängt den Newsletter? ==&lt;br /&gt;
Jeder, der im [[Benutzerprofil]] einen Haken beim Newsletterempfang gesetzt hat. Zum Start dieser Erweiterung wurden standardmäßig alle Optionen eingecheckt, dass heisst jedes Mitglied mit gültiger EMail Adresse wird diesen Newsletter empfangen.&lt;br /&gt;
&lt;br /&gt;
== Wie kann ich mich vom Newsletter abmelden? ==&lt;br /&gt;
In eurem Profil habt ihr die Möglichkeit, über den Button &#039;&#039;&#039;Ändern&#039;&#039;&#039; eure Einstellungen zu bearbeiten. Klickt dazu auf &#039;&#039;&#039;Mein Profil&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Profildaten&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Ändern&#039;&#039;&#039; um dorthin zu gelangen. Wenn ihr etwas geändert habt, vergesst nicht dies über den Button &#039;&#039;&#039;Bestätigen&#039;&#039;&#039; zu aktivieren.&lt;br /&gt;
Ist der Haken gesetzt, empfangt ihr den Newsletter, ist er nicht gesetzt, werdet ihr von uns auch keine News erhalten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Newsletter_abbestellen01.png|&#039;&#039;Mein Profil&#039;&#039; - &#039;&#039;Profildaten&#039;&#039; - &#039;&#039;Ändern&#039;&#039;&lt;br /&gt;
Newsletter_abbestellen02.png|entsprechenden Haken entfernen und auf &#039;&#039;Bestätigen&#039;&#039; klicken&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Opencaching-Etikette&amp;diff=5530</id>
		<title>Opencaching-Etikette</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Opencaching-Etikette&amp;diff=5530"/>
		<updated>2013-11-16T08:16:00Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Fair- Play auf Opencaching.de */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Oder die ungeschriebenen Regeln des Geocachens&lt;br /&gt;
&lt;br /&gt;
[[Geocaching]] ist ein Hobby bei dem man, wie überall, auch einige Regeln befolgen sollte, damit alle langfristig Spaß am Hobby haben.&lt;br /&gt;
&lt;br /&gt;
== Grundsätzlich kann man sich an folgende Worte halten: ==&lt;br /&gt;
&lt;br /&gt;
*Verhalte Dich unauffällig und lasse Dich beim Cachen möglichst nicht “erwischen”. Verrate keine Cacheverstecke an [[Muggel]]s.&lt;br /&gt;
* Beachte, dass man in [[Naturschutz|Naturschutzgebieten]] den Weg nicht verlassen darf.&lt;br /&gt;
* Respektiere kenntlich gemachte Privatgrundstücke (z.B.: Betreten verboten oder Privat).&lt;br /&gt;
* Hinterlasse keinen Müll, sondern nimm diesen (falls vor Ort) bitte mit und entsorge ihn ordnungsgemäß.&lt;br /&gt;
* Gehe sorgsam mit dem Cache um und versuche Spuren zu vermeiden, die zum Cache führen.&lt;br /&gt;
* Bitte verhalte Dich fair beim Tauschen von [[Tauschgegenstände|Tauschgegenständen]].&lt;br /&gt;
* Beim Loggen sollten keine obszönen oder destruktiven Kommentare hinterlassen werden.&lt;br /&gt;
* Logge online bitte mit mehr als 3 Worten. Beschreibe, wie gut Dir der Cache gefallen hat, aber verrate keine         Geheimnisse.&lt;br /&gt;
* Auch Fotos sind gern gesehen, aber auch hier gilt, dass diese keinen [[Spoiler|Hinweis auf das Versteck]] geben sollen.&lt;br /&gt;
* Ist ein Cache beschädigt oder das [[Logbuch]] nass oder fehlt ganz, so vermerke dies in deinem Log-Eintrag. Nur so     kann  der Owner nachbessern.&lt;br /&gt;
* Einen [[Abkürzungen#DNF|Did not find]] loggen ist nicht peinlich oder böse, sondern hilfreich und vernünftig.&lt;br /&gt;
* Wenn ein Cache gegen die [[Opencaching.de-Nutzungsbedingungen]] verstößt, [[Cache melden|melde]] ihn bitte über den Melden-Button oben im Cachelisting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beim Listing gibt es auch einige Hinweise, die beachtet werden sollen: ==&lt;br /&gt;
&lt;br /&gt;
Einer unserer Grundgedanken ist, dass Qualität vor Quantität geht. Das heißt, wir haben lieber einen guten Cache als fünf langweilige [[Leitplankencache]]s.&lt;br /&gt;
&lt;br /&gt;
Daher: &lt;br /&gt;
&lt;br /&gt;
* Bitte trage die [[Wegpunkte]] ein, sofern der Cache auf anderen Plattformen gelistet ist.&lt;br /&gt;
* Eine Beschreibung der Örtlichkeit oder warum der Cache an dieser Stelle liegt, ist oft interessant und macht anderen Cachern Lust auf den Cache.&lt;br /&gt;
* Beachte [[Naturschutz|Naturschutzgebiete]], [[Privatgrund]] und [[Urheberrecht]]. Bei Missachtung sind wir (opencaching.de) gezwungen, den Cache zu sperren.&lt;br /&gt;
* Zur Schonung der Natur bitte [[Hinweise]] und ggf. [[Spoiler]]bilder nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Qualität auf Opencaching.de ==&lt;br /&gt;
&amp;lt;p class=&amp;quot;ocp3&amp;quot;&amp;gt;Opencaching.de - Cachen mit Herz und Verstand!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Opencaching.de würde gern eine Plattform zur Verfügung stellen, bei der das Cachen zu einem Erlebnis wird. Wir wünschen uns, dass ein Cache an einem tollen oder sehenswerten Ort versteckt wird, dass ein Cache mit einer schönen, ausgefallenen oder spannenden Geschichte aus dem Leben oder vielleicht auch aus der Fantasie verknüpft wird und dass ein Cache mit einer schönen und haltbaren Dose, vielleicht sogar mit einer Bastelarbeit oder elektronischen Spielerei, versteckt wird. Wir wünschen uns Geocaching mit Herz und Verstand, weil es Dir und uns so mehr Spass macht. Du solltest Dir selbst die Frage stellen, was Du als Erlebnis empfinden würdest.&lt;br /&gt;
&lt;br /&gt;
Mit Deinem [[Das_Onlinelog|Log]] kannst Du Caches loben, dem [[Owner#Besitzer_.2F_Owner|Owner]] Danke sagen, aber auch auf Verbesserungspotenzial hinweisen. Mit solchen Rückmeldungen kann jeder Einzelne die Qualität von Opencaching.de fördern. Eine Bewertungsfunktion für Caches ist angedacht, muss aber noch entwickelt werden.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden einige Statements von Usern, wie sie sich Opencaching.de Caches wünschen, wie sie Qualität definieren&lt;br /&gt;
&lt;br /&gt;
* ein Cache sollte Spaß machen, z.B. ein sehenswerter Ort, auf etwas Besonderes hinweisen, eine schöne Geschichte, eine kreative Bastelarbeit&lt;br /&gt;
* Bewusster Umgang mit der Natur in der wir uns bewegen, also Naturschutzgebiete beachten, Futterstellen usw. meiden, Caches umweltverträglich verstecken&lt;br /&gt;
* die [[Fachjargon#Location|Location]] ist das Wichtigste&lt;br /&gt;
* es gibt auch einige gute Powertrails, aber 50 mal (oder 500 mal) die Filmdose am identischen Versteck suchen ist uninteressant und langweilig&lt;br /&gt;
* es gibt auch Stellen, an denen Micros/Nanos die richtige Wahl sind, aber überlege, ob der Cache unbedingt an der Stelle sein muss, wenn nichts größeres möglich ist&lt;br /&gt;
* lieber einen [[Cachegrößen#Klein|Kleinen]] Cache legen als einen [[Cachegrößen#Mikro|Mikro]] oder [[Cachegrößen#Nano|Nano]]&lt;br /&gt;
* Verstecke keinen Cache, nur um einen Cache zu verstecken, überlege dir eine schöne Story, suche einen schönen Platz und lass dir Zeit&lt;br /&gt;
* lieber einen guten Cache als 20 schlechte Caches&lt;br /&gt;
* Jeder fängt klein an, bei Fragen / Unsicherheiten zu deinen Ideen melde dich doch im [http://forum.opencaching-network.org/index.php?board=30.0 Forum], wir helfen dir gern.&lt;br /&gt;
&lt;br /&gt;
== Fair- Play auf Opencaching.de ==&lt;br /&gt;
&lt;br /&gt;
Unsere Plattform läßt Dir jede Menge Freiheiten, Dich beim Legen und z.T. auch beim Loggen von Caches kreativ zu betätigen. Dennoch bitten wir Dich einige Dinge zu beherzigen, damit das Spiel für alle schön und fair bleibt.&lt;br /&gt;
&lt;br /&gt;
* schreibe in Deinen Logs immer nur etwas zum Cache, persönliche Meinungen über den Owner haben dort nichts zu suchen!&lt;br /&gt;
* sei ehrlich in deinen Logs, mache keinen Cache nieder, weil Du den Owner nicht magst&lt;br /&gt;
* logge nur Caches als gefunden, die du auch wirklich gefunden hast&lt;br /&gt;
* wenn Du einen Cache nicht gefunden hast logge auch dies, am besten mit Grund&lt;br /&gt;
* logge Deinen eigenen Cache nicht als Fund und vor allem &lt;br /&gt;
* gib keine Empfehlungen für Deine eigenen Caches!!!!!&lt;br /&gt;
* spiele nicht mit &amp;quot;Sockenpuppenaccount&amp;quot;, steh zu dem was Du tust und schreibst&lt;br /&gt;
* gib bei Deinen Caches immer korrekte Schwierigkeits und Geländewertungen an, Phantasiewerte um die Matrix voll zu bekommen helfen keinem&lt;br /&gt;
* beachte das Urheberrecht!!! Bei OCexternen Quellen im Zweifel besser Finger weg, bei OCinternen Quellen reicht sicher eine nette Anfrage damit Du benutzen darfst was du brauchst. Sonst droht vor allem Dir unter Umständen eine teure Abmahnung vom Urheber!!!&lt;br /&gt;
* betreibe keinen [[Listingvandalismus]]. Du schädigst dadurch die Cacher, die Deinen Cache bereits gefunden haben. Das kann auch zur Sperrung Deines Accounts führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching|Etikette]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Kodeks geocachera]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Opencaching-Etikette&amp;diff=5529</id>
		<title>Opencaching-Etikette</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Opencaching-Etikette&amp;diff=5529"/>
		<updated>2013-11-16T08:13:22Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Qualität auf Opencaching.de */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Oder die ungeschriebenen Regeln des Geocachens&lt;br /&gt;
&lt;br /&gt;
[[Geocaching]] ist ein Hobby bei dem man, wie überall, auch einige Regeln befolgen sollte, damit alle langfristig Spaß am Hobby haben.&lt;br /&gt;
&lt;br /&gt;
== Grundsätzlich kann man sich an folgende Worte halten: ==&lt;br /&gt;
&lt;br /&gt;
*Verhalte Dich unauffällig und lasse Dich beim Cachen möglichst nicht “erwischen”. Verrate keine Cacheverstecke an [[Muggel]]s.&lt;br /&gt;
* Beachte, dass man in [[Naturschutz|Naturschutzgebieten]] den Weg nicht verlassen darf.&lt;br /&gt;
* Respektiere kenntlich gemachte Privatgrundstücke (z.B.: Betreten verboten oder Privat).&lt;br /&gt;
* Hinterlasse keinen Müll, sondern nimm diesen (falls vor Ort) bitte mit und entsorge ihn ordnungsgemäß.&lt;br /&gt;
* Gehe sorgsam mit dem Cache um und versuche Spuren zu vermeiden, die zum Cache führen.&lt;br /&gt;
* Bitte verhalte Dich fair beim Tauschen von [[Tauschgegenstände|Tauschgegenständen]].&lt;br /&gt;
* Beim Loggen sollten keine obszönen oder destruktiven Kommentare hinterlassen werden.&lt;br /&gt;
* Logge online bitte mit mehr als 3 Worten. Beschreibe, wie gut Dir der Cache gefallen hat, aber verrate keine         Geheimnisse.&lt;br /&gt;
* Auch Fotos sind gern gesehen, aber auch hier gilt, dass diese keinen [[Spoiler|Hinweis auf das Versteck]] geben sollen.&lt;br /&gt;
* Ist ein Cache beschädigt oder das [[Logbuch]] nass oder fehlt ganz, so vermerke dies in deinem Log-Eintrag. Nur so     kann  der Owner nachbessern.&lt;br /&gt;
* Einen [[Abkürzungen#DNF|Did not find]] loggen ist nicht peinlich oder böse, sondern hilfreich und vernünftig.&lt;br /&gt;
* Wenn ein Cache gegen die [[Opencaching.de-Nutzungsbedingungen]] verstößt, [[Cache melden|melde]] ihn bitte über den Melden-Button oben im Cachelisting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beim Listing gibt es auch einige Hinweise, die beachtet werden sollen: ==&lt;br /&gt;
&lt;br /&gt;
Einer unserer Grundgedanken ist, dass Qualität vor Quantität geht. Das heißt, wir haben lieber einen guten Cache als fünf langweilige [[Leitplankencache]]s.&lt;br /&gt;
&lt;br /&gt;
Daher: &lt;br /&gt;
&lt;br /&gt;
* Bitte trage die [[Wegpunkte]] ein, sofern der Cache auf anderen Plattformen gelistet ist.&lt;br /&gt;
* Eine Beschreibung der Örtlichkeit oder warum der Cache an dieser Stelle liegt, ist oft interessant und macht anderen Cachern Lust auf den Cache.&lt;br /&gt;
* Beachte [[Naturschutz|Naturschutzgebiete]], [[Privatgrund]] und [[Urheberrecht]]. Bei Missachtung sind wir (opencaching.de) gezwungen, den Cache zu sperren.&lt;br /&gt;
* Zur Schonung der Natur bitte [[Hinweise]] und ggf. [[Spoiler]]bilder nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Qualität auf Opencaching.de ==&lt;br /&gt;
&amp;lt;p class=&amp;quot;ocp3&amp;quot;&amp;gt;Opencaching.de - Cachen mit Herz und Verstand!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Opencaching.de würde gern eine Plattform zur Verfügung stellen, bei der das Cachen zu einem Erlebnis wird. Wir wünschen uns, dass ein Cache an einem tollen oder sehenswerten Ort versteckt wird, dass ein Cache mit einer schönen, ausgefallenen oder spannenden Geschichte aus dem Leben oder vielleicht auch aus der Fantasie verknüpft wird und dass ein Cache mit einer schönen und haltbaren Dose, vielleicht sogar mit einer Bastelarbeit oder elektronischen Spielerei, versteckt wird. Wir wünschen uns Geocaching mit Herz und Verstand, weil es Dir und uns so mehr Spass macht. Du solltest Dir selbst die Frage stellen, was Du als Erlebnis empfinden würdest.&lt;br /&gt;
&lt;br /&gt;
Mit Deinem [[Das_Onlinelog|Log]] kannst Du Caches loben, dem [[Owner#Besitzer_.2F_Owner|Owner]] Danke sagen, aber auch auf Verbesserungspotenzial hinweisen. Mit solchen Rückmeldungen kann jeder Einzelne die Qualität von Opencaching.de fördern. Eine Bewertungsfunktion für Caches ist angedacht, muss aber noch entwickelt werden.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden einige Statements von Usern, wie sie sich Opencaching.de Caches wünschen, wie sie Qualität definieren&lt;br /&gt;
&lt;br /&gt;
* ein Cache sollte Spaß machen, z.B. ein sehenswerter Ort, auf etwas Besonderes hinweisen, eine schöne Geschichte, eine kreative Bastelarbeit&lt;br /&gt;
* Bewusster Umgang mit der Natur in der wir uns bewegen, also Naturschutzgebiete beachten, Futterstellen usw. meiden, Caches umweltverträglich verstecken&lt;br /&gt;
* die [[Fachjargon#Location|Location]] ist das Wichtigste&lt;br /&gt;
* es gibt auch einige gute Powertrails, aber 50 mal (oder 500 mal) die Filmdose am identischen Versteck suchen ist uninteressant und langweilig&lt;br /&gt;
* es gibt auch Stellen, an denen Micros/Nanos die richtige Wahl sind, aber überlege, ob der Cache unbedingt an der Stelle sein muss, wenn nichts größeres möglich ist&lt;br /&gt;
* lieber einen [[Cachegrößen#Klein|Kleinen]] Cache legen als einen [[Cachegrößen#Mikro|Mikro]] oder [[Cachegrößen#Nano|Nano]]&lt;br /&gt;
* Verstecke keinen Cache, nur um einen Cache zu verstecken, überlege dir eine schöne Story, suche einen schönen Platz und lass dir Zeit&lt;br /&gt;
* lieber einen guten Cache als 20 schlechte Caches&lt;br /&gt;
* Jeder fängt klein an, bei Fragen / Unsicherheiten zu deinen Ideen melde dich doch im [http://forum.opencaching-network.org/index.php?board=30.0 Forum], wir helfen dir gern.&lt;br /&gt;
&lt;br /&gt;
== Fair- Play auf Opencaching.de ==&lt;br /&gt;
&lt;br /&gt;
Unsere Plattform läßt Dir jede Menge Freiheiten Dich beim Legen und z.T. auch bei, loggen von Caches kreativ zu betätigen. Dennoch bitten wir Dich einige Dinge zu beherzigen, damit das Spiel für alle schön und fair bleibt.&lt;br /&gt;
&lt;br /&gt;
* schreibe in Deinen Logs immer nur etwas zum Cache, persönliche Meinungen über den Owner haben dort nichts zu suchen!&lt;br /&gt;
* sei ehrlich in deinen Logs, mache keinen Cache nieder, weil Du den Owner nicht magst&lt;br /&gt;
* logge nur Caches als gefunden, die du auch wirklich gefunden hast&lt;br /&gt;
* wenn Du einen Cache nicht gefunden hast logge auch dies, am besten mit Grund&lt;br /&gt;
* logge Deinen eigenen Caches nicht als Fund und vor allem &lt;br /&gt;
* gib keine Empfehlungen für Deine eigenen Caches!!!!!&lt;br /&gt;
* spiele nicht mit Sockenpuppenaccount, steh zu dem was Du tust und schreibst&lt;br /&gt;
* gib bei Deinen Caches immer korrekte Schwierigkeits und Geländewertungen an, Phantasiewerte um die Matrix voll zu bekommen helfen keinem&lt;br /&gt;
* beachte das Urheberrecht!!! Bei OCexternen Quellen im Zweifel besser Finger weg, bei OCinternen Quellen reicht sicher eine nette Anfrage damit Du benutzen darfst was du brauchst. Sonst droht vor allem Dir unter Umständen eine teure Abmahnung vom Urheber!!!&lt;br /&gt;
* betreibe keinen [[Listingvandalismus]]. Du schädigst dadurch die Cacher, die Deinen Cache bisher gefunden haben. Das kann auch zur Sperrung Deines Accounts führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching|Etikette]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Kodeks geocachera]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Entwicklung/Datenbankversionierung&amp;diff=5438</id>
		<title>Entwicklung/Datenbankversionierung</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Entwicklung/Datenbankversionierung&amp;diff=5438"/>
		<updated>2013-10-24T10:00:53Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Trigger &amp;amp; Stored Procedures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Änderungen am Datenbankinhalt werden von den Entwicklern an vier Stellen eingepflegt:&lt;br /&gt;
&lt;br /&gt;
* statische Daten in htdocs/doc/sql/static-data/data.sql&lt;br /&gt;
* stored procs &amp;amp; trigger in htdocs/doc/sql/stored-proc/maintain.php&lt;br /&gt;
* Änderungen an Tabellenstrukturen und Indizes in bin/dbsv-update.php&lt;br /&gt;
* Änderungen an der OKAPI-Datenbank in htdocs/okapi/views/update.php.&lt;br /&gt;
&lt;br /&gt;
Das Script &#039;&#039;bin/dbupdate.php&#039;&#039; spielt alle diese Dinge in eine OC-Installation – z.B. ein [[Entwicklung/Entwicklersystem|Entwicklersystem]] – ein, bringt die Datenbank also auf den aktuellen Stand.&lt;br /&gt;
&lt;br /&gt;
Der OKAPI-Code funktioniert nicht besonders gut, wenn man ihn von der Kommandozeile aus verwendet. Falls das OKAPI-Datenbankupdate einen Fehler produzieren sollte, muss man es anschließend von Hand via http://.../okapi/update aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Versionierung der Datenbankstruktur ==&lt;br /&gt;
&lt;br /&gt;
dbsv-update.php beinhaltet eine Versionierung der Datenbankstruktur.&lt;br /&gt;
&lt;br /&gt;
In der Tabelle &#039;sysconfig&#039; einer OC-Installation gibt es (ab [https://github.com/OpencachingDeutschland/oc-server3/blob/master/htdocs/doc/sql/db-changes.txt#L64 Datenbankstand April 2013] bzw. Codestand a654761 vom 22. April) den Eintrag &#039;db_version&#039; mit dem aktuellen Versionsstand der Datenbank, fortlaufend durchnumeriert ab 100. Für jede neue Version gibt es eine &amp;quot;Mutationsfunktion&amp;quot; in dbsv-update.php, die die Datenbank auf den neuen Versionsstand bringt.&lt;br /&gt;
&lt;br /&gt;
Wenn du eine Änderung an einer Datenbanktabelle vornehmen (oder eine neue einfügen) möchtest, vergewissere dich zuerst sorgfältig, welche Folgen dies hat. Neue Informationen zu Caches und Logs müssen an vielen Stellen berücksichtigt werden, inklusive [[XML-Schnittstelle]], [[OKAPI]], evtl. auch [[Ocprop]] etc. Evtl. müssen Änderungen auch in vorhandene Trigger eingebaut werden oder benötigen neue Trigger, um Kosistenz zu gewährleisten (vgl. {{Codepath2|htdocs/doc/sql|modification-dates.txt}} und {{Codepath2|htdocs|restorecaches.php}}). Evtl. müssen Indizes geändert oder neu definiert werden, um die nötige Performance sicherzustellen.&lt;br /&gt;
&lt;br /&gt;
Wenn du sicher bist, die Datenbank ändern zu wollen, ändere sie NICHT direkt, sondern schreibe eine neue Mutationsfunktion in dbsv-update.php, die die Änderung vornimmt. Vorhandene Funktionen können als Vorlage dienen. Teste deine Funktion anschließend mit &amp;quot;php dbsv-update.php&amp;quot; auf der Kommandozeile. Wenn es nicht wie beabsichtigt funktionierte, mache die Änderung rückgängig und setze sysconfig.db_version eins zurück, bevor du es wieder versuchst.&lt;br /&gt;
&lt;br /&gt;
Wenn mehrere Entwickler gleichzeitig neue Mutationen definieren, ist es Aufgabe des Code-Maintainers, diese in passender Reihenfolge zusammenzuführen.&lt;br /&gt;
&lt;br /&gt;
== Felder oder Tabellen löschen oder umbenennen ==&lt;br /&gt;
&lt;br /&gt;
Nicht mehr vorhandene Felder oder Tabellen sind inkompatibel zu älteren Versionsständen. Man kann dann auf einem Entwicklersystem nicht mehr testweise auf eine alte Codeversion zurückgehen, was sehr hilfreich ist um herauszufinden, wann ein Bug entstanden ist. Auch das Umschalten zwischen verschiedenen aktiven Branches kann schon zum Problem werden.&lt;br /&gt;
&lt;br /&gt;
(Es gibt natürlich nie eine Garantie dass ein Downgrade 100%ig funktioniert, weil sich auch Datenbankinhalte in inkompatibler Weise geändert haben können. Im Großen und Ganzen funktioniert es aber.)&lt;br /&gt;
&lt;br /&gt;
Umbenennung oder Löschungen sind daher nicht zu empfehlen. Nicht mehr verwendete Felder und Tabellen werden stattdessen mit dem Kommentar &amp;quot;obsolete&amp;quot; versehen.&lt;br /&gt;
&lt;br /&gt;
== Trigger &amp;amp; Stored Procedures ==&lt;br /&gt;
&lt;br /&gt;
Um das Versionierungskonzept vollständig durchzuhalten, müssten eigentlich auch alle Änderungen an Triggern und Stored Procedures über die Mutationen erfolgen. Es bestünde dann allerdings die Gefahr von Inkonsistenzen zwischen den Mutationen der kompletten Funktionsdefinitionen in maintain.php, die der Übersicht halber weiter benötigt werden.&lt;br /&gt;
&lt;br /&gt;
Solange es kein besseres Konzept gibt, wird daher wie folgt vorgegangen:&lt;br /&gt;
&lt;br /&gt;
* Wenn eine Mutation geänderte/neue Trigger benötigt, die mit dem gleichen Codeupdate eingeführt werden, muss sie diese entweder zunächst definieren oder deren Funktionalität nachbilden (siehe z.B. Version 102: hier wird der neue sp_updateall_hiddenstat()-Code ausgeführt). Dies ist nötig, weil maintain.php erst &#039;&#039;nach&#039;&#039; den Mutationen durchläuft, da es neue Datenbankfelder benötigen kann (Henne-Ei-Problem).&lt;br /&gt;
&lt;br /&gt;
* Bei Definition der Mutationen darauf achten, ob sie irgendwelchen SQL-Code enthalten der auf Trigger angewiesen ist. Wenn ja, entsprechende Maßnahmen ergreifen z.B.&lt;br /&gt;
** Diese Trigger in der Mutation neu anlegen, oder&lt;br /&gt;
** die Funktionalität der Trigger nachbilden, oder&lt;br /&gt;
** eine Zwischenmutation mit einem versionierten Triggerupdate einfügen (siehe Mutation #113).&lt;br /&gt;
&lt;br /&gt;
Als präventive Maßnahme kann in größeren Abständen pauschal ein komplettes Triggerupdate eingefügt werden (siehe Mutation #113).&lt;br /&gt;
&lt;br /&gt;
== OKAPI ==&lt;br /&gt;
&lt;br /&gt;
Der OKAPI-Code greift parallel zum OC.de-Code auf die Datenbank zu. Bei Änderungen an Datenbankstruktur oder -inhalten ist daher immer zu prüfen, ob die OKAPI betroffen ist und angepasst werden muss.&lt;br /&gt;
&lt;br /&gt;
Unter Umständen müssen Trigger aktualisiert werden, damit die OKAPI Änderungen an Cache- oder Logabhängigen Daten mitbekommt; siehe dazu [https://github.com/OpencachingDeutschland/oc-server3/blob/master/htdocs/doc/sql/modification-dates.txt modification-dates.txt].&lt;br /&gt;
&lt;br /&gt;
Änderungen an OKAPI-eigenen Tabellen (okapi_*) werden von der OKAPI selbst verwaltet und spielen hier keine Rolle. Sie werden via &amp;lt;code&amp;gt;okapi/views/update.php&amp;lt;/code&amp;gt; eingepflegt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Entwicklung|Datenbankversionierung]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Der_gemeine_zweibeinige_Sucher&amp;diff=5431</id>
		<title>Der gemeine zweibeinige Sucher</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Der_gemeine_zweibeinige_Sucher&amp;diff=5431"/>
		<updated>2013-10-13T15:33:24Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Beschreibung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Der gemeine zweibeinige Sucher.jpg|right|thumb|300px|]]&lt;br /&gt;
Der gemeine zweibeinige Sucher (vulgare quarere bipes) ist eine Vogelart aus der Familie der sogenannten [[Geocacher|Geologischen Verstecker]]. Die [[Letterboxing#Ursprung|erste Beobachtung]] der geologischen Verstecker wurde gegen 1854 in der Gegend um Dartmoor gemacht. Damals waren die kleinen Vögel aber bei weitem nicht so spezialisiert wie heute. Seit dem [[GPS#Geschichtlicher_.C3.9Cberblick|Jahr 2000]] hat der gemeine zweibeinige Sucher eine enorme Evolution durchgemacht und kann unter anderem GPS-Signale nutzen. Der Ausgangspunkt der Evolution kann in die USA [http://de.wikipedia.org/wiki/Geocaching#Der_erste_Geocache zurückverfolgt] werden.&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Der gemeine zweibeinige Sucher, auch als OC-Vogel oder GC-Vogel bekannt, kann sich seiner Umgebung hervorragend anpassen und schafft es so, bei seiner Tätigkeit nur wenig aufzufallen. Auf Grund dieser Tarneigenschaft ist es schwer, diesen Vogel zu beobachten und genauer zu beschreiben.&lt;br /&gt;
Ein optischer Unterschied zwischen Männchen und Weibchen ist bisher nicht bekannt. Es wird angenommen, dass das Männchen größer ist, das Weibchen jedoch eher etwas bunter. Der gemeine zweibeinige Sucher zeichnet sich durch einen hervorragenden Orientierungssinn aus. Im Gegensatz zu anderen Vogelarten nutzt er jedoch nicht das [http://de.wikipedia.org/wiki/Vogelzug#Orientierung Magnetfeld der Erde, die Sonne oder Sterne], sondern verlässt sich ganz auf die [[GPS#Funktionsweise|GPS-Ortung]]. Wie der kleine Vogel die GPS Signale empfängt, ist bisher ungeklärt.&lt;br /&gt;
&lt;br /&gt;
Auffällig ist auch seine Kommunikationsform. Seine Informationen über zu suchende Objekte gewinnt er aus einem ungreifbaren Medium namens [http://de.wikipedia.org/wiki/Internet bibliotheca universus]. Wie er darauf Zugriff nimmt, ist auch eine der vielen Fragen, welche die Wissenschaft beschäftigt. Bevorzugt greift er auf die sogenannte [[Geocaching-Plattformen#Opencaching.de_.28OC.29|&amp;quot;offene Seite&amp;quot;]] zu. Findet er hier nicht das gewünschte Objekt kann es vorkommen, dass er alternativ die [[Geocaching-Plattformen#Geocaching.com_.28GC.29|&amp;quot;kommerzielle Seite&amp;quot;]] nutzt, welche jedoch für einen vollen Funktionsumfang kostenpflichtig ist.&lt;br /&gt;
&lt;br /&gt;
Seine Schnabelspitze ist auch ein eindeutiges Merkmal. Diese besteht aus einem harten [http://de.wikipedia.org/wiki/Bleistift Graphit-Ton-Gemisch], womit er [[Logbuch|Notizen]] in den von ihm [[Geocache|gefundenen Objekten]] macht.&lt;br /&gt;
&lt;br /&gt;
Interessant ist auch ein Beutel, ähnlich dem des Kängurus. Hierbei handelt es sich jedoch nicht um eine Notwendigkeit zur Aufzucht des Nachwuchses, sondern der gemeine zweibeinige Sucher führt damit sogenannte [[Reisende]] sowie [[Tauschgegenstände|Tauschobjekte]] mit sich und transportiert diese von einem [[Geocache|Objekt]] zum nächsten. Besonders beliebt sind bei ihm die kostenlosen [[Reisende#Geokrets|GeoMaulwürfe]], welche er auf unterschiedlichen [[Geocaching-Plattformen|Plattformen]] „loggen“ kann. Die weiter verbreiteten [[Reisende#Travelbugs_und_Geocoins|GeoMünzen und Reisewanzen]] kann er auch transportieren, jedoch ist hierfür die Möglichkeit zu „loggen“ auf eine Plattform eingeschränkt auf Grund des kommerziellen Hintergedankens.&lt;br /&gt;
&lt;br /&gt;
Wichtig sind auch die Fußkrallen des gemeinen zweibeinigen Suchers, welche er sehr flexibel einsetzen kann. Damit ist es ihm möglich, filigrane Dinge wie [[Behältergrößen#Nano|kleine Döschen]] zu bergen oder sogenannte [[Behältergrößen#Mikro|Filmdosen]] aufzumachen. Ebenso kann er damit die beliebten [[Behältergrößen#Normal|„Munitionskisten“ und Kunststoffdosen]] öffnen.&lt;br /&gt;
&lt;br /&gt;
Seine Stimme kann, je näher er seinem Ziel kommt, immer lauter werden. Meistens kann man es als ein Piepsen wahrnehmen. Es wurde aber auch schon von gemeinen zweibeinigen Suchern berichtet, die Ihre Navigation [http://de.wikipedia.org/wiki/Sprachsynthese laut aussprechen].&lt;br /&gt;
&lt;br /&gt;
Beide Arten wurden aber auf Grund seiner hervorragenden optischen und akustischen Anpassungsfähigkeit bisher nur selten beoachtet.&lt;br /&gt;
&lt;br /&gt;
== Ökologie ==&lt;br /&gt;
&lt;br /&gt;
=== Ernährung ===&lt;br /&gt;
&lt;br /&gt;
Der gemeine zweibeinige Sucher ist ein Generalist und ernährt sich hauptsächlich vom [[Cachepflege#Location_entm.C3.BCllen|„Trash“]] in und um die gefundenen Objekte. Dazu kommen aber auch Würmer, Maden und Schnecken, welche die Objekte auch gelegentlich von außen untersuchen.&lt;br /&gt;
&lt;br /&gt;
Interessanterweise verweigert der gemeine zweibeinige Sucher jedoch Tomaten als Nahrungsmittel. Es wird allgemein ein Zusammenhang mit den [http://www.sueddeutsche.de/wissen/sensationelle-forschungsergebnisse-jetzt-zeigt-sich-wozu-unsere-spezies-faehig-ist-1.1322991 durch die Tomaten ausgelösten Aggressionen] (Stichwort Statistik, Plattformabhängigkeit) vermutet.&lt;br /&gt;
&lt;br /&gt;
=== Lebensraum ===&lt;br /&gt;
&lt;br /&gt;
Als [http://de.wikipedia.org/wiki/Standvogel Standvogel] überwintert der gemeine zweibeinige Sucher in seinem angestammten Gebiet.&lt;br /&gt;
Er lebt in Wäldern (bevorzugt in alten Laub- oder Mischwäldern), durch ihre große Lern- und Anpassungsfähigkeit inzwischen auch in Gärten, Baumreihen und Stadtparks.&lt;br /&gt;
&lt;br /&gt;
=== Verhalten ===&lt;br /&gt;
&lt;br /&gt;
Der gemeine zweibeinige  Sucher hat einen flexiblen Aktivitätsrhythmus. Dieser richtet sich vorgeblich nach den [[Cachearten|zu suchenden Objekten]]. Einige können jederzeit gesucht werden, andere nur zu bestimmten Tageszeiten oder Tagen.&lt;br /&gt;
&lt;br /&gt;
Hat er einmal eine Suche ins Auge gefasst, sucht er so lange, bis er das gewünschte Objekt gefunden hat und mit seinem Schnabel einen „Log“ hinterlassen kann. Ein Austauschen von Reisenden verschafft ihm erhöhte Zufriedenheit.&lt;br /&gt;
&lt;br /&gt;
Ein Revierverhalten ist nicht bekannt. Gerne helfen sich die zweibeinigen Sucher [[Fachjargon#Rudelcachen|gegenseitig]] beim Finden der Objekte.&lt;br /&gt;
&lt;br /&gt;
Da der gemeine zweibeinige Sucher sehr zurückgezogen lebt, ist es bisher nicht gelungen, seine Lebensdauer und sein Paarungsverhalten sowie die Brutpflege ausreichend zu erforschen. Es gibt jedoch ein paar wenige Forscher, die gesehen haben wollen, dass sich der OC-Vogel mit anderen Vogelarten gepaart hätte. Diese Berichte können jedoch nicht wissenschaftlich bestätigt werden und erscheinen sogar ziemlich abwegig. Der gemeine zweibeinige Sucher bleibt nämlich gerne unter seinesgleichen und hält andere Vogelarten, welche er als [[Muggel]] bezeichnet, auf Abstand.&lt;br /&gt;
&lt;br /&gt;
== Wo kann man diese seltenen Vögel beobachten ==&lt;br /&gt;
&lt;br /&gt;
Bisher ist nur ein Ort bekannt, in der Nähe von Regensburg. {{Cachelink|OCDD7B}}&lt;br /&gt;
&lt;br /&gt;
Sobald weitere Standorte entdeckt werden, bitte umgehend melden!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diese Beschreibung darf gerne verwendet werden, jedoch bitte ich, dann den &#039;&#039;pirate&#039;&#039; zu informieren [mailto:pirate@ist-einmalig.de pirate@isteinmalig.de]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Ebenso darf die Beschreibung gerne erweitert werden, aber auch bitte erst nach Absprache mit mir. DANKE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocacher]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Entwicklung/Codedoku&amp;diff=5410</id>
		<title>Entwicklung/Codedoku</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Entwicklung/Codedoku&amp;diff=5410"/>
		<updated>2013-10-13T07:41:33Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Materialsammlung zum [http://github.com/OpencachingDeutschland/oc-server3 Opencaching-Programmcode]. Sie soll neuen [[Entwicklung|Entwicklern]] einen Überblick über die Grundstruktur und wichtigsten Bestandteile des OC-Codes geben. Mit &amp;quot;OC-Code&amp;quot; ist alles gemeint, was sich im [[Entwicklung/Git|Git-Repository]] befindet.&lt;br /&gt;
&lt;br /&gt;
Weitere Dokumentationen gibt es auch in den Codeverzeichnissen {{Codepath|doc}} und {{Codepath|htdocs/doc}}. Die Datei {{Codepath|doc/directories.txt}} enthält eine Übersicht der Repository-Verzeichnisstruktur. &#039;&#039;(Grüne Pfad- und Dateinamen sind anklickbar.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Alle die bereits an Opencaching mitprogrammiert haben, sind eingeladen, ihr Wissen beizusteuern! Wenn du dir zusätzliche Erläuterungen wünschst, kannst du sie auf der Diskussionsseite anfragen – vielleicht findet sich jemand, der den Artikel ergänzt.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[Entwicklung/Stil|Style Guidelines]]&lt;br /&gt;
&lt;br /&gt;
== Dateiformat ==&lt;br /&gt;
&lt;br /&gt;
Alle OC-Quelltextdateien haben [[wikipedia:UTF-8|UTF-8]]-Format. Im Kopf der Quelltextdateien befindet sich ein japanisches Wort (&amp;quot;Unicode Reminder&amp;quot;), mit dem geprüft werden kann ob die Zeichencodierung intakt ist. Sollte versehentlich nach ISO-8859-1 o.ä. umcodiert worden sein, erscheinen dort z.B. zwei Fragezeichen oder gar nichts.&lt;br /&gt;
&lt;br /&gt;
{{Codepath|local/tools/find_bad_encodings.php}} prüft alle Quelltexte auf fehlende oder beschädigte Unicode Reminder.&lt;br /&gt;
&lt;br /&gt;
Die Zeilenenden der Quelltexte bestehen grundsätzlich aus einem einfachen LF (line feed). Ausnahmen gibt es z.B. bei [[#Email-Templates|Email-Templates]]; hier ist CR/LF vorgeschrieben.&lt;br /&gt;
&lt;br /&gt;
== Hauptmodule ==&lt;br /&gt;
&lt;br /&gt;
Mit &amp;quot;lib1&amp;quot; und &amp;quot;lib2&amp;quot; sind im Folgenden die OC-eigenen Codebibliotheken in {{Codepath|htdocs/lib}} und {{Codepath|htdocs/lib2}} gemeint. Alle Teile des OC-Codes bauen auf einer dieser beiden Bibliotheken auf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;widelist&amp;quot;&amp;gt;&lt;br /&gt;
Der OC-Software besteht aus ...&lt;br /&gt;
* Den &#039;&#039;&#039;darstellbaren Seiten&#039;&#039;&#039; der OC-Website, z.B. Startseite (&#039;&#039;index&#039;&#039;) oder Cachelisting-Anzeige (&#039;&#039;viewcache&#039;&#039;). Diese bestehen jeweils aus einem PHP-Script im Verzeichnis {{Codepath|htdocs}} und einem [[#Templates|Template]] in {{Codepath|htdocs/templates2/ocstyle}} (lib1: {{Codepath|htdocs/lang/de/ocstyle}}). Das PHP-Script erzeugt die darzustellenden Inhalte, das Template stellt sie als HTML-Seite dar.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kommandozeilentools&#039;&#039;&#039; für verschiedene Zwecke, z.B. Wartungstools die per Crojob oder von Hand aufgerufen werden. Sie befinden sich in an verschiedenen Stellen:&lt;br /&gt;
** {{Codepath|bin}} (Update-Scripte)&lt;br /&gt;
** {{Codepath|htdocs/util}} (lib1, Tools für Produktivbetrieb)&lt;br /&gt;
** {{Codepath|htdocs/util2}} (lib2, Tools für Produktivbetrieb)&lt;br /&gt;
** {{Codepath|local}} (spezielle Tools für lokale Verwendung)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;APIs&#039;&#039;&#039;, also Schnittstellen für Datenabruf oder -upload durch Dritte:&lt;br /&gt;
** diverse APIS in {{Codepath|htdocs/api}}&lt;br /&gt;
** die [[OKAPI]] in {{Codepath|htdocs/okapi}}, repliziert aus dem [http://code.google.com/p/opencaching-api/source/browse/trunk/#trunk%2Fokapi OKAPI-Repository]&lt;br /&gt;
** die [[XML-Schnittstelle]] in {{Codepath|htdocs/xml}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Apache-Rewrites&#039;&#039;&#039;. Dies sind Konfigurationsdateien mit dem Name &#039;&#039;.htaccess&#039;&#039;, die vom Apache-Webserver ausgelesen werden. Sie interpretieren die übergebene URL und leiten auf ein PHP-Script um. Apache-Rewrites kommen an zwei Stellen zum Einsatz:&lt;br /&gt;
** Statistikbilder: {{Codepath|htdocs/statpics/htaccess-dist|htdocs/statpics/.htaccess}}&lt;br /&gt;
** OC-Kurz-URLs, z.B. http://opencaching.de/OC1234: diese sind direkt im Produktiv-Webserver konfiguriert.&lt;br /&gt;
&lt;br /&gt;
== Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Die einzelnen OC-Module verwenden verschiedene Code-Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
=== Eigene Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
==== lib1 ====&lt;br /&gt;
Die alte selbstgeschriebene Bibliothek von OC-Codeversion 1.0, in {{Codepath|htdocs/lib}}. Sie enthält z.B. Funktionen für Datenbankzugriff, Login, Menüs, geographische Berechnungen und ein einfaches Template-System.&lt;br /&gt;
&lt;br /&gt;
lib1 ist veraltet und wird auf OC.de nur noch für das Bearbeiten von Logs und Cachebeschschreibungen, für Benachrichtigungen über beobachtete und neue Caches und für die XML-Schnittstelle verwendet. Mittelfristig soll sie ganz durch lib2 ersetzt werden. (Alle auf OC.pl-Code basierenden [[Opencaching]]-Seiten verwenden weiterhin ausschließlich die lib1).&lt;br /&gt;
&lt;br /&gt;
lib1 wird eingebunden mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib/common.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lib2 ====&lt;br /&gt;
Die Bibliothek der OC.de-Codversion 2.0 und höher in {{Codepath|htdocs/lib2}}, Nachfolger von lib1. Sie ist wesentlich umfangreicher. Der Code ist aufgeteilt in das &amp;quot;Framework&amp;quot; mit allgemeinen Dingen wie Datenbankzugriff, Authentifizierung, Lokalisierung, Templates etc. und die sogenannte &amp;quot;Business Logic&amp;quot; in {{Codepath|htdocs/lib2/logic}} mit allen Geocaching-spezifischen Klassen und Funktionen.&lt;br /&gt;
&lt;br /&gt;
lib2 wird in Bestandteile der Website eingebunden mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib2/web.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
und in Kommandozeilentools mit&lt;br /&gt;
:&amp;lt;code&amp;gt;require &#039;lib2/cli.inc.php&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;gemeinsamer lib1- und lib2-Code&lt;br /&gt;
Manche Bibliotheksmodule werden versionsübergreifend verwendet, z.B. für Übersetzungen und Sprachauswahl. Sie sind in {{Codepath|htdocs/lib2}} abgelegt.&lt;br /&gt;
&lt;br /&gt;
==== libse ====&lt;br /&gt;
Eine Klassenbibliothek von Opencaching.se, in {{Codepath|htdocs/libse}}. Im Zuge der Codezusammenführung von OC.de und OC.se wurde sie 2011 mit in den OC.de-Code übernommen. Sie wird für zusätzliche Wegpunkte und persönliche Notizen im Cachelisting verwendet.&lt;br /&gt;
&lt;br /&gt;
==== Autoload ====&lt;br /&gt;
Für die Klassen aller drei Bibliotheken sind Autoloader installiert. Das heißt wenn man z.B. ein Cache-Objekt benötigt, muss man dafür nicht {{Codepath2|htdocs|lib2/logic/cache.class.php}} einbinden sondern man erzeugt einfach direkt das Objekt:&lt;br /&gt;
:&amp;lt;code&amp;gt;$cache = new cache();&amp;lt;/code&amp;gt;&lt;br /&gt;
{{Codepath2|htdocs/lib2/logic|cache.class.php}} wird dann automatisch geladen.&lt;br /&gt;
&lt;br /&gt;
=== Fremdbibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Die OC-Software macht ausgiebig Gebrauch von fertigen PHP- und JavaScript-Codebibliotheken. Eine vollständige Aufstellung incl. Codepfade, Bezugsquellen etc. enthält {{Codepath|doc/license.txt}}. Hier seien nur die wichtigsten davon erwähnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;widelist&amp;quot;&amp;gt;&lt;br /&gt;
* [http://www.smarty.net/ &#039;&#039;&#039;Smarty&#039;&#039;&#039;] wird als &amp;quot;Template-Engine&amp;quot; für lib2 verwendet. OC-spezifische Erweiterungen befinden sich in der Klasse &#039;&#039;OcSmarty&#039;&#039; und in {{Codepath2|htdocs|lib2/smarty/ocplugins}}. Mehr dazu im Abschnitt [[#Templates|Templates]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[http://htmlpurifier.org/ HTML Purifier]&#039;&#039;&#039; dient zum &amp;quot;Säubern&amp;quot; von HTML-Code, den der Benutzer z.B. in Cachebeschreibungen eingeben kann. lib1 und lib2 verwenden getrennte HTML-Purifier-Installationen. In lib2 wird er über die Klasse &#039;&#039;OcHTMLPurifier&#039;&#039; eingebunden und kann dort auch angepasst werden. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[http://www.tinymce.com/ TinyMCE]&#039;&#039;&#039; ist ein leistungsfähiger JavaScript-Wysiwyg-Texteditor. Er dient zum Bearbeiten von Cachebeschreibungen, Logs und Profiltexten. lib1 und lib2 verwenden beide die TinyMCE-Installation in {{Codepath|htdocs/resource2/tinymce}}. OC-spezifische Konfigurationsdaten gibt es in {{Codepath2|htdocs/resource2|tinymce/config}}. &lt;br /&gt;
&lt;br /&gt;
Von lib2-Code verwendete Bibliotheken sind in {{Codepath|htdocs/lib2}} (PHP) und {{Codepath|htdocs/resource2}} (JavaScript) angelegt. Bibliotheken für lib1 befinden sich an verschiedenen Stellen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdateien ==&lt;br /&gt;
&lt;br /&gt;
==== lib1-Konfiguration ====&lt;br /&gt;
&lt;br /&gt;
Die Einstellungen für lib1-Code befinden sich überwiegend in&lt;br /&gt;
:&#039;&#039;htdocs/lib/settings.inc.php&#039;&#039;&lt;br /&gt;
Diese Datei ist nur lokal vorhanden. Als Vorlage für das Aufsetzen einer neuen Produktiv-Installation gibt es die Datei {{Codepath2|htdocs/lib|settings-dist.inc.php}}, die nach &#039;&#039;settings.inc.php&#039;&#039; zu kopieren und anzupassen ist.&lt;br /&gt;
&lt;br /&gt;
Für [[Entwicklung/Entwicklersystem|Entwicklersysteme]] gibt es entsprechend die Vorlage {{Codepath2|htdocs/lib|settings-sample-dev.inc.php}}. Sie verwendet die Datei {{Codepath2|htdocs/lib|settings-dev.inc.php}}, in der die Grundeinstellungen für Entwicklersysteme zusammengefasst sind.&lt;br /&gt;
&lt;br /&gt;
Daneben gibt es noch zwei Konfigurationsdateien &#039;&#039;settings.inc.php&#039;&#039; für die Benachrichtigungs-Cronjobs, in {{Codepath|htdocs/util/notification}} und {{Codepath|htdocs/util/watchlist}}.&lt;br /&gt;
&lt;br /&gt;
Weiterhin verwendet lib1 auch Teile der lib2-Konfiguration, insbesondere {{Codepath2|htdocs/config2|locale.inc.php}}.&lt;br /&gt;
&lt;br /&gt;
==== lib2-Konfiguration ====&lt;br /&gt;
&lt;br /&gt;
Die lib2-Einstellungen befinden sich alle in {{Codepath|htdocs/config2}}. Sie werden &#039;&#039;alle&#039;&#039; in folgender Reihenfolge eingebunden, sobald man {{Codepath2|htdocs/lib2|web.inc.php}} oder {{Codepath2|htdocs/lib2|cli.inc.php}} einbindet:&lt;br /&gt;
&lt;br /&gt;
* sprachabhängige Einstellungen: {{Codepath2|htdocs/config2|locale.inc.php}}&lt;br /&gt;
* sonstige Default-Einstellungen: {{Codepath2|htdocs/config2|settings-dist.inc.php}}&lt;br /&gt;
* lokale Einstellungen: &#039;&#039;settings.inc.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auch hier sind Vorlagen für Produktiv- ({{Codepath2|htdocs/config2|settings-sample.inc.php}}) und Entwicklersystem ({{Codepath2|htdocs/config2|settings-sample-dev.inc.php}}) vorhanden, die nach &#039;&#039;settings.inc.php&#039;&#039; zu kopieren und and die lokale Systeminstallation anzupassen sind.&lt;br /&gt;
&lt;br /&gt;
==== Der Rootpath ====&lt;br /&gt;
&lt;br /&gt;
Wenn man in PHP-Scripte mit &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt; weitere Dateien einbindet, geschieht dies relativ zum Verzeichnispfad des Hauptscripts. (Daneben kann man auch weitere Pfade festlegen, in denen PHP nach passenden Scripten sucht.)&lt;br /&gt;
&lt;br /&gt;
Wie unter [[#Hauptmodule|Hauptmodule]] erläutert, befinden sich die Module der OC-Software auf verschiedenen Verzeichnisebenen Die Startseite liegt z.B. in {{Codepath|htdocs}}, das lib2-Cronjob-Modul dagegen in {{Codepath|htdocs/util2/cron}}. Alle diese Module binden lib1- oder lib2-Bibliothekscode ein, der weitere Unterscripte einbindet. Damit das alles funktioniert, wird im OC-Code ein &#039;&#039;Basispfad&#039;&#039; für alle Includes festgelegt. Dieser heißt&lt;br /&gt;
:&amp;lt;code&amp;gt;$opt[&#039;rootpath&#039;]&amp;lt;/code&amp;gt;&lt;br /&gt;
in lib2 und&lt;br /&gt;
:&amp;lt;code&amp;gt;$rootpath&amp;lt;/code&amp;gt;&lt;br /&gt;
in lib1.&lt;br /&gt;
&lt;br /&gt;
Sofern man keine weiteren Vorkehrungen trifft, wird dieser Rootpath automatisch als Relativpfad &amp;quot;./&amp;quot; gesetzt. Scripte in Unterverzeichnissen müssen ihn dagegen selbst setzen, z.B. &amp;quot;../&amp;quot; wenn das Script eine Ebene tiefer liegt, oder absolut als &amp;lt;code&amp;gt;dirname(__FILE__).&#039;../&#039;&amp;lt;/code&amp;gt;, wenn nicht bekannt ist, aus welchem aktuellen Verzeichnis ein Kommandozeilentool aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
== Konstanten ==&lt;br /&gt;
&lt;br /&gt;
Globale Konstanten sind an folgenden Stellen definiert:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/lib/consts.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/const.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/error.inc.php}}&lt;br /&gt;
* {{Codepath|htdocs/lib2/logic/const.inc.php}}&lt;br /&gt;
&lt;br /&gt;
Die lib2-Konstanten werden auch teilweise auch in lib1-Code verwendet.&lt;br /&gt;
&lt;br /&gt;
== Datenbank ==&lt;br /&gt;
&lt;br /&gt;
Die OC-Software ist nur für die Verwendung von MySQL ausgelegt. Zwar werden in lib2 keine MySQL-Funktionen mehr direkt aufgerufen, aber zahlreiche SQL-Statements verlassen sich auf MySQL-Syntax.&lt;br /&gt;
&lt;br /&gt;
=== Grundlegende Datenbankfunktionen ===&lt;br /&gt;
&lt;br /&gt;
Für lib2 befinden sich alle Funktionen in {{Codepath2|htdocs|lib2/db.inc.php}} und sind dort kurz dokumentiert, für lib1 in {{Codepath2|htdocs|lib/clicompatbase.inc.php}}. Datenbankverbindungen werden automatisch entsprechend den Konfigurationseinstellungen hergestellt, sobald man eine Query absetzt.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten Funktionen seien hier anhand von Beispielen erläutert:&lt;br /&gt;
&lt;br /&gt;
 sql(&amp;quot;UPDATE `caches` SET `size`=&#039;&amp;amp;1&#039; WHERE `cache_id`=&#039;&amp;amp;2&#039;&amp;quot;,&lt;br /&gt;
     $newsize, $cacheid);&lt;br /&gt;
&lt;br /&gt;
Hier wird die Größe eines Caches geändert. Variablen werden als fortlaufend numerierte Platzhalter &amp;amp;1, &amp;amp;2 etc. übergeben. Die Funktion &#039;&#039;sql&#039;&#039; ruft dann intern für jede Variable &amp;lt;code&amp;gt;mysql_real_escape_string()&amp;lt;/code&amp;gt; auf, was spezielle Zeichen wie &amp;quot; codiert und gleichzeitig [[wikipedia:SQL-Injection|SQL-Injections]] verhindert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Niemals dürfte Variablen direkt in SQL-Statements eingebaut werden!&#039;&#039;&#039; Wann immer möglich sind Platzhalter zu verwenden. Notfalls kann auch direkt mit &amp;lt;code&amp;gt;sql_escape()&amp;lt;/code&amp;gt; codiert werden, was allerdings Probleme verursacht, wenn ein &amp;quot;&amp;amp;&amp;quot; in den Daten enthalten ist: Die Funktion &amp;lt;code&amp;gt;sql()&amp;lt;/code&amp;gt; interpretiert es anschließend als Startzeichen eines Platzhalters.&lt;br /&gt;
&lt;br /&gt;
 $cachesize = sql_value(&amp;quot;&lt;br /&gt;
    SELECT `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    null, $cacheid);&lt;br /&gt;
&lt;br /&gt;
Hier wird die Größe eines Caches abgefragt. Falls die Cache-ID nicht gefunden wird, wird der Defaultwert &#039;&#039;null&#039;&#039; zurückgeliefert. Denke immer daran, den Defaultwert als ersten Parameter anzugeben! Ihn zu vergessen ist eine häufige Fehlerquelle.&lt;br /&gt;
&lt;br /&gt;
In der lib1 heißt die Funktion anders und kann nicht mit Platzhaltern umgehen; der entsprechende Code lautet dann:&lt;br /&gt;
&lt;br /&gt;
 $cachesize = sqlValue(&amp;quot;&lt;br /&gt;
    SELECT `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;quot; . sql_escape($cacheid) . &amp;quot;&#039;&amp;quot;,&lt;br /&gt;
    null);&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel demonstriert, wie der Inhalt einer Tabelle ausgelesen wird:&lt;br /&gt;
&lt;br /&gt;
  $rs = sql(&amp;quot;&lt;br /&gt;
    SELECT `cache_id`, `name`, `type` `size` FROM `caches`&lt;br /&gt;
    WHERE `cache_id`=&#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    $cacheid);&lt;br /&gt;
  while ($r = sql_fetch_assoc($rs))&lt;br /&gt;
  {&lt;br /&gt;
    // ... Weiterverarbeitung von $r[&#039;cache_id&#039;], $r[&#039;name&#039;] etc.&lt;br /&gt;
  }&lt;br /&gt;
  sql_free_result($rs);&lt;br /&gt;
&lt;br /&gt;
=== Slave-Server ===&lt;br /&gt;
&lt;br /&gt;
Beide OC-Libraries sehen eine Lastverteilung auf einen Haupt-Datebankserver (Master) und einen oder mehrere &amp;quot;Slaves&amp;quot; vor, die replizierte Daten des Masters enthalten; siehe {{Codepath|doc/replication.txt}}. Dazu gibt es SQL-Funktionen mit dem Zusatz &amp;quot;_slave&amp;quot;, z.B. &amp;lt;code&amp;gt;sql_slave()&amp;lt;/code&amp;gt;, die von &amp;quot;datenbankintensiven&amp;quot; Programmmodulen wie z.B. der Suche ({{Codepath2|htdocs|search.php}}) anstatt der Basisfunktionen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Wenn per &#039;&#039;settings.inc.php&#039;&#039; keine Slave-Server konfiguriert sind, laufen alle Zugriffe über den Master. Zurzeit betreibt kein Opencaching-Knoten Slave-Server; die Kapazität des Masters reicht überall aus.&lt;br /&gt;
&lt;br /&gt;
=== Temporärtabellen ===&lt;br /&gt;
&lt;br /&gt;
Da Subqueries bei MySQL recht ineffizient sind, sind manchmal temporäre Tabellen für Zwischenergebnisse nötig.&lt;br /&gt;
&lt;br /&gt;
lib2 sieht einen speziellen Mechanismus zur Verwaltung von Temporärtabellen vor. Sie werden in einer eigenen Datenbank abgelegt, für die erweiterte Zugriffsrechte (Tabellen anlegen/löschen) vergeben werden, und werden per Cronjob automatisch aufgeräumt, wenn sie nicht gleich wieder gelöscht wurden.&lt;br /&gt;
&lt;br /&gt;
Ein (nicht unbedingt sinnvolles) Beispiel für die Verwendung von lib2-Temporärtabellen. Die temporäre Tabelle heißt &amp;quot;tmp_caches&amp;quot; und wird in SQL-Statements über einen Platzhalter referenziert:&lt;br /&gt;
&lt;br /&gt;
  sql_temp_table(&#039;tmp_caches&#039;);  // Tabelle registrieren&lt;br /&gt;
  sql(&amp;quot;                          // Tabelle anlegen&lt;br /&gt;
    CREATE TEMPORARY TABLE &amp;amp;tmp_caches ENGINE=MEMORY&lt;br /&gt;
    SELECT `cache_id` FROM `caches`&lt;br /&gt;
    WHERE `user`.`user_id` = `caches`.`user_id`&lt;br /&gt;
      AND `user`.`country` = &#039;&amp;amp;1&#039;&amp;quot;,&lt;br /&gt;
    $country);&lt;br /&gt;
 &lt;br /&gt;
  $rs = sql(&amp;quot;                    // Tabelle auslesen&lt;br /&gt;
    SELECT * FROM `cache_desc`, &amp;amp;tmp_caches&lt;br /&gt;
    WHERE `cache_desc`.`cache_id` = &amp;amp;tmp_caches.`cache_id`&amp;quot;);&lt;br /&gt;
  // ... Daten weiterverarbeiten&lt;br /&gt;
  sql_free_result($rs);&lt;br /&gt;
 &lt;br /&gt;
  sql_drop_temp_table(&#039;tmp_caches&#039;);  // Tabelle löschen&lt;br /&gt;
&lt;br /&gt;
=== Datenbankstruktur; statische Daten ===&lt;br /&gt;
&lt;br /&gt;
Datenbankstruktur und -inhalte werden an folgenden Stellen unter {{Codepath|htdocs/doc/sql}} definiert:&lt;br /&gt;
&lt;br /&gt;
* Tabellen, Felder und Indizes in {{Codepath2|htdocs/doc/sql|tables}}&lt;br /&gt;
* Stored Functions, Procedures und Triger in {{Codepath2|htdocs/doc/sql|stored-proc}}&lt;br /&gt;
* statische Daten wie z.B. Menüs, Cachetypen und sprachabhängige Texte in {{Codepath2|htdocs/doc/sql|static-data/data.sql}}.&lt;br /&gt;
&lt;br /&gt;
Es gibt weitere (geographische) &amp;quot;statische Daten&amp;quot;, die aufgrund ihres Umfangs nicht im Git-Repository enthalten sind; siehe {{Codepath2|htdocs/doc/sql|static-data/static-data.txt}}. Für Entwickler steht auf Anfrage ein Datenbankdump zur Verfügung, der eine vollständig initialisierte OC-Datenbank enthält (Veröffentlichung ist geplant). Weitere Updates können dann per&lt;br /&gt;
:{{Codepath|bin/dbupdate.php}}&lt;br /&gt;
eingepflegt werden, also man muss die oben aufgelisteten Dateien nicht von Hand weiterverarbeiten.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[Entwicklung/Datenbankversionierung|Datenbankversionierung]]&lt;br /&gt;
&lt;br /&gt;
==== OKAPI ====&lt;br /&gt;
&lt;br /&gt;
Die [[OKAPI]]-Tabellen werden zwar in der gleichen Datenbank abgelegt, sind aber unabhängig von den OC-Tabellen und daher &#039;&#039;nicht&#039;&#039; in {{Codepath|htdocs/doc/sql}} definiert. Bei [http://code.google.com/p/opencaching-api/#Installation_/_Update_Instructions Installation der OKAPI] werden sie automatisch angelegt und bei OKAPI-Updates automatisch aktualisiert. {{Codepath2|bin|dbupdate.php}} führt auch OKAPI-Updates durch, falls die OKAPI installiert ist.&lt;br /&gt;
&lt;br /&gt;
Auch der OKAPI-&#039;&#039;Code&#039;&#039; ist unabhängig vom OC-Code, d.h. sämtliche Datenbankzugriffe sind dort redundant implementiert. &#039;&#039;&#039;Bei Änderungen an Datenstrukturen oder -inhalten ist daher immer zu prüfen, ob eine Anpassung der OKAPI nötig ist!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Trigger &amp;amp; Stored Procedures ===&lt;br /&gt;
&lt;br /&gt;
Der Opencaching-Code macht reichlich Gebrauch von gespeicherten Datenbank-Funktionen und Triggern. Sie werden dazu eingesetzt, um die Konsistenz der Datenbankinhalte zu gewährleisten. Vor dem Hintergrund, dass drei unabhängige Frameworks parallel auf die Datenbank zugreifen – lib1, lib2 und OKAPI (und manchmal noch ein Administrator von Hand) – ist diese Vorgehensweise ratsam. Sie macht die OC.de-Datenbank ausgesprochen robust.&lt;br /&gt;
&lt;br /&gt;
Alle Datenbankfunktionen sind in &lt;br /&gt;
:{{Codepath|htdocs/doc/sql/stored-proc}}&lt;br /&gt;
definiert. Der aktuelle Stand befinden sich in {{Codepath2|htdocs/doc/sql/stored-proc|maintain-current.inc.php}}; für die [[Entwicklung/Datenbankversionierung|Datenbankversionierung]] können zusätzliche ältere Stände bzw. Update-Scripte existieren.&lt;br /&gt;
&lt;br /&gt;
Der Inhalt des &#039;&#039;maintain&#039;&#039;-Scripts lässt sich grob untergliedern in&lt;br /&gt;
* allgemeine Funktionen für komplexe Berechnungen, z.B. &amp;lt;code&amp;gt;DECTOWP&amp;lt;/code&amp;gt; für die Berechnung neuer OC-Wegpunkte&lt;br /&gt;
* Update-Funktionen für bestimmte Felder (&amp;lt;code&amp;gt;sp_update_*&amp;lt;/code&amp;gt;) die entweder von verschiedenen Triggern aufgerufen werden oder zur Datenbankwartung aus {{Codepath2|htdocs|dbmaint.php}} (Menü Admin|Datenbankwartung)&lt;br /&gt;
* Trigger-Prozeduren&lt;br /&gt;
&lt;br /&gt;
Eine Besonderheit sind &#039;&#039;&#039;globale Variablen&#039;&#039;&#039; die zur Parameterübergabe von PHP-Scripten an Datenbankfunktionen oder zwischen Datenbankfunktionen verwendet werden. Sie sind in {{Codepath2|htdocs/doc/sql/stored-proc|maintain-current.inc.php}} erläutert.&lt;br /&gt;
&lt;br /&gt;
=== SQL-Debugger ===&lt;br /&gt;
&lt;br /&gt;
lib1 und lib2 enthalten einen nützlichen SQL-Debugger ({{Codepath2|htdocs|lib/sqldebugger.inc.php}} bzw. {{Codepath2|htdocs|lib2/sqldebugger.class.php}}). Er zeigt für jedes ausgeführte SQL-Statment&lt;br /&gt;
&lt;br /&gt;
* das Statement selbst,&lt;br /&gt;
* ein [http://dev.mysql.com/doc/refman/5.1-olh/de/using-explain.html EXPLAIN],&lt;br /&gt;
* die ersten zurückgelieferten Datensätze, falls vorhanden,&lt;br /&gt;
* die Ausführungszeit,&lt;br /&gt;
* eventuelle MySQL-Warnungen.&lt;br /&gt;
&lt;br /&gt;
Der SQL-Debugger muss in den [[#Konfigurationsdateien|Settings]] aktiviert sein – für lib1 per &amp;lt;code&amp;gt;$sql_debug = true&amp;lt;/code&amp;gt;, in lib2 durch Setzen des Flags &amp;lt;code&amp;gt;DEBUG_SQLDEBUGGER&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;$opt[&#039;debug&#039;]&amp;lt;/code&amp;gt;. Wahlweise kann man diese Flags auch nur in einzelnen zu debuggenden PHP-Quelltexten setzen.&lt;br /&gt;
&lt;br /&gt;
Anschließend ist die zu debuggende Seite mit dem URL-Parameter &amp;lt;code&amp;gt;sqldebug=1&amp;lt;/code&amp;gt; aufzurufen.&lt;br /&gt;
&lt;br /&gt;
== Temporärdaten und Inhalte im Dateisystem ==&lt;br /&gt;
&lt;br /&gt;
Manche Dinge werden in Dateien statt in der Datenbank abgelegt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mediumlist&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Hochgeladene Bilder&#039;&#039;&#039; befinden sich üblicherweise in {{Codepath|htdocs/images/uploads}} (in den Settings änderbar), die Thumbnails darunter in {{Codepath2|htdocs/images/uploads|thumbs}}. Generierte Statistikbilder werden in {{Codepath|htdocs/images/statpics}} abgelegt.&lt;br /&gt;
* Herunterzuladende, gepackte &#039;&#039;&#039;Ausgaben der [[XML-Schnittstelle]]&#039;&#039;&#039; werden in {{Codepath|htdocs/download/zip}} zwischengespeichert (ebenfalls konfigurierbar).&lt;br /&gt;
* {{Codepath|htdocs/cache2}} enthält zwischengespeicherte [[#Templates|Templates]], [[#Übersetzung|Übersetzungsdateien]] für gettext und verschiedene Temporärdaten. Ein guter Teil dieser Daten wird von {{Codepath|bin/clear-webcache.php}} neu generiert.&lt;br /&gt;
* {{Codepath|htdocs/var}} enthält zwischengespeicherte OKAPI-Daten (die OKAPI legt allerdings auch eine Menge &amp;quot;gecachete&amp;quot; in der Datenbank ab) und Fehlerprotokolle.&lt;br /&gt;
* {{Codepath|htdocs/cache}} enthält vermutlich nur noch temporäre Prozess-Synchronisationsdateien (.pid-Dateien) der lib1-cronjobs für Log- und Cache-Benachrichtigungen.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:Template (Programmierung)|Templates]] dienen in Webanwendungen dazu, die Generierung von aus- und einzugebenden Daten von deren HTML-Darstellung zu trennen. HTML- und JavaScript-Code wird komplett in den Template-Dateien untergebracht, PHP-Code soweit wie irgend möglich in PHP-Scripten.&lt;br /&gt;
&lt;br /&gt;
Die Einbindung der Templates in den PHP-Programmablauf geschieht wie folgt:&lt;br /&gt;
# Festlegung, welche Templatedatei verwendet wird&lt;br /&gt;
# Zuweisung von variablen Inhalten an das Template&lt;br /&gt;
# Darstellung des Templates&lt;br /&gt;
Für alle drei Punkte gibt es entsprechende Bibliotheksfunktionen.&lt;br /&gt;
&lt;br /&gt;
=== lib1-Templates ===&lt;br /&gt;
&lt;br /&gt;
Die alte Library enthält ein selbstgemachtes, simples Templatesystem. Die Templatedateien befinden sich in {{Codepath|htdocs/lang/de/ocstyle}} und enthalten den auszugebenden HTML- und JavaScript-Code. Der Name der Template-Datei wird im PHP-Code über die globale Variable &amp;lt;code&amp;gt;$tplname&amp;lt;/code&amp;gt; festgelegt, z.B.&lt;br /&gt;
:&amp;lt;code&amp;gt;$tplname = &#039;newcache&#039;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für alle variablen Inhalte werden im Template Platzhalter wie z.B. &amp;lt;code&amp;gt;{cachename}&amp;lt;/code&amp;gt; verwendet; die PHP-Variable wird dann übergeben mit&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_set_var(&#039;cachename&#039;, $cachename);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sofern der variable Teil auch HTML-Code oder etwas zu Übersetzendes enthält, wird dies in speziellen Include-Dateien abgelegt, z.B.&lt;br /&gt;
&lt;br /&gt;
 $cachelink = &#039;&amp;lt;a href=&amp;quot;viewcache.php?cacheid={cacheid}&amp;quot;&amp;gt;{cachename}&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
 $outputformat_notexist = t(&#039;The selected output format is unknown!&#039;);&lt;br /&gt;
&lt;br /&gt;
Die Include-Datei wird im PHP-Hauptmodul eingebunden und die Variablen per &amp;lt;code&amp;gt;mb_ereg_replace&amp;lt;/code&amp;gt; ersetzt, bevor das Ganze per &amp;lt;code&amp;gt;tpl_set_var()&amp;lt;/code&amp;gt; ans Template übergeben wird.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_BuildTemplate();&amp;lt;/code&amp;gt;&lt;br /&gt;
stellt schließlich das Template dar und beendet das PHP-Script.&lt;br /&gt;
&lt;br /&gt;
Alle [[Opencaching]]-Seiten außer OC.de und OC.se/no verwenden noch das lib1-Templatesystem.&lt;br /&gt;
&lt;br /&gt;
=== lib2-Templates (Smarty) ===&lt;br /&gt;
&lt;br /&gt;
==== Grundlagen ====&lt;br /&gt;
&lt;br /&gt;
Die neue Bibliothek verwendet die leistungsfähige [[wikipedia:Smarty|Smarty]]-Engine. Smarty-Templates bestehen neben dem HTML/JavaScript-Code im Wesentlichen aus Kontrollstrukturen und Variableneinbindungen. Die Templates sind in {{Codepath|htdocs/templates2/ocstyle}} abgelegt.&lt;br /&gt;
&lt;br /&gt;
Die lib2 definiert die globale Variable&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl&amp;lt;/code&amp;gt;&lt;br /&gt;
über die alle Zugriffe auf Smarty und die Templates laufen. Am Beginn des PHP-Moduls wird jeweils das Template initialisiert:&lt;br /&gt;
&lt;br /&gt;
 $tpl-&amp;gt;name = &#039;newemail&#039;;   // Name der Template-Datei&lt;br /&gt;
 $tpl-&amp;gt;menuitem = MNU_MYPROFILE_DATA;  // Menü-ID, siehe doc/sql/static-data/data.sql&lt;br /&gt;
 $tpl-&amp;gt;caching = false;     // nicht zwischenspeichern&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;caching&#039;&#039;-Parameter legt fest, ob das Ergebnis der Templateausgabe zwischengespeichert wird; die Dauer der Zwischenspeicherung ist dann ggf. per&lt;br /&gt;
 $tpl-&amp;gt;cachling_lifetime = 1800;  // halbe Stunde Caching&lt;br /&gt;
festzulegen. Dies empfiehlt sich bei häufig aufgerufenen, rechenintensiven Seiten. Seiten mit ständig wechselndem bzw. benutzerabhängigem Inhalt dürfen &#039;&#039;&#039;nicht&#039;&#039;&#039; &amp;quot;gecacht&amp;quot; werden!&lt;br /&gt;
&lt;br /&gt;
Neben Caching der Template-&#039;&#039;Ausgaben&#039;&#039; gibt es auch eine &#039;&#039;Vorcompilierung&#039;&#039; der Templates selbst. Diese erfolgt&lt;br /&gt;
* einmalig für alle Templates per &amp;lt;code&amp;gt;bin/clear-webcache.php&amp;lt;/code&amp;gt;,&lt;br /&gt;
* automatisch, wenn ein geändertes Template abgerufen wird,&lt;br /&gt;
* jedesmal bei jedem Template-Aufruf, falls in den Settings der Debug-Schalter &amp;lt;code&amp;gt;DEBUG_TEMPLATES&amp;lt;/code&amp;gt; gesetzt ist.&lt;br /&gt;
&lt;br /&gt;
Die zwischengespeicherten Templates werden in &amp;lt;code&amp;gt;htdocs/cache2/smarty&amp;lt;/code&amp;gt; abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf die Initialisierung des Templates folgen Variablen-Zuweisungen (s.u.) und schließlich die Darstellung mit&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;display();&amp;lt;/code&amp;gt;&lt;br /&gt;
die das PHP-Script beendet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Smarty-Syntax&lt;br /&gt;
&lt;br /&gt;
Im Folgenden sind ein paar grundlegende Smarty-Elemente erklärt; ansonsten sei auf die [http://www.smarty.net/docsv2/de/ Smarty-Dokumentation] verwiesen und auf die vielen Bespiele in {{Codepath2|htdocs|templates2/ocstyle}}. (Achtung: Der OC-Code verwendet eine ältere Smarty-Version; nicht alles was in der Doku steht ist hier auch schon verfügbar!)&lt;br /&gt;
&lt;br /&gt;
Alle Smarty-Elemente stehen in geschweiften Klammern {}. Wenn das Template solche Klammern für andere Zwecke verwendet, z.B. für JavaScript-Kontrollstrukturen, müssen diese von der Smarty-Interpretation ausgeklammert werden:&lt;br /&gt;
&lt;br /&gt;
  {literal}&lt;br /&gt;
  function js_function()&lt;br /&gt;
  {&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
  {/literal}&lt;br /&gt;
&lt;br /&gt;
==== Variablen ====&lt;br /&gt;
&lt;br /&gt;
Variablen werden z.B. per&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;assign(&#039;cachename&#039;, $cache[&#039;name&#039;]);&amp;lt;/code&amp;gt;&lt;br /&gt;
an das Template übergeben und dort als&lt;br /&gt;
:&amp;lt;code&amp;gt;{$cachename}&amp;lt;/code&amp;gt;&lt;br /&gt;
verwendet. Es können auch Arrays übergeben werden, deren Elemente statt [] mit einem Punkt referenziert werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;{$cache.name}&amp;lt;/code&amp;gt;&lt;br /&gt;
steht z.B. für &amp;lt;code&amp;gt;$caches[&#039;name&#039;]&amp;lt;/code&amp;gt;, übergeben per &amp;lt;code&amp;gt;$tpl-&amp;gt;assign(&#039;caches&#039;, ...)&amp;lt;/code&amp;gt;. Dies funktioniert auch mit numerischen Indizes – z.B. &amp;lt;code&amp;gt;{$user.0}&amp;lt;/code&amp;gt; für das erste Element eines $user-Arrays – und mit mehr als zwei Ebenen.&lt;br /&gt;
&lt;br /&gt;
Auch simple Berechnung sind möglich, z.B. &amp;lt;code&amp;gt;{$waylength*2}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu dem vom PHP-Code übergebenen Variablen kann man auch eigene definieren, z.B.&lt;br /&gt;
:&amp;lt;code&amp;gt;{assign var=counter value=1}&amp;lt;/code&amp;gt;&lt;br /&gt;
Mit &amp;lt;code&amp;gt;{capture}&amp;lt;/code&amp;gt; lassen sich u.U. auch komplexere Ausdrücke in einer Variable unterbringen.&lt;br /&gt;
&lt;br /&gt;
==== Kontrollstrukturen ====&lt;br /&gt;
&lt;br /&gt;
Bedingte Einbindung von Template-Komponenten ist mit &amp;lt;code&amp;gt;{if} … {elseif} … {else} … {/if}&amp;lt;/code&amp;gt;-Anweisungen möglich. Dabei können auch komplexere PHP-Ausdrucke verwendet werden, die als Boolean ausgewertet werden:&lt;br /&gt;
&lt;br /&gt;
  {if $show_statistics &amp;amp;&amp;amp; ($statdata|@count &amp;gt; 0)}&lt;br /&gt;
    ... Statistik ausgeben ...&lt;br /&gt;
  {/if}&lt;br /&gt;
&lt;br /&gt;
(@count ist eine [[#Benutzerdefinierte Erweiterungen; Übersetzungen|benutzerdefinierte Funktion]])&lt;br /&gt;
&lt;br /&gt;
Eine weiter häufig verwendete Struktur ist &amp;lt;code&amp;gt;{foreach}&amp;lt;/code&amp;gt; zum iterieren von Arrayelementen:&lt;br /&gt;
&lt;br /&gt;
  {foreach from=$caches item=cache}&lt;br /&gt;
    &amp;lt;td&amp;gt;{$cache.name|escape}&amp;lt;/td&amp;gt;&lt;br /&gt;
  {/foreach}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|escape&amp;lt;/code&amp;gt; ist ein &#039;&#039;Modifizierer&#039;&#039;, der den Variableninhalt weiterverarbeitet. In diesem Fall werden HTML-Entitäten &amp;quot;escaped&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;{strip}...{/strip}&amp;lt;/code&amp;gt; lassen sich alle Whitespaces (Leerzeichen, Tabs, Zeilenumbrüche) in einem Abschnitt herausfiltern, was die auszugebende Datenbank reduziert. Aber Vorsicht, falls Whitespaces als Trennzeichen in Ausgaben benötigt werden!&lt;br /&gt;
&lt;br /&gt;
==== Benutzerdefinierte Erweiterungen ====&lt;br /&gt;
&lt;br /&gt;
Smarty lässt sich um eigene&lt;br /&gt;
* Elemente (&amp;quot;Blocks&amp;quot;),&lt;br /&gt;
* Modifizierer und&lt;br /&gt;
* Funktionen&lt;br /&gt;
erweitern. Der Opencaching-Code enthält eine Reihe solcher eigener Erweiterungen in {{Codepath2|htdocs|lib2/smarty/ocplugins}}.&lt;br /&gt;
&lt;br /&gt;
Die wichtigste Erweiterung ist das &amp;lt;code&amp;gt;{t}&amp;lt;/code&amp;gt;-Element zum Übersetzen von Texten. Alle Texte in den Templates werden in Englisch geschrieben und in &amp;lt;code&amp;gt;{t} ... {/t}&amp;lt;/code&amp;gt; eingeschlossen; sie werden dadurch automatisch dem Übersetzungssystem zugeführt. Mehr dazu im Kapitel [[#Übersetzungen|Übersetzungen]].&lt;br /&gt;
&lt;br /&gt;
=== Systemtemplate und Menüsystem ===&lt;br /&gt;
&lt;br /&gt;
Was oben über einzelne Templates geschrieben wurde betrifft nur den Teil der Seite, der im &#039;&#039;Content-Container&#039;&#039; dargestellt wird – also dem Teil unterhalb und rechts des Menüsystems und oberhalb der Fußzeile. Alles &amp;quot;drumherum&amp;quot; wird vom &#039;&#039;Systemtemplate&#039;&#039; erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Codedateien sind daran in der lib1 beteiligt ...&lt;br /&gt;
* Systemtemplate: {{Codepath2|htdocs|lang/de/ocstyle/main.tpl.php}}&lt;br /&gt;
* Menüdefinitionen: {{Codepath2|htdocs|lang/de/ocstyle/lib/menu.php}}&lt;br /&gt;
* PHP-Framework: {{Codepath2|htdocs|lib/common.inc.php}} &amp;amp;rarr; tpl_BuildTemplate()&lt;br /&gt;
... und in der lib2:&lt;br /&gt;
* Systemtemplate: {{Codepath2|htdocs|templates2/ocstyle/sys_main.tpl}}&lt;br /&gt;
* Menüsystem: Tabelle &#039;sys_menu&#039; per {{Codepath2|htdocs|doc/sql/static-data/data.sql}}, {{Codepath2|htdocs|lib2/menu.class.php}}&lt;br /&gt;
* PHP-Framework: {{Codepath2|htdocs|lib2/OcSmarty.class.php}}&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Hauptmenü-Punkte sind via [[#Konfigurationsdateien|Konfigurationsdateien]] erzeugbar.&lt;br /&gt;
&lt;br /&gt;
=== Email-Templates ===&lt;br /&gt;
&lt;br /&gt;
Auch der Inhalt (&#039;&#039;body&#039;&#039;) von Emails wird über Templates erzeugt.&lt;br /&gt;
&lt;br /&gt;
lib1-Email-Templates befinden sich in {{Codepath|htdocs/lang/de/ocstyle/email}}, {{Codepath|htdocs/util/notification}} und {{Codepath|htdocs/util/watchlist}} und werden von den entsprechenden PHP-Modulen direkt per &amp;lt;code&amp;gt;mb_ereg_replace()&amp;lt;/code&amp;gt; aufgelöst.&lt;br /&gt;
&lt;br /&gt;
lib2-Email-Templates liegen in {{Codepath|htdocs/templates2/mail}} und werden von &amp;lt;code&amp;gt;mail.class.php&amp;lt;/code&amp;gt; per Smarty verarbeitet.&lt;br /&gt;
&lt;br /&gt;
=== OKAPI ===&lt;br /&gt;
Die OKAPI hat ein eigenes Templatesystem; mehr dazu im Abschnitt [[#OKAPI|OKAPI]].&lt;br /&gt;
&lt;br /&gt;
== CSS Style Sheets ==&lt;br /&gt;
Die Style Sheets befinden sich in {{Codepath|htdocs/resource2/ocstyle/css}}.&lt;br /&gt;
&lt;br /&gt;
== Grafiken ==&lt;br /&gt;
&lt;br /&gt;
Grafiken für Icons und andere Dinge verteilen sich – soweit es keine Drittbibliotheken betrifft – über drei Verzeichnisse:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/images}} (lib2 und lib2)&lt;br /&gt;
* {{Codepath|htdocs/lang/de/ocstyle/images}} (lib1)&lt;br /&gt;
* {{Codepath|htdocs/resource2/ocstyle/images}} (lib2)&lt;br /&gt;
&lt;br /&gt;
Hier herrscht etwas Chaos. Manches ist mehrfach vorhanden - auch innerhalb &#039;&#039;einer&#039;&#039; Library - oder inkonsistent abgelegt, die Dateitypen wechseln zwischen GIF und PNG. Glattziehen lässt sich das kaum, weil Grafiken auch gerne von anderer Stelle aus verlinkt werden, z.B. aus Cachelistings - teils sogar von anderen Plattformen aus. Schiebt man die Grafiken einfach weg oder ändert das Format, zerstört es unbemerkt Cachebeschreibungen.&lt;br /&gt;
&lt;br /&gt;
Zur Kompatibilität mit alten Cachebeschreibungen und Logs liegen in folgenden Verzeichnissen Grafiken, die anderweitig nicht mehr verwendet werden:&lt;br /&gt;
&lt;br /&gt;
* {{Codepath|htdocs/lang/de/stdstyle/images}}&lt;br /&gt;
* {{Codepath|htdocs/lib/tinymce/plugins/emotions/images}}&lt;br /&gt;
* {{Codepath|htdocs/resource2/stdstyle/images}}&lt;br /&gt;
&lt;br /&gt;
== Übersetzung ==&lt;br /&gt;
&lt;br /&gt;
Der OC-Code ist mehrsprachig und frei übersetzbar, mit Ausnahme&lt;br /&gt;
* der Benachrichtigungs-Emails, die es bislang nur in Deutsch gibt (-&amp;gt; http://redmine.opencaching.de/issues/141)&lt;br /&gt;
* des Garmin-Download-Dialogs ({{Codepath2|htdocs|garmin.php}}), dessen untere Hälfte es nur in Deutsch und Englisch gibt (siehe {{Codepath|htdocs/resource2/ocstyle/js/GarminDisplay.js}})&lt;br /&gt;
(weitere noch nicht lokalisierbare Module bitte ergänzen!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Lokalisierung je nach gewählte Sprache erfolgt grundsätzlich mit folgenden Mechanismen:&lt;br /&gt;
* In Templates über die Smarty-Tags &amp;lt;code&amp;gt;{t}English Text{/t}&amp;lt;/code&amp;gt;. Hierbei können auch Variablen eingesetzt werden, z.B.&lt;br /&gt;
*:&amp;lt;code&amp;gt;{t 1=$cachename 2=$username}The geocache %1 has been found by %2{/t}&amp;lt;/code&amp;gt;&lt;br /&gt;
* Notfalls direkt im PHP-Code durch Aufruf von &amp;lt;code&amp;gt;$translate-&amp;gt;t()&amp;lt;/code&amp;gt;, z.B.&lt;br /&gt;
*:&amp;lt;code&amp;gt;$text = $translate-&amp;gt;t(&#039;New password code&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, basename(__FILE__), __LINE__)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Bei Artikelseiten, die via {{Codepath|htdocs/articles.php}} dargestellt werden, per Ablage der Templates in Unterverzeichnissen von {{Codepath|htdocs/templates2/ocstyle/articles}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Übersetzungssystem arbeitet intern mit &amp;lt;code&amp;gt;gettext()&amp;lt;/code&amp;gt;. Die Strings dafür befinden sich in der Tabellen &#039;&#039;sys_trans&#039;&#039; und &#039;&#039;sys_trans_text&#039;&#039;. Man kann sie direkt via {{Codepath2|htdocs/doc/sql/static-data|data.sql}} einpflegen, oder mit dem &amp;quot;Schnellübersetzungsmodus&amp;quot; + &amp;quot;SQL-Export&amp;quot; von {{Codepath2|htdocs|translate.php}} (Menü Admin|Übersetzung). Letzteres kann allerdings jede Menge Git-Merge-Konflikte beim Zusammenführen verschiedener Branches erzeugen, daher werden OC.de-Übersetzungen derzeit nur direkt in {{Codepath2|htdocs/doc/sql/static-data|data.sql}} eingepflegt.&lt;br /&gt;
&lt;br /&gt;
Achtung: &#039;&#039;&#039;Auch für die englische Seitendarstellung läuft nochmal alles durch den Übersetzer&#039;&#039;&#039;, Artikel ausgenommen. Die englischen Originaltexte in den Templates oder im PHP-Code sind also nur eine Basis für die weitere Übersetzung. Kleinere Fehler dort müssen nicht korrigiert werden, solange die Texte verständlich sind. &#039;&#039;Wenn&#039;&#039; dort etwas korrigiert wird, muss es gleichzeitig auch in der Tabelle &#039;&#039;sys_trans&#039;&#039; in {{Codepath2|htdocs/doc/sql/static-data|data.sql}} geändert werden!&lt;br /&gt;
&lt;br /&gt;
Opencaching.de gibt es zurzeit in Deutsch, Englisch, Italienisch und Spanisch. Die Übersetzungen werden durch den von Opencaching Deutschland eingesetzten Code Maintainer organisiert.&lt;br /&gt;
&lt;br /&gt;
== Fehlerbehandlung ==&lt;br /&gt;
&lt;br /&gt;
Der OC-Code verwendet kein Exception Handling (mit Ausnahme der OKAPI). Wenn etwas fehlschlägt, wird dies durch den Rückgabewert der betreffenden Funktion signalisiert und entsprechend reagiert. Würde man den betroffenen Funktionen noch einen Namenszusatz spendieren, der die mögliche Fehlerrückgabe kennzeichnet, wäre dieses System transparenter und in sich weniger fehleranfällig als ein strukturiertes Exception Handling.&lt;br /&gt;
&lt;br /&gt;
==== fehlerhafte Benutzereingaben ====&lt;br /&gt;
Wenn es Probleme mit einer Benutzereingabe gibt, wird das betreffende Template nochmals angezeigt und an passender Stelle eine mit dem CSS-Stil &amp;lt;code&amp;gt;errormsg&amp;lt;/code&amp;gt; formatierte Meldung eingeblendet. Dies ist jeweils entsprechend zu implementieren.&lt;br /&gt;
&lt;br /&gt;
==== erkanntes Problem ====&lt;br /&gt;
Wenn anderweitig ein nicht handhhabbares Problem erkannt wird, wird das Fehlertemplate angezeigt. In &#039;&#039;&#039;lib1&#039;&#039;&#039; befindet sich dies in {{Codepath2|htdocs|lang/de/ocstyle/error.tpl.php}} und wird aufgerufen per&lt;br /&gt;
:&amp;lt;code&amp;gt;tpl_errorMsg(&#039;original_templatename&#039;, $fehlermeldung);&amp;lt;/code&amp;gt;&lt;br /&gt;
z.B.&lt;br /&gt;
 $error_desc_not_found = t(&#039;(internal error) The description is not available.&#039;);&lt;br /&gt;
 ...&lt;br /&gt;
 tpl_errorMsg(&#039;editdesc&#039;, $error_desc_not_found);&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;&#039;lib2&#039;&#039;&#039;-Fehlertemplate befindet sich in bzw. {{Codepath2|htdocs|templates2/ocstyle/error.tpl}} und wird verwendet mit&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;error(Fehlernummer)&amp;lt;/code&amp;gt;&lt;br /&gt;
oder&lt;br /&gt;
:&amp;lt;code&amp;gt;$tpl-&amp;gt;error($fehlermeldung);&amp;lt;/code&amp;gt;&lt;br /&gt;
Die Fehlernummern sind in {{Codepath2|htdocs|lib2/error.inc.php}} definiert.&lt;br /&gt;
&lt;br /&gt;
; SQL-Fehler&lt;br /&gt;
&lt;br /&gt;
Bei MySQL-Fehlern wird ein Fehlertemplate anzeigt und eine Admin-Email versandt, sofern in den [[#Konfigurationsdateien|Settings]] eine Mailadresse hinterlegt ist. In der lib1 ist sie in&lt;br /&gt;
:&amp;lt;code&amp;gt;$sql_errormail&amp;lt;/code&amp;gt;&lt;br /&gt;
einzutragen, in der lib2 in&lt;br /&gt;
:&amp;lt;code&amp;gt;$opt[&#039;db&#039;][&#039;error&#039;][&#039;mail&#039;]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Entwicklersysteme werden so konfiguriert, dass das komplette SQL-Statement auch direkt angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann man per &amp;lt;code&amp;gt;$sql_warntime&amp;lt;/code&amp;gt; (lib1) bzw. &amp;lt;code&amp;gt;$opt[&#039;db&#039;][&#039;warn&#039;][&#039;time&#039;]&amp;lt;/code&amp;gt; (lib2) eine Warnschwelle für zu lange SQL-Ausführungszeiten festlegen. Bei Überschreitung werden dann Admin-Mails erzeugt.&lt;br /&gt;
&lt;br /&gt;
==== unerkanntes Problem ====&lt;br /&gt;
&lt;br /&gt;
{{Codepath2|htdocs|lib2/errorhandler.inc.php}} enthält ein noch in der Testphase befindlichen Handler für PHP-Fehler, der auch in lib1 eingebunden ist. Er wird bei PHP-Fehlern aktiv, die (abhängig von der &#039;&#039;error_reporting&#039;&#039;-Einstellung in der PHP-Konfiguration) zu einem Abbruch des Scripts führen. Es wird dann eine Fehlermeldung anzeigt und ggf. eine Admin-Mail erzeugt. Es wird die gleiche Emailkonfiguration wie für bei SQL-Problemen (s.o.) verwendet.&lt;br /&gt;
&lt;br /&gt;
Dieser PHP-Errorhandler ist derzeit nur aktiviert, wenn in der Konfiguration der Debug-Modus eingeschaltet ist. Ansonsten erscheint bei Fehlern eine leere Seite.&lt;br /&gt;
&lt;br /&gt;
== OKAPI ==&lt;br /&gt;
&lt;br /&gt;
Die Opencaching-API ist ein eigenständiges PHP-Projekt, dessen Code auf verschiedenen OC-Seiten zum Einsatz kommt. Die Projekt-Homepage ist http://code.google.com/p/opencaching-api/. Beiträge, die nicht vom Code-Maintainer selbst kommen, werden üblicherweise in Branches hochgeladen und laufen dann durch ein Code Review.&lt;br /&gt;
&lt;br /&gt;
Die OKAPI wird – erfolgreich! – mit einem wesentlich höheren Anspruch an Codequalität und -Stil entwickelt als die OC-Länderseiten. Dokumentation und Codestruktur sind herausragend. Gleichzeitig steht sie bei einigen Details wie Template-Engine, Datenbank-Library und Konstanten-Definitionen hinter dem OC.de-Code zurück. Der OKAPI-Code ist nur für Webanwendungen geschrieben; Einbindung in Kommandozeilentools kann insbesondere am Exception-Handling scheitern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der OKAPI-Code wird aus dem OKAPI-Projekt in die lokalen OC-Code-Repositories (nach {{Codepath|htdocs/okapi}}) repliziert. Bei Opencaching.pl und .nl geschieht dies automatisch über einen SVN-&amp;quot;Commit-Hook&amp;quot;, bei Opencaching.de manuell durch den Code-Maintainer nach einem Security Review.&lt;br /&gt;
&lt;br /&gt;
OKAPI-Code kann über die &amp;quot;Facade&amp;quot;-Schnittstelle in OC-Code eingebunden werden ({{Codepath2|htdocs|okapi/facade.php}}). OC.pl macht davon insbesondere bei der Karte Gebrauch, die von der OKAPI generiert wird. OC.de verwendet die Facade bislang nur (experimentell) im Update-Script {{Codepath|bin/okapi-update.php}}, das von {{Codepath2|bin|dbupdate.php}} aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
Sämtliche OKAPI-Seitenzugriffe laufen über eine Rewrite-Engine ({{Codepath2|htdocs|okapi/.htaccess}} → {{Codepath2|htdocs|okapi/controller.php}}). Man kann daher die PHP-Scripte nicht direkt über ihre URLs idenitifizieren sondern muss schonmal etwas suchen. Methoden befinden sich in {{Codepath2|htdocs|okapi/services}}, Seiten mit HTML-Output in {{Codepath2|htdocs|okapi/views}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für die Dokumentation verwendet die OKAPI ein eigenes XML-Format, das von einem Parser aufbereitet wird.&lt;br /&gt;
&lt;br /&gt;
Templates für Methoden, die HTML- oder sonstiges XML-Output liefern, sind in .tpl.php-Dateien zusammen mit den PHP-Quelltexten abgelegt. Variablen werden per PHP-Code eingebunden, meist per &amp;quot;short open tags&amp;quot;, z.B.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? if (($vars[&#039;my_notes&#039;] == &#039;desc:text&#039;) &amp;amp;&amp;amp; ($c[&#039;my_notes&#039;] != null)) { /* Does user want us to include personal notes? */ ?&amp;gt;&lt;br /&gt;
   &amp;amp;lt;p&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;&amp;lt;?= _(&amp;quot;Personal notes&amp;quot;) ?&amp;gt;:&amp;amp;lt;/b&amp;amp;gt; &amp;lt;?= Okapi::xmlescape($c[&#039;my_notes&#039;]) ?&amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
 &amp;lt;? } ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Entwicklung|Codedoku]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Urheberrecht&amp;diff=5405</id>
		<title>Urheberrecht</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Urheberrecht&amp;diff=5405"/>
		<updated>2013-10-13T07:14:26Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wenn du [[Erstellen einer Cachebeschreibung/ Listing|Cachebeschreibungen]] oder [[Das Onlinelog|Logeinträge]] erstellst oder Bilder dazu hochlädst bestätigst du, dass diese sowohl auf Opencaching.de als auch durch Dritte in unveränderter Form veröffentlicht werden dürfen (kommerzielle Nutzung ausgenommen). &#039;&#039;&#039;Dies gilt auch für Texte und Bilder, die nicht von dir selbst stammen&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Falls du Texte und Bilder von Dritten für deine Caches verwenden möchtest, musst du daher sicherstellen, dass &#039;&#039;&#039;deren Urheber eine solche Verwendung und Veröffentlichung ausdrücklich gestattet&#039;&#039;&#039; und dies im Zweifelsfall nachweisen können; zum Beispiel durch eine schriftliche Einverständniserklärung. Stehen die Inhalte unter einer Lizenz, die eine Verwendung nur unter Namensnennung gestattet – so wie z.B. auch in diesem Wiki oder in der Wikipedia –, dann &#039;&#039;musst&#039;&#039; du den Name des oder der Urheber in deiner Cachebeschreibung bzw. deinem Log mit angeben. (Bei Wiki-Artikeln genügt dazu ein Link auf die Original-Versionsgeschichte). Oft wird auch eine Quellenangabe gefordert; daher ist es ratsam, immer die &#039;&#039;&#039;Quelle mit anzugeben&#039;&#039;&#039;, z.B. eine Internet-Adresse.&lt;br /&gt;
&lt;br /&gt;
Wenn du dies nicht beachtest kann es sein, dass du eine Urheberrechtsverletzung begehst, die kostenpflichtige Abmahnungen und strafbewehrte Unterlassungserklärungen nach sich ziehen kann.&lt;br /&gt;
&lt;br /&gt;
== Recht am eigenen Bild ==&lt;br /&gt;
&lt;br /&gt;
Wenn auf einem Foto Personen klar identifizierbar sind, so muss eine Einverständniserklärung dieser Personen vorliegen, um das Foto veröffentlichen zu können. Andernfalls können sie Schadensersatzansprüche geltend machen.&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise bei Urheberrechtsverletzungen auf Opencaching.de ==&lt;br /&gt;
&lt;br /&gt;
Erster Ansprechpartner bei (mutmaßlichen) Urheberrechtsverletzungen sollte der [[Besitzer|Cachebesitzer]] sein. Als [[Registrierung|registrierter]] Benutzer kannst du ihn über die E-Mail-Funktion in seinem [[Benutzerprofil|Opencaching-Profil]] anschreiben.&lt;br /&gt;
&lt;br /&gt;
Wahlweise besteht die Möglichkeit, den Cache an das Opencaching-Team zu melden. Verwende dazu die [[Cache melden|Meldefunktion]] für den jeweiligen Cache, wähle als Grund „Urheberrechtsverletzung“ und gib nähere Erläuterungen an, zum Beispiel die Internetseite von der ein Bild oder Text stammt. Opencaching wird den Cache nach Prüfung vorerst sperren, sodass das Listing nicht mehr einsehbar ist, und den [[Besitzer|Cachebesitzer]] kontaktieren.&lt;br /&gt;
&lt;br /&gt;
Eine dritte Möglichkeit ist eine Email an [mailto:contact@opencaching.de contact@opencaching.de]. &lt;br /&gt;
&lt;br /&gt;
{{Rechtshinweis}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Listings und Logs]]&lt;br /&gt;
[[Kategorie:Recht]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Privatgrund&amp;diff=5404</id>
		<title>Privatgrund</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Privatgrund&amp;diff=5404"/>
		<updated>2013-10-13T07:07:21Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Grundsätzlich gilt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{deutschlandlastig}}&lt;br /&gt;
&lt;br /&gt;
Als &#039;&#039;&#039;Privatgrund&#039;&#039;&#039; gelten in Deutschland Grundstücke und Gebäude, deren Nutzung – insbesondere das Betreten – durch den Eigentümer eingeschränkt ist. Der Eigentümer&amp;lt;ref&amp;gt;Die Begriffe „Grundeigentum“ und „Grundbesitz“ werden in der Umgangssprache oft synonym gebraucht. Im Folgenden ist mit beidem immer – im juristischen Sinne – Eigentum gemeint.&amp;lt;/ref&amp;gt; muss keine Privatperson oder -organisation sein, sondern es kann sich auch um die öffentliche Hand handeln. Im Gegensatz hierzu steht das &#039;&#039;Betretungsrecht&#039;&#039;,&amp;lt;ref&amp;gt;Das Betretungsrecht wird in Deutschland bundesweit durch Naturschutzgesetz, Waldgesetz und Wasserhaushaltsgesetz geregelt. Zusätzlich kann es durch weitere Rechtsvorschriften auf Landes- und kommunaler Ebene eingeschränkt werden.&amp;lt;/ref&amp;gt; das die Nutzung bestimmter Flächen durch die Allgemeinheit erlaubt, solange es vor Ort keine ausdrückliche Einschränkung gibt.&lt;br /&gt;
&lt;br /&gt;
Die Suche nach der [[Wie verstecke ich einen Cache?#Die richtige Stelle für eine Cacheversteck|richtigen Stelle für ein Cacheversteck]] kann so manche Stolperfalle in Richtung Privatgrund bereithalten.&lt;br /&gt;
__NOTOC__&lt;br /&gt;
== Eingefriedete Grundstücke ==&lt;br /&gt;
[[Datei:BetretenVerboten.JPG|thumb|300px|Hier haben wir nichts verloren und nichts zu suchen.]]&lt;br /&gt;
Besonders sensibel sind von uns diejenigen Grundstücke und Orte zu behandeln, die deutlich als Privatgrund erkennbar sind, sei es durch aufgestellte Schilder, Einfriedungen (Mauern, Zäune, Hecken, etc. oder sonstige Abgrenzung). Diese sollten für uns sowohl als Sucher, besonders aber als [[Owner]] absolute Tabuzonen sein, es sei denn, man hat vorher ausdrücklich und nachweisbar (am besten schriftlich) die Genehmigung des Besitzers erhalten. Liegt eine solche Genehmigung nicht vor und wir betreten diese Grundstücke, machen wir uns des Hausfriedensbruchs schuldig bzw. stiften als Owner sogar andere dazu an. Dies kann für alle Beteiligten zu nicht unerheblichen rechtlichen Konsequenzen führen. &lt;br /&gt;
&lt;br /&gt;
Liegt eine solche Genehmigung des Grundbesitzers vor, ist es zunächst mal machbar an einem solchen Ort einen Cache zu verstecken; dennoch gibt es hier einiges zu beachten. Ein solcher Cache sollte möglichst „minimal invasiv“ versteckt sein, d.h. er sollte so versteckt sein, dass er&lt;br /&gt;
 &lt;br /&gt;
# nah am offiziellen Weg ist&lt;br /&gt;
# schnell und ohne großes Suchen gefunden werden kann&lt;br /&gt;
# kein fremdes Eigentum beschädigt&lt;br /&gt;
# niemanden stört&lt;br /&gt;
&lt;br /&gt;
und die Erlaubnis sollte deutlich im Listing erwähnt sein.&lt;br /&gt;
Weiterhin sollte man in einem solchen Fall als Owner immer im Auge haben, dass sich Besitzverhältnisse auch ändern können und dann Genehmigungen u.U. hinfällig sind.&lt;br /&gt;
&lt;br /&gt;
Wenn man bei der Suche nach einem OC-Cache feststellt, dass diese Regeln nicht eingehalten werden, sollte man die Suche abbrechen und über die Funktion [[Cache melden]], die in der oberen Buttonleiste eines jeden Caches zu finden ist, an Opencaching.de melden. Wenn man hier weitersucht, kann man mit etwas Pech genau DERjenige sein, der erwischt und bestraft wird …&lt;br /&gt;
&lt;br /&gt;
== Wälder ==&lt;br /&gt;
&lt;br /&gt;
Auch jeder Wald hat einen Eigentümer, der über seine Nutzung mitentscheiden kann. Wälder sind in der Regel nicht eingefriedet, und es gibt z.&amp;amp;nbsp;B. in Deutschland ein Betretungsrecht. Ungeachtet dessen kann jeder Waldbesitzer in seinem eigenen Wald bestimmte Tätigkeiten untersagen, auch das Verstecken von Geocaches. Wer diesem Verlangen des Grundstückseigentümers nicht nachkommt, riskiert kostenpflichtig auf Unterlassung und/oder Beseitigung in Anspruch genommen zu werden.&lt;br /&gt;
&lt;br /&gt;
Bei Wäldern ist es oft kaum möglich, den Besitzer herauszufinden um vorher um Erlaubnis zu fragen, auch wenn dies streng genommen nötig ist. Daher ist es besonders wichtig, dass jeder Cache einen [[Stash Note|Hinweis für Zufallsfinder]] enthält. Dieser sollte nicht nur über den Zweck des Behälters aufklären, sondern muss entsprechend den [[Opencaching.de-Nutzungsbedingungen]] auch eine Kontaktmöglichkeit mit dem [[Owner]] aufzeigen, an den sich der Grundstücksbesitzer wenden kann, wenn er den Cache entfernt haben möchte, z.&amp;amp;nbsp;B. eine E-Mail-Adresse und/oder eine Mobiltelefonnummer. (Diese Angabe ist im Übrigen für alle Caches verpflichtend, nicht nur für solche im Wald.)&lt;br /&gt;
&lt;br /&gt;
== Grundsätzlich gilt ==&lt;br /&gt;
&lt;br /&gt;
Sollte sich ein Grundstücksbesitzer an einen Owner wenden und ihn um Entfernung seines Caches bitten, ist dem selbstverständlich sofort Folge zu leisten.&lt;br /&gt;
&lt;br /&gt;
== Anmerkungen ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Rechtshinweis}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Recht]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Privatgrund&amp;diff=5403</id>
		<title>Privatgrund</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Privatgrund&amp;diff=5403"/>
		<updated>2013-10-13T07:05:23Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Grundsätzlich gilt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{deutschlandlastig}}&lt;br /&gt;
&lt;br /&gt;
Als &#039;&#039;&#039;Privatgrund&#039;&#039;&#039; gelten in Deutschland Grundstücke und Gebäude, deren Nutzung – insbesondere das Betreten – durch den Eigentümer eingeschränkt ist. Der Eigentümer&amp;lt;ref&amp;gt;Die Begriffe „Grundeigentum“ und „Grundbesitz“ werden in der Umgangssprache oft synonym gebraucht. Im Folgenden ist mit beidem immer – im juristischen Sinne – Eigentum gemeint.&amp;lt;/ref&amp;gt; muss keine Privatperson oder -organisation sein, sondern es kann sich auch um die öffentliche Hand handeln. Im Gegensatz hierzu steht das &#039;&#039;Betretungsrecht&#039;&#039;,&amp;lt;ref&amp;gt;Das Betretungsrecht wird in Deutschland bundesweit durch Naturschutzgesetz, Waldgesetz und Wasserhaushaltsgesetz geregelt. Zusätzlich kann es durch weitere Rechtsvorschriften auf Landes- und kommunaler Ebene eingeschränkt werden.&amp;lt;/ref&amp;gt; das die Nutzung bestimmter Flächen durch die Allgemeinheit erlaubt, solange es vor Ort keine ausdrückliche Einschränkung gibt.&lt;br /&gt;
&lt;br /&gt;
Die Suche nach der [[Wie verstecke ich einen Cache?#Die richtige Stelle für eine Cacheversteck|richtigen Stelle für ein Cacheversteck]] kann so manche Stolperfalle in Richtung Privatgrund bereithalten.&lt;br /&gt;
__NOTOC__&lt;br /&gt;
== Eingefriedete Grundstücke ==&lt;br /&gt;
[[Datei:BetretenVerboten.JPG|thumb|300px|Hier haben wir nichts verloren und nichts zu suchen.]]&lt;br /&gt;
Besonders sensibel sind von uns diejenigen Grundstücke und Orte zu behandeln, die deutlich als Privatgrund erkennbar sind, sei es durch aufgestellte Schilder, Einfriedungen (Mauern, Zäune, Hecken, etc. oder sonstige Abgrenzung). Diese sollten für uns sowohl als Sucher, besonders aber als [[Owner]] absolute Tabuzonen sein, es sei denn, man hat vorher ausdrücklich und nachweisbar (am besten schriftlich) die Genehmigung des Besitzers erhalten. Liegt eine solche Genehmigung nicht vor und wir betreten diese Grundstücke, machen wir uns des Hausfriedensbruchs schuldig bzw. stiften als Owner sogar andere dazu an. Dies kann für alle Beteiligten zu nicht unerheblichen rechtlichen Konsequenzen führen. &lt;br /&gt;
&lt;br /&gt;
Liegt eine solche Genehmigung des Grundbesitzers vor, ist es zunächst mal machbar an einem solchen Ort einen Cache zu verstecken; dennoch gibt es hier einiges zu beachten. Ein solcher Cache sollte möglichst „minimal invasiv“ versteckt sein, d.h. er sollte so versteckt sein, dass er&lt;br /&gt;
 &lt;br /&gt;
# nah am offiziellen Weg ist&lt;br /&gt;
# schnell und ohne großes Suchen gefunden werden kann&lt;br /&gt;
# kein fremdes Eigentum beschädigt&lt;br /&gt;
# niemanden stört&lt;br /&gt;
&lt;br /&gt;
und die Erlaubnis sollte deutlich im Listing erwähnt sein.&lt;br /&gt;
Weiterhin sollte man in einem solchen Fall als Owner immer im Auge haben, dass sich Besitzverhältnisse auch ändern können und dann Genehmigungen u.U. hinfällig sind.&lt;br /&gt;
&lt;br /&gt;
Wenn man bei der Suche nach einem OC-Cache feststellt, dass diese Regeln nicht eingehalten werden, sollte man die Suche abbrechen und über die Funktion [[Cache melden]], die in der oberen Buttonleiste eines jeden Caches zu finden ist, an Opencaching.de melden. Wenn man hier weitersucht, kann man mit etwas Pech genau DERjenige sein, der erwischt und bestraft wird …&lt;br /&gt;
&lt;br /&gt;
== Wälder ==&lt;br /&gt;
&lt;br /&gt;
Auch jeder Wald hat einen Eigentümer, der über seine Nutzung mitentscheiden kann. Wälder sind in der Regel nicht eingefriedet, und es gibt z.&amp;amp;nbsp;B. in Deutschland ein Betretungsrecht. Ungeachtet dessen kann jeder Waldbesitzer in seinem eigenen Wald bestimmte Tätigkeiten untersagen, auch das Verstecken von Geocaches. Wer diesem Verlangen des Grundstückseigentümers nicht nachkommt, riskiert kostenpflichtig auf Unterlassung und/oder Beseitigung in Anspruch genommen zu werden.&lt;br /&gt;
&lt;br /&gt;
Bei Wäldern ist es oft kaum möglich, den Besitzer herauszufinden um vorher um Erlaubnis zu fragen, auch wenn dies streng genommen nötig ist. Daher ist es besonders wichtig, dass jeder Cache einen [[Stash Note|Hinweis für Zufallsfinder]] enthält. Dieser sollte nicht nur über den Zweck des Behälters aufklären, sondern muss entsprechend den [[Opencaching.de-Nutzungsbedingungen]] auch eine Kontaktmöglichkeit mit dem [[Owner]] aufzeigen, an den sich der Grundstücksbesitzer wenden kann, wenn er den Cache entfernt haben möchte, z.&amp;amp;nbsp;B. eine E-Mail-Adresse und/oder eine Mobiltelefonnummer. (Diese Angabe ist im Übrigen für alle Caches verpflichtend, nicht nur für solche im Wald.)&lt;br /&gt;
&lt;br /&gt;
== Grundsätzlich gilt ==&lt;br /&gt;
&lt;br /&gt;
Sollte sich ein Grundstücksbesitzer an einen Owner wenden und ihn um Entfernung eines Caches bitten, ist dem selbstverständlich sofort Folge zu leisten.&lt;br /&gt;
&lt;br /&gt;
== Anmerkungen ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Rechtshinweis}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Recht]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=GPS&amp;diff=5399</id>
		<title>GPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=GPS&amp;diff=5399"/>
		<updated>2013-10-12T12:58:01Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Geschichtlicher Überblick */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:GPS-Satelliten.gif|rechts]]&lt;br /&gt;
&#039;&#039;&#039;GPS&#039;&#039;&#039; (&#039;&#039;Global Positioning System&#039;&#039;) ist ein Navigations-Satellitensystem, das zur Positionsbestimmung und Zeitmessung dient. Es bildet die technische Grundlage des [[Geocaching]]s.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
Ein Empfänger auf der Erde – zum Beispiel ein [[GPS-Gerät]] – empfängt Signale von Satelliten, welche sich in einer Umlaufbahn um die Erde befinden und ständig Datenpakete mit verschiedenenen Informationen (insbesondere der Sendezeit und augenblicklichen Position des Satelliten) versenden. Der GPS-Empfänger vergleicht die Ankunftszeiten der Signale und berechnet die Entfernung zu den einzelnen Satelliten. Zur Bestimmung der Position des Empfängers im Raum (Breitengrad, Längengrad und Höhe) werden mindestens drei verschiedenen Satelliten benötigt.&lt;br /&gt;
&lt;br /&gt;
Die Anforderungen an die Genauigkeit der Systems sind durch die Übertragung der Signale mit Lichtgeschwindigkeit sehr hoch gesteckt: Weicht die Laufzeit um eine tausendstel Sekunde ab, so entsteht ein Distanzfehler von 300 km. Damit wäre das System unbrauchbar. Um eine brauchbare Genauigkeit zu erreichen, benötigt man daher oft das Signal eines vierten Satelliten.&lt;br /&gt;
&lt;br /&gt;
Um einen Kontakt des GPS-Empfängers mit mindestens vier Satelliten zu gewährleisten, sind ingesamt mindestens 24 Satelliten im Einsatz, welche die Erde zweimal täglich in über 20.000 km Höhe umkreisen.&lt;br /&gt;
&lt;br /&gt;
== Genauigkeit ==&lt;br /&gt;
Mit einem guten GPS-Gerät lässt sich bei optimalen Empfangsbedingungen eine Genauigkeit von 2–3 Metern erzielen. Dabei kann man sich nicht immer auf die Anzeige des Geräts verlassen: Manchmal schwanken die Messwerte in einem größeren Bereich als angegeben, weshalb es sich beim Einmessen eines Geocaches immer empfiehlt, die Koordinaten aus mehreren Messungen zu [[Wie verstecke ich einen Cache?#Koordinaten messen|mitteln]]. &lt;br /&gt;
&lt;br /&gt;
Um einen optimalen Signalempfang zu ermöglichen, ist eine direkte Sichtverbindung zu den Satelliten erforderlich. Wenn man unter nassen Bäumen unterwegs ist, kann es je nach Qualität des Empfängers Abweichungen geben.&lt;br /&gt;
&lt;br /&gt;
Größere Ungenauigkeiten treten vor allem in geschlossenen Gebäuden oder zwischen hohen Gebäuden auf. Sie können auch durch ungünstige Stellung der Satelliten entstehen (beispielsweise bei dicht beieinander stehenden Satelliten); demnach sind für eine genaue Positionsbestimmung Satellitensignale aus verschiedenen Himmelsrichtungen vom Vorteil. In Gebäudenähe ist oft das Phänomen der „springenden Koordinaten“ zu beobachten: Man macht nur wenige Schritte, und plötzlich befindet sich der Cache 20&amp;amp;nbsp;Meter weiter vorn oder hinten. Hier empfehlen sich mehrere Anläufe aus verschiedenen Richtungen, um das Versteck aufzuspüren.&lt;br /&gt;
&lt;br /&gt;
Die GPS-Signale werden durch das Wetter (Bewölkung, Niederschlag) nur wenig beeinflusst.&lt;br /&gt;
&lt;br /&gt;
== Geschichtlicher Überblick ==&lt;br /&gt;
Der erste GPS-Satellit startete im Jahr 1978, nachdem fünf Jahre zuvor das GPS-Programm gestartet worden war. 1985 wird dann die volle Funktionsbereitschaft bekannt gegeben. Zu dieser Zeit befanden sich bereits 24&amp;amp;nbsp;Satelliten im Einsatz.&lt;br /&gt;
&lt;br /&gt;
Um militärische Gegner auszuschließen, wurde die Genauigkeit für alle Nutzer ohne Zugangsschlüssel künstlich verschlechtert. Die Fehler waren dabei größer als 100&amp;amp;nbsp;m und ließen somit keine genaue Positionsbestimmung zu.&lt;br /&gt;
&lt;br /&gt;
Zum 1.&amp;amp;nbsp;Mai 2000 schaltete man diese künstliche Ungenauigkeit wieder ab. Seitdem ist das System für alle Anwendungsbereiche zur präzisen Positionsbestimmung nutzbar. Dies führte zum Aufschwung von Navigationssystemen und in den USA und zum Legen des ersten „[[Geocache|Geocaches]]“ (damals gab es den Begriff noch nicht). Diese neue Freizeitbeschäftigung verbreitete sich schnell in viele weitere Länder.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://de.wikipedia.org/wiki/GPS Global Positioning System] – ausführlicher Artikel in der Wikipedia&lt;br /&gt;
* [http://www.youtube.com/watch?v=u0cmsCVonSQ Trickfilm zur Funktionsweise]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocaching]]&lt;br /&gt;
&lt;br /&gt;
[[pl:GPS]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=FTF&amp;diff=5398</id>
		<title>FTF</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=FTF&amp;diff=5398"/>
		<updated>2013-10-12T12:51:46Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* FTF-Jäger */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;FTF&#039;&#039;&#039; steht für engl. &#039;&#039;First to find&#039;&#039; und bezeichnet den ersten Finder eines neuen Geocaches. STF und TTF stehen für den zweiten und dritten Finder (&#039;&#039;Second / Third to Find&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Den Behälter als Erster aus dem Versteck zu holen und sich als Erster ins jungfräuliche [[Logbuch]] einzutragen hat für viele Geocacher einen besonderern Reiz. Bei [[PETling]]-[[Cachegrößen#Mikro|Mikros]] darf man oft auch noch den „Siegelverschluss“ des Deckels als Erster öffnen. Neue Caches sind allerdings meist noch ungetestet, d.h. es sind auch negative Überraschungen möglich wie Tippfehler bei den Koordinaten, zu niedrig angegebene [[Schwierigkeitswertung]] etc.&lt;br /&gt;
&lt;br /&gt;
Achtung: Dass ein Cache keine [[Das Onlinelog|Online-Logs]] hat heißt nicht, dass er noch nicht gefunden wurde – FTF-Banausen vergessen manchmal das Loggen oder lassen sich damit Zeit.&lt;br /&gt;
&lt;br /&gt;
[[Datei:SchrottieCache.JPG|thumb|vorbereiteter Cache mit FTF-Urkunden]]&lt;br /&gt;
== FTF-Urkunde ==&lt;br /&gt;
Manche Cachebesitzer legen ihrem Frischling eine oder mehrere &#039;&#039;FTF-Urkunden&#039;&#039; bei, die sich die ersten Finder mitnehmen dürfen.&lt;br /&gt;
&lt;br /&gt;
→ [[Vorlagen zum Ausdrucken#Urkunden|FTF-Urkunden zum Ausdrucken]]&lt;br /&gt;
&lt;br /&gt;
== FTF-Jäger ==&lt;br /&gt;
Den FTF zu „machen“ ist oft mit einem sportlichen Wettbewerb verbunden. Sobald die [[Benachrichtigungen]] über einen neuen Cache rausgehen, alarmiert dies die FTF-Jäger, die sich umgehend auf die Suche machen. Ob die [[Location]] gut gewählt und der Cache schön gestaltet ist, spielt dabei leider oft keine Rolle; stattdessen geht es um einen Punkt für die persönliche FTF-[[Statistikcacher|Statistik]] und die FTF-Bekanntgabe im Log.&lt;br /&gt;
&lt;br /&gt;
Falls dich das als Opencaching-[[Owner]] stört und du den Erstfund lieber dem Zufall überlassen möchtest, kannst du die FTF-Jäger überlisten:&lt;br /&gt;
# Lege das neue Listing mit der Einstellung &#039;&#039;noch nicht veröffentlichen&#039;&#039; an.&lt;br /&gt;
# Bearbeite das Listing; ändere den [[Cachestatus|Status]] in &#039;&#039;momentan nicht verfügbar&#039;&#039; und wähle gleichzeitig &#039;&#039;sofort veröffentlichen&#039;&#039;.&lt;br /&gt;
# Bearbeite das Listings nochmals und ändere den Status in &#039;&#039;kann gesucht werden&#039;&#039;.&lt;br /&gt;
Bei dieser Vorgehensweise werden keine Benachrichtigungen für den neuen Cache verschickt.&lt;br /&gt;
&lt;br /&gt;
== Ungefundene Caches ==&lt;br /&gt;
Die [[OKAPI]] besitzt eine „FTF-Hunter“-Funktion, mit der sich Caches ohne Fundlogs heraussuchen lassen; siehe [http://www.opencaching.de/okapi/services/caches/search/all.html#arg_ftf_hunter Dokumentation für Programmierer].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocaching]]&lt;br /&gt;
&lt;br /&gt;
[[pl:FTF]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=API-Clients&amp;diff=5397</id>
		<title>API-Clients</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=API-Clients&amp;diff=5397"/>
		<updated>2013-10-12T12:49:17Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Sonstiges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Seite listet Programme und Webseiten auf, die die [[Opencaching-API]] (OKAPI) oder die [[XML-Schnittstelle]] verwenden und auf Opencaching.de-Daten zugreifen (können). Weitere Programme sind in Arbeit.&lt;br /&gt;
&lt;br /&gt;
Wenn du ein eigenes Programm oder eine eigene Webseite mit API-Zugriff veröffentlicht hast, kannst du es/sie hier eintragen.&lt;br /&gt;
&lt;br /&gt;
== OKAPI-Clients ==&lt;br /&gt;
=== Smartphone-Apps ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.cgeo.org c:geo]&lt;br /&gt;
* [[Smartphone-Apps_für Opencaching.de#Columbus|Columbus]]&lt;br /&gt;
* [http://noname043.cba.pl/?page_id=11 Mobicaching]&lt;br /&gt;
* [https://play.google.com/store/apps/details?id=net.rygielski.roadrunner QuickFind]&lt;br /&gt;
* [https://play.google.com/store/apps/details?id=pl.b64.opencaching B64-OpenCaching for Android]&lt;br /&gt;
&lt;br /&gt;
=== Desktop-Programme ===&lt;br /&gt;
* [[GSAK|GSAK-Makro]]&lt;br /&gt;
&lt;br /&gt;
=== Webseiten ===&lt;br /&gt;
&lt;br /&gt;
* [[Flopps Tolle Karte]] / [http://www.flopp.net/okapi/ OKAPI-Karte] / [http://www.flopp.net/safari/ Safari-Cache-Karte]&lt;br /&gt;
* [http://www.xctrails.org/map.html XCTrails] / [http://www.xctrails.org/oc-mobile/oc.html Opencaching.de Mobile Seite]&lt;br /&gt;
&lt;br /&gt;
== XML-Clients ==&lt;br /&gt;
=== Smartphone-Apps ===&lt;br /&gt;
* [[Smartphone-Apps für Opencaching.de#GeOrg|GeOrg]]&lt;br /&gt;
&lt;br /&gt;
=== Desktop-Programme ===&lt;br /&gt;
* [[CacheWolf]]&lt;br /&gt;
&lt;br /&gt;
=== Webseiten ===&lt;br /&gt;
&lt;br /&gt;
== Sonstiges ==&lt;br /&gt;
[[Ocprop]] greift direkt auf Opencaching.de-Seiten zu, um Cachebeschreibungen oder Logs einzustellen. Diese Vorgehensweise ist fehleranfällig und daher nicht empfehlenswert.&lt;br /&gt;
&lt;br /&gt;
Falls Funktionen benötigt werden, die die bestehenden APIs nicht bereitstellen, können diese ggf. nachgerüstet werden. Wer mag, kann solche Erweiterungen auch selbst in die OKAPI oder die OC-Software einbauen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocaching-Software]]&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Garmin_Mapsource&amp;diff=5396</id>
		<title>Garmin Mapsource</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Garmin_Mapsource&amp;diff=5396"/>
		<updated>2013-10-12T12:18:19Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Mapsource&#039;&#039;&#039; (bis Oktober 2010) bzw. &#039;&#039;&#039;Basecamp&#039;&#039;&#039; (ab Oktober 2010) sind kostenlose Windows- und MacOS Programme der Firma Garmin, die verschiedene nützliche Funktionen für die von Garmin hergestellten [[GPS-Gerät]]e bieten. Man kann damit [[Wegpunkte]], Routen und Tracks (aufgezeichnete Wege) auf sein GPSr hochladen oder davon herunterladen. Außerdem können Karten verwaltet und auf das Gerät geladen werden.&lt;br /&gt;
&lt;br /&gt;
Mapsource und Basecamp selbst beinhalten nur eine primitive Karte mit Autobahnen und Großstädten, aber es lassen sich zusätzliche Karten wie die [[OSM-Karte]] installieren und darstellen. Auf der Karte kann man dann auch Wegpunkte eintragen, Entfernungen messen, sich die Lage von Geocaches im Gelände anschauen etc.&lt;br /&gt;
&lt;br /&gt;
== Opencaching-Suche via Mapsource ==&lt;br /&gt;
Bei Mapsource gibt es die Möglichkeit, Websites über sogenannte &#039;&#039;Weblink-Erweiterungen&#039;&#039; einzubinden, die Aktionen für die aktuelle Koordinate ausführen. Für Opencaching.de gibt es eine Weblink-Erweiterung, die einen direkten Aufruf der Opencaching-[[Suchformular|Umkreissuche]] aus Mapsource heraus ermöglicht.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Lade zunächst die entsprechende Datei herunter ([[#Weblinks|siehe unten]]). Dies geschieht durch einen Rechtsklick mit der Maus und dann &#039;&#039;&#039;Speichern unter ...&#039;&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jetzt richtet man die Erweiterung ein:&lt;br /&gt;
* Mapsource öffnen&lt;br /&gt;
* Menü Bearbeiten → Voreinstellungen&lt;br /&gt;
* Reiter Weblinks&lt;br /&gt;
* &#039;&#039;&#039;Weblink hinzufügen ...&#039;&#039;&#039;&lt;br /&gt;
Jetzt gibst du die heruntergeladene Datei an und bestätigst den Dialog. (Falls es in deinem Mapsource keinen Reiter „Weblinks“ geben sollte, ist sie zu alt. Unten findest du einen Download-Link für die neueste Version.)&lt;br /&gt;
&lt;br /&gt;
Die Umkreissuche kann nun verwendet werden. Dazu klickt man in Mapsource ein Wegpunkt oder eine freie Fläche mit der rechten Maustaste an, wodurch die Umkreissuche von Opencaching.de geöffnet werden kann.&lt;br /&gt;
&lt;br /&gt;
Das deutsche Weblink-Makro basiert auf einer polnischen Version von [http://www.opencaching.pl Opencaching.pl].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.opencaching.de/resource2/misc/mapsource/opencachingde.wlx Download der Weblink-Erweiterung für Opencaching]&lt;br /&gt;
* [http://www8.garmin.com/support/download_details.jsp?id=209 Download von Garmin MapSource]&lt;br /&gt;
* [http://www.garmin.com/de/map/basecamp Download von Garmin Basecamp]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocaching-Software]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=OCDL&amp;diff=5395</id>
		<title>OCDL</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=OCDL&amp;diff=5395"/>
		<updated>2013-10-11T15:13:07Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Verfügbare gespeicherte Suchen auslesen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;OCDL&#039;&#039;&#039; (&#039;&#039;&#039;O&#039;&#039;&#039;pen&#039;&#039;&#039;c&#039;&#039;&#039;aching &#039;&#039;&#039;D&#039;&#039;&#039;own&#039;&#039;&#039;l&#039;&#039;&#039;oader) ist ein [[wikipedia:Python_(Programmiersprache)|Python]]-Skript zum Download von [[Suchformular#Gespeicherte Suche|gespeicherten Suchen]] als [[GPX-Datei|GPX-Dateien]]. OCDL ist besonders dann nützlich, wenn man regelmäßig gespeicherte Suchen herunterladen möchte, beispielsweise um die Cache-Datenbank von [[OpenCacheManager]] auf einem aktuellen Stand zu halten. Das Skript ist dabei weniger für die manuelle und interaktive Verwendung gedacht, als für den automatisierten, zeitgesteuerten Aufruf, beispielsweise via [[wikipedia:Cron|Cron]].&lt;br /&gt;
&lt;br /&gt;
== Systemvoraussetzungen ==&lt;br /&gt;
OCDL ist ein betriebssystemunabhängiges Skript und sollte auf allen Systemen lauffähig sein, auf denen eine aktuelle Python-Version installiert ist. Typische Unixe bringen Python bereits mit; unter Windows ist meist eine manuelle Installation von Python notwendig (z.B. [http://www.activestate.com/activepython ActivePython]).&lt;br /&gt;
&lt;br /&gt;
== Allgemein ==&lt;br /&gt;
OCDL ist ein Kommandozeilenprogramm und wird daher innerhalb der Kommandozeile (Linux/Unix: Terminalfenster, Windows: Eingabeaufforderung) verwendet.&lt;br /&gt;
Wie für Kommandozeilenprogramme üblich, verfügt OCDL über eine integrierte Hilfsfunktion, die über den Parameter &amp;lt;tt&amp;gt;--help&amp;lt;/tt&amp;gt; aufgerufen werden kann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~/GPX&amp;gt; ./ocdl.py --help&lt;br /&gt;
Usage: ocdl.py [options] [ID...]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
  --version             show program&#039;s version number and exit&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  -s, --setup           create the necessary directories; ask the user for&lt;br /&gt;
                        login credentials&lt;br /&gt;
  -c CONFIGDIR, --configdir=CONFIGDIR&lt;br /&gt;
                        specify directory for config files (cookies, login&lt;br /&gt;
                        information); default is &#039;~/.ocdl&#039;&lt;br /&gt;
  -l, --list            list available queries, do not download them&lt;br /&gt;
  -n STYLE, --name=STYLE&lt;br /&gt;
                        select naming style of downloaded queries, STYLE={ ID,&lt;br /&gt;
                        ID+DATE, NAME, NAME+DATE }, default is &#039;ID&#039;&lt;br /&gt;
  -d TARETDIR, --dir=TARETDIR&lt;br /&gt;
                        select target directory for downloaded queries;&lt;br /&gt;
                        default is the current directory&lt;br /&gt;
  -v, --verbose         print verbose status messages&lt;br /&gt;
&lt;br /&gt;
 ocdl.py logs in to opencaching.de using login credentials which are stored |&lt;br /&gt;
| in &#039;~/.ocdl/config.txt&#039; (the actual directory is configurable using the   |&lt;br /&gt;
| &#039;--configdir&#039; command line option).                                       |&lt;br /&gt;
|                                                                           |&lt;br /&gt;
| You can use the command line option &#039;--setup&#039; to create the configuration |&lt;br /&gt;
| directory and to initialize the config file with your login credentials.  |&lt;br /&gt;
|                                                                           |&lt;br /&gt;
| Alternatively, you can manually create the configuration directory and    |&lt;br /&gt;
| the config file:                                                          |&lt;br /&gt;
| Make sure the directory &#039;~/.ocdl/&#039; (or whatever you chose by              |&lt;br /&gt;
| &#039;--configdir&#039;) exists and contains the file &#039;config.txt&#039; with the         |&lt;br /&gt;
| following two lines:                                                      |&lt;br /&gt;
|                                                                           |&lt;br /&gt;
| OCDE_LOGIN=&#039;username&#039;                                                     |&lt;br /&gt;
| OCDE_PASSWORD=&#039;password&#039;                                                  |&lt;br /&gt;
|                                                                           |&lt;br /&gt;
| where username and password are your login credentials for opencaching.de |&lt;br /&gt;
|                                                                           |&lt;br /&gt;
|                                                                           |&lt;br /&gt;
| Moreover, ocdl.py stores the login cookie &#039;cookies.txt&#039; in the selected   |&lt;br /&gt;
| config directory for future logins.                                       |&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
OCDL hat eine Setup-Funktion, die die notwendigen Verzeichnisse anlegt und den Nutzer nach seinen Zugangsdaten für Opencaching.de fragt. Dazu ruft man OCDL mit dem Parameter &amp;lt;tt&amp;gt;--setup&amp;lt;/tt&amp;gt; auf und gibt seine Zugangsdaten ein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~/GPX&amp;gt; ./ocdl.py --setup&lt;br /&gt;
Performing setup.&lt;br /&gt;
Enter your username for OC.de: XXX&lt;br /&gt;
Enter your password for OC.de: YYY&lt;br /&gt;
Setup done. You may re-run &#039;ocdl.py&#039; in normal mode.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Danach ist OCDL fertig konfiguriert und kann normal verwendet werden. Falls sich die Zugangsdaten ändern sollten, kann die Setup-Funktion jederzeit wieder aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
== Verfügbare gespeicherte Suchen auslesen ==&lt;br /&gt;
Mit dem Kommandozeilenparameter &amp;lt;tt&amp;gt;--list&amp;lt;/tt&amp;gt; wird die Liste der im [[Benutzerprofil|Opencaching-Benutzerprofil]] gespeicherten Suchen abgefragt und ausgegeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~/GPX&amp;gt; ./ocdl.py --list&lt;br /&gt;
11339629/&#039;Tradis in Berlin&#039;&lt;br /&gt;
42325999/&#039;OC-only Deutschland&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
In obigem Beispiel sind zwei Suchen verfügbar, nämlich „Tradis Berlin“ mit der ID 11339629 und „OC-only Deutschland“ mit der ID 42325999. Die ID-Nummern werden für den Download der Suchen benötigt.&lt;br /&gt;
&lt;br /&gt;
== Download der Suchen ==&lt;br /&gt;
Hat man festgestellt, welche Suchen überhaupt verfügbar sind, kann man diese auch herunterladen. Dazu übergibt man die entsprechende ID als Parameter an OCDL. &lt;br /&gt;
&lt;br /&gt;
Mit folgendem Aufruf läd man die Suche „OC-only Deutschland“ als ZIP-komprimierte GPX-Datei herunter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~/GPX&amp;gt; ./ocdl.py 42325999&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladene Datei wird dann &#039;&#039;&#039;42325999.zip&#039;&#039;&#039; genannt und im aktuellen Verzeichnis abgelegt bzw. in dem Verzeichnis, dass über den Parameter &amp;lt;tt&amp;gt;--dir&amp;lt;/tt&amp;gt; festgelegt wurde.&lt;br /&gt;
&lt;br /&gt;
Die Benennung der Dateien kann über den Parameter &amp;lt;tt&amp;gt;--name&amp;lt;/tt&amp;gt; beeinflusst werden:&lt;br /&gt;
* &amp;lt;tt&amp;gt;--name ID&amp;lt;/tt&amp;gt; erzeugt Dateien nach dem Schema &#039;&#039;&#039;ID.zip&#039;&#039;&#039;, im Beispiel: &#039;&#039;&#039;42325999.zip&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;tt&amp;gt;--name ID+DATE&amp;lt;/tt&amp;gt; erzeugt Dateien nach dem Schema &#039;&#039;&#039;ID_Datum.zip&#039;&#039;&#039;, hängt also das aktuelle Datum an die ID an; im Beispiel: &#039;&#039;&#039;42325999_2012-10-26.zip&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;tt&amp;gt;--name NAME&amp;lt;/tt&amp;gt; erzeugt Dateien nach dem Schema &#039;&#039;&#039;Name.zip&#039;&#039;&#039;, wobei &#039;&#039;&#039;Name&#039;&#039;&#039; der Name der gespeicherten Suche ist; Leerzeichen im Name werden dabei durch Unterstriche ersetzt; im Beispiel: &#039;&#039;&#039;OC-only_Deutschland.zip&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;tt&amp;gt;--name NAME+DATE&amp;lt;/tt&amp;gt; erzeugt Dateien nach dem Schema &#039;&#039;&#039;Name_Datum.zip&#039;&#039;&#039;; im Beispiel: &#039;&#039;&#039;OC-only_Deutschland_2012-10-26.zip&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://raw.github.com/flopp/ocdl.py/master/ocdl.py Direkt-Download von OCDL]&lt;br /&gt;
* [https://github.com/flopp/ocdl.py OCDL bei github.com]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocaching-Software]]&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Garmin_Mapsource&amp;diff=5394</id>
		<title>Garmin Mapsource</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Garmin_Mapsource&amp;diff=5394"/>
		<updated>2013-10-11T15:08:03Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Mapsource&#039;&#039;&#039; (bis Oktober 2010) bzw. &#039;&#039;&#039;Basecamp&#039;&#039;&#039; (ab Oktober 2010) sind kostenlose Windows- und MAC OS X Programme der Firma Garmin, die verschiedene nützliche Funktionen für die von Garmin hergestellten [[GPS-Gerät]]e bieten. Man kann damit [[Wegpunkte]], Routen und Tracks (aufgezeichnete Wege) auf sein GPSr hochladen oder davon herunterladen. Außerdem können Karten verwaltet und auf das Gerät geladen werden.&lt;br /&gt;
&lt;br /&gt;
Mapsource und Basecamp selbst beinhalten nur eine primitive Karte mit Autobahnen und Großstädten, aber es lassen sich zusätzliche Karten wie die [[OSM-Karte]] installieren und darstellen. Auf der Karte kann man dann auch Wegpunkte eintragen, Entfernungen messen, sich die Lage von Geocaches im Gelände anschauen etc.&lt;br /&gt;
&lt;br /&gt;
== Opencaching-Suche via Mapsource ==&lt;br /&gt;
Bei Mapsource gibt es die Möglichkeit, Websites über sogenannte &#039;&#039;Weblink-Erweiterungen&#039;&#039; einzubinden, die Aktionen für die aktuelle Koordinate ausführen. Für Opencaching.de gibt es eine Weblink-Erweiterung, die einen direkten Aufruf der Opencaching-[[Suchformular|Umkreissuche]] aus Mapsource heraus ermöglicht.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Lade zunächst die entsprechende Datei herunter ([[#Weblinks|siehe unten]]). Dies geschieht durch einen Rechtsklick mit der Maus und dann &#039;&#039;&#039;Speichern unter ...&#039;&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jetzt richtet man die Erweiterung ein:&lt;br /&gt;
* Mapsource öffnen&lt;br /&gt;
* Menü Bearbeiten → Voreinstellungen&lt;br /&gt;
* Reiter Weblinks&lt;br /&gt;
* &#039;&#039;&#039;Weblink hinzufügen ...&#039;&#039;&#039;&lt;br /&gt;
Jetzt gibst du die heruntergeladene Datei an und bestätigst den Dialog. (Falls es in deinem Mapsource keinen Reiter „Weblinks“ geben sollte, ist sie zu alt. Unten findest du einen Download-Link für die neueste Version.)&lt;br /&gt;
&lt;br /&gt;
Die Umkreissuche kann nun verwendet werden. Dazu klickt man in Mapsource ein Wegpunkt oder eine freie Fläche mit der rechten Maustaste an, wodurch die Umkreissuche von Opencaching.de geöffnet werden kann.&lt;br /&gt;
&lt;br /&gt;
Das deutsche Weblink-Makro basiert auf einer polnischen Version von [http://www.opencaching.pl Opencaching.pl].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.opencaching.de/resource2/misc/mapsource/opencachingde.wlx Download der Weblink-Erweiterung für Opencaching]&lt;br /&gt;
* [http://www8.garmin.com/support/download_details.jsp?id=209 Download von Garmin MapSource]&lt;br /&gt;
* [http://www.garmin.com/de/map/basecamp Download von Garmin Basecamp]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocaching-Software]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=GPS-Ger%C3%A4t&amp;diff=5393</id>
		<title>GPS-Gerät</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=GPS-Ger%C3%A4t&amp;diff=5393"/>
		<updated>2013-10-11T14:53:33Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Funktionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Garmin Oregon 550.jpg|thumb|hochkant=0.7]]&lt;br /&gt;
Als &#039;&#039;&#039;GPS-Gerät&#039;&#039;&#039; (kurz: &#039;&#039;&#039;GPSr&#039;&#039;&#039;) bezeichnen Geocacher kompakte und robuste Navigationsgeräte im Format eines älteren Handys oder kleinen Funkgeräts. Die Geräte empfangen Signale von Satelliten des [[GPS|GPS-Systems]] und berechnen daraus die aktuelle Position, unter guten Bedingungen auf wenige Meter genau. Außerdem verfügen sie immer über die exakte Uhrzeit.&lt;br /&gt;
&lt;br /&gt;
Eine Alternative zum GPS-Gerät sind [[Smartphone]]s mit [[Smartphone-Apps für Opencaching.de|Geocaching-Apps]]. Nicht empfehlenswert sind dagegen Straßen-Navigationssysteme – sie sind nicht für Outdoor-Einsatz gebaut und bieten wenig Geocaching-Komfort.&lt;br /&gt;
&lt;br /&gt;
Fragen zu GPS-Geräten kannst du jederzeit im [http://forum.geocaching-network.com/index.php?board=31.0 Opencaching-Forum] stellen.&lt;br /&gt;
&lt;br /&gt;
== Funktionen ==&lt;br /&gt;
Moderne GPS-Geräte besitzen eine Fülle von Funktionen. Folgende sind für das Geocaching wichtig:&lt;br /&gt;
&lt;br /&gt;
; Koordinatenanzeige&lt;br /&gt;
Die ersten GPS-Geräte beherrschten nur diese eine Grundfunktion: Anzeige von Längen- und Breitengrad, mit weiterer Unterteilung in Minuten und Sekunden oder Tausendstel-Minuten. Für die Geocaching-Pioniere genügte dies, um einen Cache zu finden und auch heute noch so manchem Puristen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ETrexx Wegpunkt mitteln.JPG|thumb|Wegpunkteingabe]]&lt;br /&gt;
; [[Wegpunkte]] speichern&lt;br /&gt;
Das können alle heute angebotenen Geräte: Koordinaten mit einer Bezeichung versehen und speichern – entweder von Hand, oder indem man sie per [[Abkürzungen#GPX|GPX-Datei]] auf das Gerät [[Wie finde ich meinen ersten Cache?#Einen Geocache auf das Navigationsgerät übertragen|überträgt]]. Anschließend wählt man einen Wegpunkt als Ziel der Cachesuche, und die Entfernung bis zum Ziel wird laufend angezeigt.&lt;br /&gt;
&lt;br /&gt;
; Kompass&lt;br /&gt;
Sobald man unterwegs ist und sich zumindest im Schritttempo bewegt, kann das GPS-Gerät aus der sich verändernden Position Richtung und Geschwindigkeit ermitteln. Die Richtung zu einem gewählten Ziel zeigt es auf einem Kompass an.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bessere Geräte besitzen einen elektronischen Kompass, der auch dann noch funktioniert wenn man stehenbleibt oder durchs Gebüsch kriecht.&lt;br /&gt;
&lt;br /&gt;
; Karte&lt;br /&gt;
Die meisten GPS-Geräte können heute Geländekarten darstellen. Dies ist eine große Hilfe bei der Cachesuche – jeder der schonmal auf der falschen Seite eines Bahngleises oder reißenden Baches stand weiß sie zu schätzen. Es gibt freie und kostenlose [[OpenStreetMap|OpenStreetMap-Karten]] sowie teure Karten zum Kaufen.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://forum.geocaching-network.com/index.php?topic=1924.0 Welche GPS-Geräte verwenden OpenCacher?]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GPS-Geräte]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Odbiornik GPS]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Letterboxing&amp;diff=5390</id>
		<title>Letterboxing</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Letterboxing&amp;diff=5390"/>
		<updated>2013-10-11T10:05:23Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Situation in Deutschland */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Beim Letterboxing handelt es sich um ein Hobby, welches starke Ähnlichkeiten zu Geocaching aufweist. &#039;&#039;Letterbox&#039;&#039; ist ein englisches Wort für Briefkasten.&lt;br /&gt;
&lt;br /&gt;
== Ursprung ==&lt;br /&gt;
Die Anfänge des Letterboxing findet man im Jahr 1854. Zu dieser Zeit gab es einen Führer in England (Dartmoor), welcher an Wanderwegen Behälter hinterließ, welche er mit Postkarten bzw. Briefen bestückte. Der Name dieser Freizeitbeschäftigung erinnert an diese Art von Briefkästen.&lt;br /&gt;
&lt;br /&gt;
== Besonderheiten ==&lt;br /&gt;
Da es zu Gründungszeiten des &#039;&#039;Letterboxing&#039;&#039; noch keine [[GPS-Gerät]]e gab, wird dieser Beschäftigung auch heute noch ohne solch ein Gerät nachgegangen – zum einen, um die Tradition zu bewahren, zum anderen, da ein Großteil der Menschen, die dieses Hobby betreiben, über kein entsprechendes Gerät verfügt. Stattdessen stützt man sich auf eine Beschreibung (&#039;&#039;Clues&#039;&#039;), in der Peilungen, Entfernungsangaben oder Rätsel etc. enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Analog zu [[Geocache|Geocaches]] findet man auch hier ein [[Logbuch]] vor. Neben dem Hinterlassen einer Nachricht wird zusätzlich erwartet, dass man mit einem persönlichen Stempel seine Anwesehenheit „unterschreibt“. Außerdem findet man in jeder Letterbox einen Stempel, mit welchem man als Beweis seines Besuches einen Abdruck in sein eigenes Logbuch machen darf. Dieser Stempel ist meistens selbst erstellt und darf auf &#039;&#039;&#039;keinem&#039;&#039;&#039; Fall mitgenommen werden.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Besonderheit sind die Postkarten, welche in Letterboxen hinterlegt sind und mit der Adresse des Besitzers versehen sind. Um seinen Fund zu dokumentieren, soll der Finder eine von diesen mitnehmen und dann abschicken, um den Fund der Box zu „loggen“. Dieses Vorgehen entstammt einerseits dem Ursprung des Letterboxing, andererseits ist ein Onlinelog, wie es beim Geocaching der Fall ist, auf den traditionellen Letterboxing-Seiten nicht üblich. Jedoch ist diese Tradition durch die vermehrte Nutzung von E-Mails vom Aussterben bedroht.&lt;br /&gt;
&lt;br /&gt;
Üblicherweise findet man in Letterboxen keine [[Tauschgegenstände]], sondern nur ein Logbuch, einen Stift, einen Stempel und evtl. Postkarten.&lt;br /&gt;
&lt;br /&gt;
Der Zeitaufwand führ Letterboxen liegt zumeist nicht unter einer Stunde.&amp;lt;br /&amp;gt;&lt;br /&gt;
Auch beim Letterboxing findet man [[Reisende]], welche als &#039;&#039;Hitchhiker&#039;&#039; (Tramper, Anhalter) bezeichnet werden. Jedoch haben diese eine nicht so große Verbreitung wie [[Geokret]]s.&lt;br /&gt;
&lt;br /&gt;
== Situation in Deutschland ==&lt;br /&gt;
Durch das Eröffnen eines Forums wurde im Jahr 2006 durch die deutsche Letterboxing-Seite das öffentliche Loggen ermöglicht. Jedoch ist in Deutschland nur eine geringe Anzahl an Letterboxen versteckt. Im Gegensatz zu anderen Ländern, allen voran die USA, ist diese Anzahl extrem niedrig.&lt;br /&gt;
&lt;br /&gt;
Bei den deutschen Letterboxen liegen meist längere Wanderungen zugrunde, bei denen vieles über Kultur und Geschichte erzählt wird. Vordergründig ist dabei der Weg und nicht die Suche der Box. Die Anzahl der Reisenden hält sich in Deutschland in Grenzen, wobei es in den USA weitaus mehr gibt.&lt;br /&gt;
&lt;br /&gt;
== Listing auf Opencaching ==&lt;br /&gt;
[[Datei:Letterbox-attribut.png|thumb|Letterbox-Attribut]]&lt;br /&gt;
Wenn Letterboxen den Nutzungsbedingungen der Webseite entsprechen, so dürfen sie auf Opencaching.de gelistet werden. Dabei muss das Letterbox-[[Attribute|Attribut]]  gewählt werden, wodurch eine gezielte Suche nach Letterboxen über das [[Suchformular]] möglich ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beim Doppellisting auf Opencaching.de und Letterboxing-Germany.de sollte darauf geachtet werden, dass immer beide Beschreibungen aktuell sind.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Für Geocaching-Neulinge sind solche „Letterbox-Hybride“ eine interessante Möglichkeit, um in das Hobby reinzuschnuppern, ohne sich zuvor ein [[GPS-Gerät]] zu besorgen.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.opencaching.de/search.php?searchto=searchbyname&amp;amp;showresult=1&amp;amp;expert=0&amp;amp;output=HTML&amp;amp;utf8=1&amp;amp;sort=bydistance&amp;amp;orderRatingFirst=0&amp;amp;f_userowner=0&amp;amp;f_userfound=0&amp;amp;f_inactive=1&amp;amp;f_ignored=0&amp;amp;f_otherPlatforms=0&amp;amp;country=&amp;amp;cachetype=1%3B2%3B3%3B4%3B5%3B6%3B7%3B8%3B9%3B10&amp;amp;cachesize=1%3B2%3B3%3B4%3B5%3B6%3B7&amp;amp;difficultymin=0&amp;amp;difficultymax=0&amp;amp;terrainmin=0&amp;amp;terrainmax=0&amp;amp;cache_attribs=8&amp;amp;cache_attribs_not=7&amp;amp;cachename=%25 Letterboxen auf Opencaching.de]&lt;br /&gt;
* [http://www.Letterboxing-Germany.de Letterboxing in Deutschland]&lt;br /&gt;
* [http://michael-wilhelm.info/lbg_forum/ Forum zu Letterboxing-Germany.de]&lt;br /&gt;
* [http://www.letterboxing.org Letterboxing in Nord-Amerika] (englisch)&lt;br /&gt;
* [http://www.atlasquest.com Internationale Letterboxing-Seite] (englisch)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocaching]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Letterboxing]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Letterboxing&amp;diff=5389</id>
		<title>Letterboxing</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Letterboxing&amp;diff=5389"/>
		<updated>2013-10-11T10:03:55Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Besonderheiten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Beim Letterboxing handelt es sich um ein Hobby, welches starke Ähnlichkeiten zu Geocaching aufweist. &#039;&#039;Letterbox&#039;&#039; ist ein englisches Wort für Briefkasten.&lt;br /&gt;
&lt;br /&gt;
== Ursprung ==&lt;br /&gt;
Die Anfänge des Letterboxing findet man im Jahr 1854. Zu dieser Zeit gab es einen Führer in England (Dartmoor), welcher an Wanderwegen Behälter hinterließ, welche er mit Postkarten bzw. Briefen bestückte. Der Name dieser Freizeitbeschäftigung erinnert an diese Art von Briefkästen.&lt;br /&gt;
&lt;br /&gt;
== Besonderheiten ==&lt;br /&gt;
Da es zu Gründungszeiten des &#039;&#039;Letterboxing&#039;&#039; noch keine [[GPS-Gerät]]e gab, wird dieser Beschäftigung auch heute noch ohne solch ein Gerät nachgegangen – zum einen, um die Tradition zu bewahren, zum anderen, da ein Großteil der Menschen, die dieses Hobby betreiben, über kein entsprechendes Gerät verfügt. Stattdessen stützt man sich auf eine Beschreibung (&#039;&#039;Clues&#039;&#039;), in der Peilungen, Entfernungsangaben oder Rätsel etc. enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Analog zu [[Geocache|Geocaches]] findet man auch hier ein [[Logbuch]] vor. Neben dem Hinterlassen einer Nachricht wird zusätzlich erwartet, dass man mit einem persönlichen Stempel seine Anwesehenheit „unterschreibt“. Außerdem findet man in jeder Letterbox einen Stempel, mit welchem man als Beweis seines Besuches einen Abdruck in sein eigenes Logbuch machen darf. Dieser Stempel ist meistens selbst erstellt und darf auf &#039;&#039;&#039;keinem&#039;&#039;&#039; Fall mitgenommen werden.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Besonderheit sind die Postkarten, welche in Letterboxen hinterlegt sind und mit der Adresse des Besitzers versehen sind. Um seinen Fund zu dokumentieren, soll der Finder eine von diesen mitnehmen und dann abschicken, um den Fund der Box zu „loggen“. Dieses Vorgehen entstammt einerseits dem Ursprung des Letterboxing, andererseits ist ein Onlinelog, wie es beim Geocaching der Fall ist, auf den traditionellen Letterboxing-Seiten nicht üblich. Jedoch ist diese Tradition durch die vermehrte Nutzung von E-Mails vom Aussterben bedroht.&lt;br /&gt;
&lt;br /&gt;
Üblicherweise findet man in Letterboxen keine [[Tauschgegenstände]], sondern nur ein Logbuch, einen Stift, einen Stempel und evtl. Postkarten.&lt;br /&gt;
&lt;br /&gt;
Der Zeitaufwand führ Letterboxen liegt zumeist nicht unter einer Stunde.&amp;lt;br /&amp;gt;&lt;br /&gt;
Auch beim Letterboxing findet man [[Reisende]], welche als &#039;&#039;Hitchhiker&#039;&#039; (Tramper, Anhalter) bezeichnet werden. Jedoch haben diese eine nicht so große Verbreitung wie [[Geokret]]s.&lt;br /&gt;
&lt;br /&gt;
== Situation in Deutschland ==&lt;br /&gt;
Durch das Eröffnen eines Forums wurde im Jahr 2006 durch die deutsche Letterboxing-Seite das öffentliche Loggen ermöglicht. Jedoch ist in Deutschland nur eine geringe Anzahl an Letterboxen versteckt. Im Gegensatz zu anderen Ländern, allen voran die USA, ist diese Anzahl extrem niedrig.&lt;br /&gt;
&lt;br /&gt;
Bei den deutschen Letterboxen liegen meist längere Wanderungen zugrunde, bei denen vieles über Kultur und Geschichte erzählt wird. Vordegründlich ist dabei der Weg und nicht die Suche der Box. Die Anzahl der Reisenden hält sich in Deutschland in Grenzen, wobei es in den USA weitaus mehr gibt.&lt;br /&gt;
&lt;br /&gt;
== Listing auf Opencaching ==&lt;br /&gt;
[[Datei:Letterbox-attribut.png|thumb|Letterbox-Attribut]]&lt;br /&gt;
Wenn Letterboxen den Nutzungsbedingungen der Webseite entsprechen, so dürfen sie auf Opencaching.de gelistet werden. Dabei muss das Letterbox-[[Attribute|Attribut]]  gewählt werden, wodurch eine gezielte Suche nach Letterboxen über das [[Suchformular]] möglich ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Beim Doppellisting auf Opencaching.de und Letterboxing-Germany.de sollte darauf geachtet werden, dass immer beide Beschreibungen aktuell sind.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Für Geocaching-Neulinge sind solche „Letterbox-Hybride“ eine interessante Möglichkeit, um in das Hobby reinzuschnuppern, ohne sich zuvor ein [[GPS-Gerät]] zu besorgen.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.opencaching.de/search.php?searchto=searchbyname&amp;amp;showresult=1&amp;amp;expert=0&amp;amp;output=HTML&amp;amp;utf8=1&amp;amp;sort=bydistance&amp;amp;orderRatingFirst=0&amp;amp;f_userowner=0&amp;amp;f_userfound=0&amp;amp;f_inactive=1&amp;amp;f_ignored=0&amp;amp;f_otherPlatforms=0&amp;amp;country=&amp;amp;cachetype=1%3B2%3B3%3B4%3B5%3B6%3B7%3B8%3B9%3B10&amp;amp;cachesize=1%3B2%3B3%3B4%3B5%3B6%3B7&amp;amp;difficultymin=0&amp;amp;difficultymax=0&amp;amp;terrainmin=0&amp;amp;terrainmax=0&amp;amp;cache_attribs=8&amp;amp;cache_attribs_not=7&amp;amp;cachename=%25 Letterboxen auf Opencaching.de]&lt;br /&gt;
* [http://www.Letterboxing-Germany.de Letterboxing in Deutschland]&lt;br /&gt;
* [http://michael-wilhelm.info/lbg_forum/ Forum zu Letterboxing-Germany.de]&lt;br /&gt;
* [http://www.letterboxing.org Letterboxing in Nord-Amerika] (englisch)&lt;br /&gt;
* [http://www.atlasquest.com Internationale Letterboxing-Seite] (englisch)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocaching]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Letterboxing]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Event&amp;diff=5388</id>
		<title>Event</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Event&amp;diff=5388"/>
		<updated>2013-10-11T09:57:31Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Wie organisiere ich ein Event? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Eventliste.png|thumb|300px|Eventliste auf der Opencaching-Startseite]]&lt;br /&gt;
Ein &#039;&#039;&#039;Event&#039;&#039;&#039; ist eine Veranstaltung, bei der sich Geocacher treffen und kennenlernen können. Er wird wie ein zu suchender [[Geocache]] [[Erstellen einer Cachebeschreibung/ Listing|gelistet]]: Als Cacheart wird [[Cachearten#Event-Cache|Event-Cache]] gewählt, die Koordinaten geben den Ort des Treffens an und das Versteckdatum den geplanten Termin. Daher liegt dieses Versteckdatum beim Anlegen des Listings – im Gegensatz zu einem gewöhnlichen Geocache – stets in der Zukunft. Der Event erscheint dann auf der [[Cachekarte]] und in einer Übersicht direkt auf der Startseite von Opencaching.de. Außerdem ist er natürlich per [[Suchformular]] findbar.&lt;br /&gt;
&lt;br /&gt;
Ein Event kann ein Treffen in einer Gaststätte sein (z.B. als Stammtisch) oder draußen stattfinden (z.B.  als Aufräumevent/[[Abkürzungen#CITO|CITO]]). Da man sich im kleinen Kreis besser unterhalten kann, sollte das Listing als [[OConly]] eingestellt werden, also nur auf der [[Geocaching-Plattformen|Plattform]] Opencaching.de veröffentlicht werden. Falls jedoch viele Teilnehmer erwünscht sind (z.B. bei einem Flashmob), dann sollte das Event auch auf anderen Plattformen gelistet sein.&lt;br /&gt;
&lt;br /&gt;
=== Wie organisiere ich ein Event? ===&lt;br /&gt;
[[Datei:OC6E6B Newbie-Event Berlin.jpg|thumb|links|{{Cachelink|OC6E6B|Newbie-Event in Berlin}}, September&amp;amp;nbsp;2011]]&lt;br /&gt;
Falls du selber ein Event organsieren willst, dann reserviere vorher einen entsprechend großen Raum in deinem Lieblingsrestaurant. Sprich frühzeitig mit dem Gastwirt die Bezahlweise ab, denn der Spruch „Der Letzte zahlt die Zeche“ gilt nicht. Hier hat sich die Durchnummerierung der Teilnehmer oder der Bierdeckel bewährt, völlig unproblematisch ist natürlich eine Sofort-Kasse. Damit die Teilnehmer einfacher in Kontakt kommen, bieten sich Namensschilder (z.B. Klebeetiketten) an. Ein Logbuch, in das sich die Geocacher eintragen können, ist zwar keine Pflicht, aber eine nette Erinnerung für später. Bitte vergiss nicht, den Event hinterher auch zu archivieren, wobei eine zeitliche Verzögerung von einem Monat angemessen ist. &lt;br /&gt;
&lt;br /&gt;
Bei einer Außenveranstaltung sollte ein Programm existieren. Ein Beispiel wäre das gemeinsame Aufräumen einer vermüllten [[Location]] ([[Abkürzungen#CITO|CITO]]). Dieses Programm sollte dann im Listing detailliert aufgeführt werden, damit es vor Ort gleich reibungslos losgehen kann.&lt;br /&gt;
&lt;br /&gt;
=== Wie logge ich ein Event? ===&lt;br /&gt;
Als Logtyp wird vor der Veranstaltung ein „[[Das Onlinelog#Möchte teilnehmen|möchte teilnehmen]]“ geloggt, so dass im [[Listing]] eine Teilnehmerliste entsteht. Wenn der Event stattgefunden hat, dann wird die Teilnahme als „[[Das Onlinelog#Teilgenommen|teilgenommen]]“ geloggt. Auch ein Organisator darf seinen Event so loggen, schließlich war er mit dabei.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocaching]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Skrzynka typu Wydarzenie]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Nachtcache&amp;diff=5387</id>
		<title>Nachtcache</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Nachtcache&amp;diff=5387"/>
		<updated>2013-10-11T09:54:38Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Pflege */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bei einem &#039;&#039;&#039;Nachtcache&#039;&#039;&#039; handelt es sich um einen [[Geocache]], welcher nur bei Dunkelheit gefunden werden kann. Das [[Listing|Cachelisting]] sollte mit dem „Nur-bei-Nacht“-[[Attribute|Attribut]] gekennzeichnet sein, sodass man auf Opencaching.de gezielt nach Nachtcaches [[Cachekarte#Suchen_eines_Caches|suchen]] kann.&lt;br /&gt;
&lt;br /&gt;
Meist handelt es sich um [[Multicache]]s oder auch [[Rätselcache]]s, deren Weg mit [[#Reflektoren|Reflektoren]] gekennzeichnet ist. Dabei können unterschiedliche Reflektorfarben den Weg und bestimmte Orte (Gabelungen, Zwischenstationen, Finale etc.) signalisieren.&lt;br /&gt;
&lt;br /&gt;
== Nachtcaches suchen ==&lt;br /&gt;
[[Datei:OC00C5 Nachtcache.jpg|200px|thumb|rechts|Impression während eines Nachtcaches]]&lt;br /&gt;
Der besondere Reiz an Nachtcaches ist das Erlebnis, in vollkommener Dunkelheit durch eine Gegend zu laufen, welche man bisher noch nie so erlebt hat. Es dringen ganz neue Geräusche und andere Sinneseindrücke zum Cacher und alles hat etwas Mystisches.&lt;br /&gt;
&lt;br /&gt;
Da die Reflektoren zumeist in größeren Abständen angebracht sind, ist eine starke [[Taschenlampe]] vom Vorteil ([[Naturschutz]] beachten). Manchmal kommt es auch vor, dass eine [[UV-Lampe]] oder ähnliche Spezialwerkzeuge benötigt werden. Dies ist dann jedoch in der Beschreibung des Caches vermerkt.&lt;br /&gt;
&lt;br /&gt;
Im Wald kann es passieren, dass wichtige Elemente von Ästen etc. verdeckt sind. Diese müssen dann erst gesucht werden, da man sonst Probleme mit der weiteren Wegführung bekommen könnte.&lt;br /&gt;
&lt;br /&gt;
== Nachtcaches legen ==&lt;br /&gt;
Wie bei allen Cachearten gilt: Bevor du einen Nachtcache legst, solltest du schon einige gesucht und gefunden haben. So lernst du, was man dabei richtig und falsch machen kann (→ [[Wie verstecke ich einen Cache?#Der richtige Zeitpunkt für den ersten eigenen Geocache|Der richtige Zeitpunkt für den ersten eigenen Geocache]]).&lt;br /&gt;
&lt;br /&gt;
Beim Legen eines Nachtcaches sollte man sich bewusst sein, dass man als Eigentümer eine große Verantwortung trägt. Man sollte darauf achten, dass der Weg ungefährlich ist, d.&amp;amp;nbsp;h. einigermaßen „stolperfrei“, möglichst nicht in der Nähe von Tieren (Wildschweinsuhlen etc.) und nicht im Umfeld eines Jägers. Möchte man dennoch einen Nachtcache in einem Jagdgebiet legen, so ist eine Absprache mit dem zuständigen Revierförster empfehlenswert.&lt;br /&gt;
&lt;br /&gt;
=== Reflektoren ===&lt;br /&gt;
[[Datei:OC318A Nachtcache 01.jpg|200px|thumb|rechts|Reflektoren]]&lt;br /&gt;
Es ist üblich, unterschiedliche Stationen des Caches mit verschiedenfarbige Reflektoren zu kennzeichnen. Je nach Farbe markieren sie beispielsweise eine Weggabelung, eine Zwischenstation und das Ziel.&lt;br /&gt;
&lt;br /&gt;
Reflektoren bekommt man am günstigsten im Baumarkt. Dort gibt es Reflektorbänder in allen möglichen Farben für einen niedrigen Preis. Jedoch sollte auch auf eine gute Qualität geachtet werden, da die Reflektoren durch Wettereinflüsse altern und ein häufiger Wechsel der Reflektoren notwendig sein könnte.&lt;br /&gt;
&lt;br /&gt;
Die Abstände zwischen den Reflektoren sollten so gewählt sein, dass sie nicht zu nah aneinander, aber auch nicht zu weit entfernt voneinander befestigt sind. Sie sollten sich immer im Erfassungsbereich einer starken Taschenlampe befinden.&lt;br /&gt;
&lt;br /&gt;
Die Reflektoren sollten im Sinne des [[Naturschutz]]es so angebracht sein, dass sie die Umwelt nicht schädigen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Nachcache-Attribute.png|thumb]]&lt;br /&gt;
=== Listing ===&lt;br /&gt;
Im Listing muss der Cache als Nachtcache ausgewiesen werden. Dies geschieht am besten durch das „Nur-bei-Nacht“-Attribut. Zusätzlich sollte das Taschenlampen-Attribut gesetzt sein.&amp;lt;br /&amp;gt;&lt;br /&gt;
Desweiteren sollte im Listing vermerkt sein, was die einzelnen Reflektorfarben bedeuten. Sonst kann es vor Ort zu ziemlichen Irritationen kommen.&lt;br /&gt;
&lt;br /&gt;
=== Pflege ===&lt;br /&gt;
Gelegentlich sollte kontrolliert werden, ob am Weg des Caches keine neuen Gefahrenquellen (wie z.&amp;amp;nbsp;B. die bereits erwähnten Wildschweinsuhlen) entstanden sind; ggf. ist der Weg zu verändern.&lt;br /&gt;
&lt;br /&gt;
Reflektoren können durch äußere Einflüsse beschädigt werden oder verschwinden. Daher sollten sie gelegentlich kontrolliert und ggf. ersetzt werden. Man sollte immer genügend Reparaturmaterial haben, um in diesem Fall möglichst bald reagieren zu können.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Geocaches]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=OConly&amp;diff=5382</id>
		<title>OConly</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=OConly&amp;diff=5382"/>
		<updated>2013-10-10T09:49:34Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Wie finde ich OConlys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die OConlys sind ganz besondere Caches!&lt;br /&gt;
[[Datei:OConly.jpeg|Das OConly Logo|right]]&lt;br /&gt;
&lt;br /&gt;
== Was ist ein OConly? ==&lt;br /&gt;
&lt;br /&gt;
Ein OConly ist ein Cache, der &#039;&#039;&#039;nur&#039;&#039;&#039; auf opencaching.de veröffentlicht ist. Er wird vom Besitzer mit dem OConly-[[Attribute|Attribut]] markiert. Diese besonderen, exklusiven Caches machen &amp;quot;das Herz&amp;quot; von Opencaching.de aus. Sie sind nur bei uns zu finden und locken somit immer neue Cacher zu Opencaching.de. Durch ein Veröffentlichen von OConly-Caches kannst du uns aktiv unterstützen. Zurzeit gibt es rund 3000 Caches mit OConly-Attribut, und weitere ca. 3000 OConlys, bei denen das Attribut fehlt.&lt;br /&gt;
&lt;br /&gt;
== Wie finde ich OConlys ==&lt;br /&gt;
&lt;br /&gt;
Auf unserer Opencaching-[http://www.opencaching.de/map2.php Karte] kannst du unten bei &#039;Attribute&#039; auf &#039;OConly&#039; klicken. Dann werden dir nur Caches mit OConly-Attribut angezeigt. Stattdessen kannst du auch unter &#039;Ausblenden&#039; das Häkchen bei &#039;auf GC gelistet&#039; entfernen. Dann werden Dir nur Caches angezeigt, bei denen der Besitzer keinen GC-[[Wegpunkte|Wegpunkt]] angegeben hat - also auch die OConlies ohne Attribut.&lt;br /&gt;
&lt;br /&gt;
Da die externen Wegpunkte nicht immer eingetragen werden, unterhält das [[Datenpflege]]team zusätzlich eine Liste mit weiteren GC-Wegpunkten, die in den [[Listing|Cachelistings]] fehlen. Auch diese Caches werden mit ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
; Die OCony-Karte&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglicheit ist die [http://oconly.de OConly-Karte], die nicht von Opencaching.de betrieben wird, aber ebenfalls die Daten des [[Datenpflege]]teams verwendet.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Datei:OConly.de.png&lt;br /&gt;
rect 10 11 55 43 [http://oconly.de/?auswahl=1]&lt;br /&gt;
rect 65 11 113 43 [http://oconly.de/?auswahl=2]&lt;br /&gt;
rect 123 11 168 43 [http://oconly.de/?auswahl=3]&lt;br /&gt;
desc none&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Wennn du auf das rechte Symbol (non-GC) klickst erscheinen alle Caches, die auf Opencaching, aber nicht auf geocaching.com gelistet sind - das heißt alle OConlies und ein paar Caches, die es auch auf sonstigen Plattformen wie Navicache gibt.&lt;br /&gt;
&lt;br /&gt;
* Das mittlere, blaue Symbol zeigt nur Caches mit OConly-Attribut an.&lt;br /&gt;
&lt;br /&gt;
* Das  ?  zeigt alle OConly-Caches an, bei denen die OC-Datenpfleger nicht herausfinden konnten, ob sie noch findbar und logbar sind. Du kannst uns unterstützen, indem du solche Caches in deiner Gegend suchst und loggst, und uns mit dem Link über der [http://oconly.de?auswahl=1 OConly-Karte] Rückmeldungen gibst.&lt;br /&gt;
&lt;br /&gt;
== Wie markiere ich einen eigenen Cache als OConly? ==&lt;br /&gt;
&lt;br /&gt;
Dazu bearbeitest du den Cache und setzt im Abschnitt „[[Attribute#Attribute eingeben |Cacheattribute]]“ die OConly-Markierung. &lt;br /&gt;
&lt;br /&gt;
== OConly-81 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;OConly-81&#039;&#039; ist eine sportliche Herausforderung bei der es darum geht, OConly-Caches in möglichst vielen [[Schwierigkeitswertung|Schwierigkeits-]] und [[Geländewertung]]en zu finden. In deinen [[Benutzerprofil]]-Einstellungen kannst du unter „Details“ die OConly-81-Statistik aktivieren, die dann in deinem [http://www.opencaching.de/viewprofile.php öffentlichen Benutzerprofil] erscheint.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen gibt es auf der [http://www.opencaching.de/oconly81.php OConly-81-Seite].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Mehrfachlisting]], das Gegenteil eines OConlies&lt;br /&gt;
* [[Vorlagen zum Ausdrucken#Informationsmaterial|OConly-Hinweis zum Ausdrucken]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
[[Kategorie:Geocaches]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{unvollständig|&lt;br /&gt;
* Farbige Hervorhebung der OConlys auf der Karte}}&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=OConly&amp;diff=5381</id>
		<title>OConly</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=OConly&amp;diff=5381"/>
		<updated>2013-10-10T09:47:08Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Was ist ein OConly? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die OConlys sind ganz besondere Caches!&lt;br /&gt;
[[Datei:OConly.jpeg|Das OConly Logo|right]]&lt;br /&gt;
&lt;br /&gt;
== Was ist ein OConly? ==&lt;br /&gt;
&lt;br /&gt;
Ein OConly ist ein Cache, der &#039;&#039;&#039;nur&#039;&#039;&#039; auf opencaching.de veröffentlicht ist. Er wird vom Besitzer mit dem OConly-[[Attribute|Attribut]] markiert. Diese besonderen, exklusiven Caches machen &amp;quot;das Herz&amp;quot; von Opencaching.de aus. Sie sind nur bei uns zu finden und locken somit immer neue Cacher zu Opencaching.de. Durch ein Veröffentlichen von OConly-Caches kannst du uns aktiv unterstützen. Zurzeit gibt es rund 3000 Caches mit OConly-Attribut, und weitere ca. 3000 OConlys, bei denen das Attribut fehlt.&lt;br /&gt;
&lt;br /&gt;
== Wie finde ich OConlys ==&lt;br /&gt;
&lt;br /&gt;
Auf unserer Opencaching-[http://www.opencaching.de/map2.php Karte] kannst du unten bei &#039;Attribute&#039; auf &#039;OConly&#039; klicken. Dann werden dir nur Caches mit OConly-Attribut angezeigt. Stattdessen kannst du auch unter &#039;Ausblenden&#039; das Häkchen bei &#039;auf GC gelistet&#039; entfernen. Dann werden Dir nur Caches angezeigt, bei denen der Besitzer keinen GC-[[Wegpunkte|Wegpunkt]] angegeben hat - also auch die OConlies ohne Attribut.&lt;br /&gt;
&lt;br /&gt;
Da die externen Wegpunkte nicht immer eingetragen werden, unterhält das [[Datenpflege]]team zusätzlich eine Liste mit weiteren GC-Wegpunkten, die in den [[Listing|Cachelistings]] fehlen. Auch diese Caches werden mit ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
; Die OCony-Karte&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglicheit ist die [http://oconly.de OConly-Karte], die nicht von Opencaching.de betrieben wird, aber ebenfalls die Daten des [[Datenpflege]]teams verwendet.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Datei:OConly.de.png&lt;br /&gt;
rect 10 11 55 43 [http://oconly.de/?auswahl=1]&lt;br /&gt;
rect 65 11 113 43 [http://oconly.de/?auswahl=2]&lt;br /&gt;
rect 123 11 168 43 [http://oconly.de/?auswahl=3]&lt;br /&gt;
desc none&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Wennn du auf das rechte Symbol (non-GC) klickst erscheinen alle Caches, die auf Opencaching, aber nicht auf geocaching.com gelistet sind - das heißt alle OConlies und ein paar Caches, die es auch auf sonstigen Plattformen wie Navicache gibt.&lt;br /&gt;
&lt;br /&gt;
* Das mittlere, blaue Symbol zeigt nur Caches mit OConly-Attribut an.&lt;br /&gt;
&lt;br /&gt;
* Das  ?  zeigt alle OConly-Caches an, bei denen die OC-Datenpfleger nicht herausfinden konnte, ob sie noch findbar und logbar sind. Du kannst uns unterstützen, indem du solche Caches in deiner Gegend suchst und loggst, und uns mit dem Link über der [http://oconly.de?auswahl=1 OConly-Karte] Rückmeldungen gibst.&lt;br /&gt;
&lt;br /&gt;
== Wie markiere ich einen eigenen Cache als OConly? ==&lt;br /&gt;
&lt;br /&gt;
Dazu bearbeitest du den Cache und setzt im Abschnitt „[[Attribute#Attribute eingeben |Cacheattribute]]“ die OConly-Markierung. &lt;br /&gt;
&lt;br /&gt;
== OConly-81 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;OConly-81&#039;&#039; ist eine sportliche Herausforderung bei der es darum geht, OConly-Caches in möglichst vielen [[Schwierigkeitswertung|Schwierigkeits-]] und [[Geländewertung]]en zu finden. In deinen [[Benutzerprofil]]-Einstellungen kannst du unter „Details“ die OConly-81-Statistik aktivieren, die dann in deinem [http://www.opencaching.de/viewprofile.php öffentlichen Benutzerprofil] erscheint.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen gibt es auf der [http://www.opencaching.de/oconly81.php OConly-81-Seite].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Mehrfachlisting]], das Gegenteil eines OConlies&lt;br /&gt;
* [[Vorlagen zum Ausdrucken#Informationsmaterial|OConly-Hinweis zum Ausdrucken]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
[[Kategorie:Geocaches]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{unvollständig|&lt;br /&gt;
* Farbige Hervorhebung der OConlys auf der Karte}}&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Benutzerprofil&amp;diff=5380</id>
		<title>Benutzerprofil</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Benutzerprofil&amp;diff=5380"/>
		<updated>2013-10-10T08:39:47Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Profil.png|thumb|rechts|330px|Beispiel für ein Benutzerprofil]]&lt;br /&gt;
Das &#039;&#039;&#039;Benutzerprofil&#039;&#039;&#039; ist dein persönliches „Opencaching-Kontrollzentrum“. Hier kannst du sehen, welche Geocaches du [[Das Onlinelog|geloggt]], [[Wie verstecke ich einen Cache?|versteckt]] und [[Empfehlungen|empfohlen]] hast, und hier kannst du alle deine Benutzereinstellungen ändern. &lt;br /&gt;
&lt;br /&gt;
Um ein Profil zu erhalten, musst du dich zunächst bei Opencaching.de [[Registrierung|registrieren]]. Sobald du dich [[Login auf Opencaching.de|eingeloggt]] hast, kannst du dein Profil mit dem Knopf MEIN PROFIL in der Menüleiste aufrufen.&lt;br /&gt;
&lt;br /&gt;
Andere Benutzer können sich dein &#039;&#039;öffentliches Profil&#039;&#039; anschauen, indem sie in einem deiner Logs oder [[Listing|Cachelistings]] auf deinen Benutzername klicken, genauso wie du dir die Profile anderer Benutzer ansehen kannst. Sie sehen dort das Datum deiner Registrierung, eine grobe Angabe über den Zeitraum seit deinem letzten Login und eine Statistik deiner versteckten und gefundenen Caches. Weitere Informationen kannst du auf Wunsch eingeben bzw. einblenden – siehe „Details“ im nachfolgender Abschnitt.&lt;br /&gt;
&lt;br /&gt;
Du kannst dir dein öffentliches Profil auch selbst anschauen, indem du links im Menü auf „Öffentliches Profil“ klickst.&lt;br /&gt;
&lt;br /&gt;
== Statistik ==&lt;br /&gt;
Die Zahl der gefundenen Caches im ersten Abschnitt bezieht sich auf alle geloggten Funde und [[Event|Eventteilnahmen]] – einschließlich Caches, die zwischenzeitlich [[Cachestatus#Gesperrt + Versteckt|gesperrt/versteckt]] wurden. Wenn ein Cache mehrfach geloggt wurde – z.B. ein wiederkehrendes Event oder ein beweglicher Cache – zählt er mehrfach.&lt;br /&gt;
&lt;br /&gt;
Wenn du auf „alle Funde anzeigen“ klickst, wird jeder Cache nur einmal aufgelistet, und versteckte Caches sind ausgeblendet. Daher kann die Zahl in dieser Liste geringer sein als die Gesamtzahl der Funde auf deiner Profilseite.&lt;br /&gt;
&lt;br /&gt;
Bei der Versteckstatistik im dritten Abschnitt zählen die gesperrt/versteckten Caches ebenfalls mit. In deinem öffentlichen Profil und deinem [[Statistikbild]] werden sie dagegen nicht mitgezählt, da andere Benutzer sie nicht sehen können.&lt;br /&gt;
&lt;br /&gt;
== Einstellungen ==&lt;br /&gt;
Folgende Einstellungen kannst du in deinem Profil vornehmen bzw. ändern; außer Benutzername und Email-Adresse sind diese alle freiwillig:&lt;br /&gt;
&lt;br /&gt;
* „Profildaten“: &lt;br /&gt;
** &#039;&#039;&#039;[[Registrierung#Benutzername|Benutzername]]&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;[[Registrierung#Nachname / Vorname|Vor- und Nachname]]&#039;&#039;&#039;&lt;br /&gt;
** das &#039;&#039;&#039;[[Registrierung#Land|Land]]&#039;&#039;&#039; in dem du gerade „geocachst“&lt;br /&gt;
** die &#039;&#039;&#039;[[Koordinaten]]&#039;&#039;&#039; deines Standortes &lt;br /&gt;
** [[Benachrichtigungen#Benachrichtigung über neue Caches|&#039;&#039;&#039;Benachrichtiungsradius&#039;&#039;&#039; für neue Caches]]&lt;br /&gt;
** &#039;&#039;&#039;Emailadresse&#039;&#039;&#039;: Zum Ändern der Adresse erhältst du an die neue Adresse eine Mail mit einem Sicherheitscode, mit dem du sie aktivieren kannst. Die Adresse wird verwendet, um dir [[Benachrichtigungen]] und [[#Emailversand|Emails]] anderer Benutzer (inklusive von Opencaching-[[Support]]mitarbeitern) zuzustellen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;widelist&amp;quot;&amp;gt;&lt;br /&gt;
* „Details“: &lt;br /&gt;
** &#039;&#039;&#039;Zoomstufe&#039;&#039;&#039; für die Mini-Karte, die in den [[Listing|Cachelistings]] angezeigt wird (&#039;&#039;von–bis?&#039;&#039;)&lt;br /&gt;
** &#039;&#039;&#039;Statistikdetails&#039;&#039;&#039;: Dies bewirkt, dass andere Benutzer in deinem Profil zusätzlich eine Fund- und Versteckstatistik nach Cachetypen sehen sowie die Summe deiner Hinweis- und DNF-Logs. Bitte beachte, dass sich solche Statistiken unabhängig von dieser Einstellung auch über die [[Suchformular|Suchfunktion]] oder aus [[XML-Schnittstelle|heruntergeladenen]] Daten erstellen lassen; sie sind also nicht völlig verhinderbar.&lt;br /&gt;
** &#039;&#039;&#039;Bildstatistik&#039;&#039;&#039; und Galerie: Zeigt in deinem Profil die Anzahl deiner hochgeladenen Logbilder an, mit der Möglichkeit, sich eine Galerie aller deiner Logbilder anzusehen.&lt;br /&gt;
** &#039;&#039;&#039;[[OConly#OConly-81|OConly-81]]&#039;&#039;&#039;-Statistik&lt;br /&gt;
** &#039;&#039;&#039;Wohnort und Alter&#039;&#039;&#039;: Wird für andere Benutzer angezeigt, falls angegeben&lt;br /&gt;
** &#039;&#039;&#039;Beschreibungstext&#039;&#039;&#039;: ein belieber Text, der anderen Benutzern angezeigt wird.&lt;br /&gt;
* gewünschtes &#039;&#039;&#039;[[Statistikbild]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Passwort&#039;&#039;&#039;: Änderung erfolgt wie bei der E-Mail-Adresse durch Zusendung eines Sicherheitscodes&lt;br /&gt;
* Einstellungen für [[Benachrichtigungen#Beobachten von Caches |&#039;&#039;&#039;beobachtete Caches&#039;&#039;&#039;]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weitere Funktionen ==&lt;br /&gt;
In deinem Profil findest du auch:&lt;br /&gt;
* eine Übersicht aller gespeicherten Suchen; siehe [[Suchformular]]&lt;br /&gt;
* eine Übersicht aller [[Benachrichtigungen#Beobachtung von Caches|beobachteten Caches]]&lt;br /&gt;
* eine Übersicht aller [[Caches ignorieren|ignorierten Caches]]&lt;br /&gt;
* eine Übersicht deiner abgegebenen [[Empfehlungen]]&lt;br /&gt;
* die Möglichkeit, [[Adoption#Cache adoptioeren|Adoptionsangebote]] anzunehmen&lt;br /&gt;
&lt;br /&gt;
== Emailversand ==&lt;br /&gt;
Jeder registrierte Opencaching-Benutzer ist für andere registrierte Benutzer per Email erreichbar; dazu dient der Link „Email senden“ oben rechts im Profil. Wenn du eine Email verschickst kannst du wählen, ob die in deinem Profil hinterlegte Email-Adresse als Absender mitgeschicht wird oder nicht. Ohne Absenderadresse sieht der Empfänger nur deinen Benutzernamen und einen Link auf dein Opencaching-Profil. Dort kann er dir dann per „Email senden“ antworten. Mit Absenderadresse ist die Chance höher, dass du eine Antwort erhältst.&lt;br /&gt;
&lt;br /&gt;
Hin und wieder kommt es vor, dass eine Email in einem Spamordner landet und übersehen wird. Wenn du den Besitzer eines Caches nicht per Mail erreichst, kannst du stattdessen auch ein [[Das Onlinelog#Hinweis|Hinweislog]] bei dem Cache hinterlassen. Vielleicht hast du hier mehr Glück, und die [[Benachrichtigungen|Benachrichtigungsmail]] über deinen Logeintrag kommt an.&lt;br /&gt;
&lt;br /&gt;
== Persönliche Daten löschen  ==&lt;br /&gt;
Mit Ausnahme der Emailadresse kannst du alle persönlichen Daten selbst aus deinem Profil löschen. Wenn du auch die Emailadresse löschen lassen möchtest, geht dies nur durch eine [[Account deaktivieren|Deaktivierung]] deines Benutzerkontos. Dies lässt sich nicht mehr rückgäng machen, und alle deine eigenen Caches werden dadurch [[Cachestatus|gesperrt]]! Daher überlege dir, ob du stattdessen nicht lieber bei einem der vielen kostenlosen Email-Anbieter eine neue Adresse anlegen möchtest, die du im Profil angeben kannst.&lt;br /&gt;
&lt;br /&gt;
Mehr zum Umgang mit persönlichen Daten findest du in der [http://www.opencaching.de/articles.php?page=dsb Datenschutzbelehrung].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Suchformular&amp;diff=5379</id>
		<title>Suchformular</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Suchformular&amp;diff=5379"/>
		<updated>2013-10-09T16:10:15Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;[http://www.opencaching.de/search.php Opencaching-Suchformular]&#039;&#039;&#039; ermöglicht eine gezielte Auswahl von Caches in einer bestimmten Region und/oder mit bestimmten Eigenschaften. Es handelt sich um die leistungsfähigste Suchfunktion aller [[Geocaching-Plattformen]]. Häufig benötigte Suchen können im [[Benutzerprofil]] gespeichert und wieder abgerufen werden. Die Suchergebnisse können auch als [[GPX-Datei]] heruntergeladen werden, um sie auf ein [[GPS-Gerät]], auf ein [[Smartphone-Apps für Opencaching.de|Smartphone]] oder in ein [[Geocaching-Software#GPX-Dateien einlesen / Cachebeschreibungen verwalten|Cacheverwaltungsprogramm]] zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Um eine neue Suche zu starten, klicke in der Menüleiste von Opencaching.de auf &#039;&#039;&#039;Caches&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Eine Alternative zum Suchformular ist die Suche via [[Cachekarte]].&lt;br /&gt;
&lt;br /&gt;
== Suchkriterien ==&lt;br /&gt;
[[Datei:Suchformular01.png|hochkant=1.5|miniatur|rechts|Auswahl von Cacheeigenschaften]]&lt;br /&gt;
Im oberen Teil des Suchformulars findest du verschiedene miteinander kombinierbare Einstellungen, zum Beispiel die gewünschte [[Behältergrößen|Cachegröße]] und [[Cachearten|-art]], die [[Geländewertung|Gelände-]] und [[Schwierigkeitswertung]] etc. Beachte dabei bitte, dass die Schwierigkeit oft schwer abschätzbar ist; viele [[Owner]] geben hier zu niedrige Werte an.&lt;br /&gt;
&lt;br /&gt;
Im unteren Teil musst du dich dann für &#039;&#039;ein&#039;&#039; weiteres Suchkriterium entscheiden, beispielsweise die Suche in einem bestimmten Umkreis oder nach einem bestimmten Cachenamen. Es wird jeweils nur nach dem Kriterium gesucht, bei dem du auf den &#039;&#039;&#039;Suchen&#039;&#039;&#039;-Button klickst. Wahlweise kannst du auch nach sämtlichen passenden Caches suchen.&lt;br /&gt;
&lt;br /&gt;
Groß- und Kleinschreibung der Suchbegriffe spielt keine Rolle. In den Namens- und Textfeldern können auch Teile angegeben werden, z.B. „Wald“ bei der &#039;&#039;Suche nach Text&#039;&#039;, um alle Caches zu finden bei denen „Wald“ im Beschreibungstext vorkommt.&lt;br /&gt;
&lt;br /&gt;
=== [[Attribute]] ===&lt;br /&gt;
Bei der Attributauswahl kannst du jeweils mit mehreren Klicks zwischen drei Zuständen wechseln: Egal (grau), vorhanden (blau) oder nicht vorhanden (grau/durchgestrichen). Da die Attribute in den [[Listing]]s teilweise fehlen, wirst du hiermit aber immer nur einen Teil der passenden Caches finden – bzw. bei Negativauswahl (grau/durchgestrichen) auch eine Menge unpassende Caches. &lt;br /&gt;
&lt;br /&gt;
Nur bei Opencaching gelistete Caches findest du mit dem [[OConly]]-Attribut, wobei auch hier bei ungefähr jedem zweiten Cache das Attribut fehlt. Eine annähernd vollständige Übersicht der OConlys bietet die von Hand gewartete [[OConly#Wie finde ich OConlys|OConly-Karte]].&lt;br /&gt;
&lt;br /&gt;
Standardmäßig werden im Suchformular nur die am häufigsten benutzten Attribute angezeigt. Durch einen Klick auf &#039;&#039;&#039;Alle anzeigen&#039;&#039;&#039; erscheinen auch alle weiteren.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe sortieren nach ... ==&lt;br /&gt;
&lt;br /&gt;
Hier kannst du wählen, in welcher Reihenfolge die Suchergebnisse erscheinen sollen:&lt;br /&gt;
* alphabetisch nach Cachename&lt;br /&gt;
* nach Entfernung ...&lt;br /&gt;
** zu Ortszentrum bzw. den angegebenen Koordinaten bei einer Suche nach Ort, Postleitzahl oder Umkreis&lt;br /&gt;
** zu den Heimatkoordinaten in deinem [[Benutzerprofil#Einstellungen|Benutzerprofil]] für alle übrigen Suchen; wenn nicht eingeloggt oder konfiguriert, wird nach Name sortiert&lt;br /&gt;
* nach Zeitpunkt des letzten Logs oder deines letzten Logs.&lt;br /&gt;
&lt;br /&gt;
== Suchergebnisse ==&lt;br /&gt;
[[Datei:Suchformular02.png|hochkant=1.6|thumb|rechts|Beispiel für Suchergebnisse]]&lt;br /&gt;
Nach dem Absenden der Suche wird von links nach rechts angezeigt&lt;br /&gt;
* Entfernung zu deinen Heimatkoordinaten, falls bekannt&lt;br /&gt;
* [[Cachearten|Cacheart]], [[Schwierigkeitswertung|Schwierigkeits-]] und [[Geländewertung]]&lt;br /&gt;
* Cachename und Kurzbeschreibung&lt;br /&gt;
* [[OConly]]-Attribut&lt;br /&gt;
* Datum des letzten Logs, und Überblick der letzten fünf Logs&lt;br /&gt;
&lt;br /&gt;
=== Herunterladen ===&lt;br /&gt;
Mit den beiden Buttons oben rechts kannst du entweder die gerade angezeigten Caches (max. 20) oder ein Paket mit bis zu 500 Caches herunterladen, z.&amp;amp;nbsp;B. um sie auf ein [[GPS-Gerät]] zu übertragen oder in ein [[Geocaching-Software|Cacheverwaltungsprogramm]] einzulesen. Es stehen verschiedene gängige Dateiformate zur Verfügung, insbesondere das häufig verwendete [[Abkürzungen#GPX|GPX-Format]].&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[Wie erhalte ich eine GPX-Datei?#Umgehen der Größenbegrenzung|Umgehen der Größenbegrenzung]]&lt;br /&gt;
&lt;br /&gt;
=== Kriterien ändern ===&lt;br /&gt;
Wenn das Ergebnis nicht passt oder du die Suche weiter einschränken möchtest, kannst du mit dem Link &#039;&#039;Optionen bearbeiten&#039;&#039; oben rechts zurück ins Suchformular wechseln und die Einstellung ändern.&lt;br /&gt;
&lt;br /&gt;
== Gespeicherte Suchen ==&lt;br /&gt;
[[Datei:Suche speichern.png|miniatur]]&lt;br /&gt;
=== Neue Suche speichern ===&lt;br /&gt;
Wenn du häufig nach den gleichen Kriterien suchst, lohnt es sich die Suche zu speichern. Dazu klickst du rechts über den Suchergebnissen auf &#039;&#039;&#039;Optionen speichern&#039;&#039;&#039; und gibst anschließend einen Namen für die Suche ein. Nach einem Klick auf &#039;&#039;&#039;Speichern&#039;&#039;&#039; erscheint sie dann bei den [http://www.opencaching.de/query.php gespeicherten Suchen] in deinem [[Benutzerprofil]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:Suchformular09.png|miniatur|hochkant=2]]&lt;br /&gt;
=== Gespeicherte Suche abrufen ===&lt;br /&gt;
Gehe auf dein Profil und klicke im linken Menü auf [http://www.opencaching.de/query.php Gespeicherte Suchen]. Klicke auf den Namen der gewünschten Suche, um sie auszuführen – es erscheinen die [[#Suchergebnisse|Suchergebnisse]].&lt;br /&gt;
&lt;br /&gt;
=== Gespeichete Suche ändern ===&lt;br /&gt;
Hierzu rufst du deine gespeicherten Suchen im Profil auf und klickst bei der gewünschten Suche auf &#039;&#039;&#039;Bearbeiten&#039;&#039;&#039; – es erscheint das Suchformular mit den entsprechenden Einstellungen. Um die geänderten Optionen wieder zu speichern, musst du die Suche zunächst ausführen und dann rechts über der Suchergebnisliste auf &#039;&#039;&#039;Optionen speichern&#039;&#039;&#039; klicken. Dort wählst den Namen der Suche aus und klickst darunter auf &#039;&#039;&#039;Speichern&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Suchergebnisse als [[GPX-Datei]] herunterladen ===&lt;br /&gt;
Hierfür gibt es zwei Möglichkeiten:&lt;br /&gt;
* Von Hand, indem du im Profil die gespeicherten Suchen aufrufst und dort unter „Download“ auf &#039;&#039;&#039;GPX&#039;&#039;&#039; klickst;&lt;br /&gt;
* automatisch mit dem Tool [[OCDL]].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Wyszukiwanie w bazie skrzynek OpenCaching PL]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Cachekarte&amp;diff=5378</id>
		<title>Cachekarte</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Cachekarte&amp;diff=5378"/>
		<updated>2013-10-09T15:57:07Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Cache anzeigen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Cachekarte groß.png|300px|thumb|rechts|Kartenausschnitt Heidelberg/Mannheim]]&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;[http://www.opencaching.de/map2.php Cachekarte]&#039;&#039;&#039; ist neben dem [[Suchformular]] die zweite Möglichkeit, um auf Opencaching nach interessanten Caches zu stöbern. In der Grundeinstellung zeigt sie alle aktiven Caches (Status: [[Cachestatus#Kann_gesucht_werden|kann gesucht werden]]) in Kartenausschnitt an, ausgenommen [[Caches ignorieren|ignorierte Caches]].&lt;br /&gt;
&lt;br /&gt;
== Zielgebiet wählen ==&lt;br /&gt;
Der Kartenausschnitt kann durch Klicken und Ziehen mit der Maus oder mit den Pfeiltasten verschoben werden. Rein- und rausgezoomt wird mit dem Mausrad, durch Ziehen am Zoomregler links oben oder mit den Plus/Minus-Tasten. Durch Drücken der Umschalttaste und „Aufziehen“ mit der Maus kann man auch direkt einen bestimmten Ausschnitt vergrößern.&lt;br /&gt;
&lt;br /&gt;
In der Suchleiste über der Karte kannst du einen Ortsnamen eingeben, einen Teil der gesuchten Cachenamen oder – falls bekannt – einen [[Wegpunkte#Wegpunkt eines Listings|OC-Wegpunkt]]. Es erscheint eine Auswahl der passenden Orte und Caches und von dort geht es weiter zum entsprechenden Kartenausschnitt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Cachekarte Cacheauswahl.png|miniatur|200px]]&lt;br /&gt;
&lt;br /&gt;
== Cache anzeigen ==&lt;br /&gt;
Mit einem Klick auf ein Cachesymbol öffnet sich ein kleines Fenster mit den wichtigsten Informationen zum Cache. Von dort gelangst du per Klick auf den Cachenamen weiter zur [[Cachebeschreibung (Listing)|Cachebeschreibung]].&lt;br /&gt;
&lt;br /&gt;
Falls der Cache [[Wegpunkte#Interne, zusätzliche Wegpunkte|zusätzliche Wegpunkte]] besitzt, erscheinen diese gleichzeitig mit den Cacheinfo-Fenster auf der Karte. Sie bleiben auch nach Schließen des Fensters sichtbar, solange kein anderer Cache ausgewählt wird. Auch die Wegpunkte sind anklickbar, um zusätzliche Informationen zu erhalten.&lt;br /&gt;
&lt;br /&gt;
Außerdem wird – falls vorhanden – das [[Bilder#Kartenvorschaubilder| Kartenvorschaubild]] des Caches angezeigt. Für jeden deiner Caches kannst du ein Vorschaubild festlegen, das in der Kartenansicht erscheint.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Cachekarte Attributwahl aufgeklappt.png|miniatur|links|300px]]&lt;br /&gt;
&lt;br /&gt;
== Cacheauswahl einschränken ==&lt;br /&gt;
Nach einem Klick auf den Pfeil oben rechts öffnet sich ein Fenster mit Filtereinstellungen. Hier kannst du wählen, welche [[Cachearten]], [[Behältergrößen]], [[Schwierigkeitswertung|Schwierigkeitsgrade]] etc. dich interessieren. Es erscheinen dann nur noch solche Caches auf der Karte, die dieser Auswahl entsprechen. Auch nach Namensbestandteilen wie z.&amp;amp;nbsp;B. „Nacht“ oder „Wald“ kann gefiltert werden.&lt;br /&gt;
&lt;br /&gt;
Tipp: Wenn du das Fenster schließt – dazu genügt ein Klick irgendwo auf die Karte – wird die Auswahl sofort übernommen. Ansonsten dauert es zwei Sekunden, um zu verhindern dass beim Ändern mehrerer Einstellungen jedesmal Daten von Opencaching.de abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Die Filtereinstellungen bleiben so lange aktiv, bis du sie mit dem „Zurücksetzen“-Knopf verwirfst oder den Webbrowser beendest. Danach erscheinen wieder alle aktiven Caches auf der Karte. Wahlweise kannst du die Einstellungen auch mit dem „Speichern“-Knopf dauerhaft speichern. Dann erscheint nach dem Neustart des Browsers oder nach dem Zurücksetzen wieder die von dir gespeicherte Cacheauswahl.&lt;br /&gt;
&lt;br /&gt;
== Kartenfunktionen ==&lt;br /&gt;
Neben dem Suchfeld oberhalb der Karte sind zusätzlich folgende Funktionen abrufbar:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-Haus.png]]&lt;br /&gt;
|springt zu deinen Heimatkoordinaten. Dies funktioniert nur, wenn du [[Login|angemeldet]] bist und die Koordinaten in deinem [[Benutzerprofil]] hinterlegt hast.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-GPX.png]]&lt;br /&gt;
|lädt die Daten der Caches im aktuellen Kartenausschnitt als Zip-gepackte [[GPX-Datei]] herunter. Dazu dürfen maximal 500 Caches sichtbar sein; verkleinere ggf. den Kartenausschnitt.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-Stern.png]]&lt;br /&gt;
|erzeugt einen Link auf den aktuellen Kartenausschnitt, den du z.&amp;amp;nbsp;B. kopieren und bei den Lesezeichen / Favoriten deines Webbrowsers speichern oder per Email verschicken kannst. Bei Firefox und dem Internet Explorer lässt er sich auch direkt in die Lesezeichen übernehmen.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-Einstellungen.png]]&lt;br /&gt;
|öffnet ein Fenster, indem du verschiedene Karteneigenschaften festlegen kannst:&lt;br /&gt;
* ob der Menüpunkt „Karte“ die Vollbild- oder die kleinere Karte (s.u.) aufruft;&lt;br /&gt;
* ob in der rechten unteren Ecke der Karte eine kleine Übersichtskarte erscheinen soll;&lt;br /&gt;
* wieviele Caches maximal auf der Karte angezeigt werden; wenn du 0 angibst, sind es maximal 2500 auf der großen und 1600 auf der kleinen Karte, bzw. max. 200 bei Verwendung des Microsoft Internet Explorers;&lt;br /&gt;
* ob auf der Karte die üblichen Opencaching.de-Symbole erscheinen sollen, oder die kleineren und moderneren von [http://www.opencaching.pl Opencaching Polen];&lt;br /&gt;
* ob und in welcher Größe [[Bilder#Kartenvorschaubilder|Vorschaubilder]] auf der Karte dargestellt werden sollen.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-verkleinern.png]]&lt;br /&gt;
|wechselt von der Vollbildkarte zu einer kleineren Darstellung. Dort ist die übliche Menüleiste sichtbar, die Filtereinstellungen befinden sich unterhalb der Karte, und links gibt es eine Direktauswahl der Bundeshauptstädte.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-vergrößern.png]]&lt;br /&gt;
|wechselt von der kleinen Karte zurück zur großen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kartenarten ==&lt;br /&gt;
In der rechten oberen Ecke der Karte wird das Kartenmaterial gewählt:&lt;br /&gt;
&lt;br /&gt;
;OSM&lt;br /&gt;
Die Karte des freien [[OpenStreetMap]]-Projekts. Diese ist oft aktueller als die „kommerziellen“ Karten und enthält zusätzliche Details.&lt;br /&gt;
&lt;br /&gt;
;MapQuest (MQ)&lt;br /&gt;
Eine andere Aufbereitung des OpenStreetMap-Materials. Die Karte ist übersichtlicher, durch dezentere Farbwahl und weil sie Details erst bei größerer Zoomstufe anzeigt oder teilweise ganz darauf verzichtet.&lt;br /&gt;
&lt;br /&gt;
;OpenCycleMap (OCM)&lt;br /&gt;
Eine Fahrradkarte, die ebenfalls auf OpenStreetMap-Karte basiert und auf ähnliche Weise in einem offenen und freien Projekt zusammengetragen wird.&lt;br /&gt;
&lt;br /&gt;
;Karte&lt;br /&gt;
Die Google-Straßenkarte, wahlweise umschaltbar auf Geländeansicht. Die Google-Karten sind sehr genau und enthalten zusätzliche Informationen über interessante Orte.&lt;br /&gt;
&lt;br /&gt;
;Satellit&lt;br /&gt;
Die Google-Satellitenkarte, mit zu- oder abschaltbaren Straßen und Beschriftungen.&lt;br /&gt;
&lt;br /&gt;
== Wegpunkte eines einzelnen Caches anzeigen ==&lt;br /&gt;
Manchmal sind die zusätzlichen Wegpunkte eines Caches auf einer vollen Karte schwer auszumachen. Hier hilft folgender Trick:&lt;br /&gt;
&lt;br /&gt;
* Rufe das Cachelisting auf,&lt;br /&gt;
* klicke rechts unter der kleinen Karte auf „Opencaching.de“,&lt;br /&gt;
* öffne die Filtereinstellungen der Karte und schalte alle Caches mit einem Klick auf das Kästchen neben „Cacheart“ ab, &lt;br /&gt;
* schließe die Filtereinstellungen und drücke den Neuladen-Knopf deines Browsers.&lt;br /&gt;
&lt;br /&gt;
Nun sind nur noch die Wegpunkte des einen Caches sichtbar.&lt;br /&gt;
&lt;br /&gt;
== Vollbildkarte verlassen ==&lt;br /&gt;
Es gibt mehrere Wege, um von der Vollbildkarte „zurück“ ins Menüsystem oder auf andere Seiten zu gelangen:&lt;br /&gt;
&lt;br /&gt;
* Mit einem Klick auf das Opencaching-Logo oben links gelangst du auf die Startseite,&lt;br /&gt;
* mit einem Klick auf den Benutzername oben links – falls du angemeldet bist – auf deine Profilseite,&lt;br /&gt;
* mit einem Klick auf einen Cachename, nachdem du dessen Info-Fenster geöffnet hast, in die Cachebeschreibung, oder&lt;br /&gt;
* mit einem Klick auf das Verkleinern-Symbol in die kleine Kartenansicht, wo alles Weitere über das Menü wählbar ist.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Cachekarte&amp;diff=5377</id>
		<title>Cachekarte</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Cachekarte&amp;diff=5377"/>
		<updated>2013-10-09T15:55:17Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Zielgebiet wählen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Cachekarte groß.png|300px|thumb|rechts|Kartenausschnitt Heidelberg/Mannheim]]&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;[http://www.opencaching.de/map2.php Cachekarte]&#039;&#039;&#039; ist neben dem [[Suchformular]] die zweite Möglichkeit, um auf Opencaching nach interessanten Caches zu stöbern. In der Grundeinstellung zeigt sie alle aktiven Caches (Status: [[Cachestatus#Kann_gesucht_werden|kann gesucht werden]]) in Kartenausschnitt an, ausgenommen [[Caches ignorieren|ignorierte Caches]].&lt;br /&gt;
&lt;br /&gt;
== Zielgebiet wählen ==&lt;br /&gt;
Der Kartenausschnitt kann durch Klicken und Ziehen mit der Maus oder mit den Pfeiltasten verschoben werden. Rein- und rausgezoomt wird mit dem Mausrad, durch Ziehen am Zoomregler links oben oder mit den Plus/Minus-Tasten. Durch Drücken der Umschalttaste und „Aufziehen“ mit der Maus kann man auch direkt einen bestimmten Ausschnitt vergrößern.&lt;br /&gt;
&lt;br /&gt;
In der Suchleiste über der Karte kannst du einen Ortsnamen eingeben, einen Teil der gesuchten Cachenamen oder – falls bekannt – einen [[Wegpunkte#Wegpunkt eines Listings|OC-Wegpunkt]]. Es erscheint eine Auswahl der passenden Orte und Caches und von dort geht es weiter zum entsprechenden Kartenausschnitt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Cachekarte Cacheauswahl.png|miniatur|200px]]&lt;br /&gt;
&lt;br /&gt;
== Cache anzeigen ==&lt;br /&gt;
Mit einem Klick auf ein Cachesymbol öffnet sich ein kleines Fenster mit den wichtigsten Informationen zum Cache. Von dort gelangst du per Klick auf den Cachename weiter zur [[Cachebeschreibung (Listing)|Cachebeschreibung]].&lt;br /&gt;
&lt;br /&gt;
Falls der Cache [[Wegpunkte#Interne, zusätzliche Wegpunkte|zusätzliche Wegpunkte]] besitzt, erscheinen diese gleichzeitig mit den Cacheinfo-Fenster auf der Karte. Sie bleiben auch nach Schließen des Fensters sichtbar, solange kein anderer Cache ausgewählt wird. Auch die Wegpunkte sind anklickbar, um zusätzliche Informationen zu erhalten.&lt;br /&gt;
&lt;br /&gt;
Außerdem wird – falls vorhanden – das [[Bilder#Kartenvorschaubilder| Kartenvorschaubild]] des Caches angezeigt. Für jeden deiner Caches kannst du ein Vorschaubild festlegen, dass in der Kartenansicht erscheint.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Cachekarte Attributwahl aufgeklappt.png|miniatur|links|300px]]&lt;br /&gt;
== Cacheauswahl einschränken ==&lt;br /&gt;
Nach einem Klick auf den Pfeil oben rechts öffnet sich ein Fenster mit Filtereinstellungen. Hier kannst du wählen, welche [[Cachearten]], [[Behältergrößen]], [[Schwierigkeitswertung|Schwierigkeitsgrade]] etc. dich interessieren. Es erscheinen dann nur noch solche Caches auf der Karte, die dieser Auswahl entsprechen. Auch nach Namensbestandteilen wie z.&amp;amp;nbsp;B. „Nacht“ oder „Wald“ kann gefiltert werden.&lt;br /&gt;
&lt;br /&gt;
Tipp: Wenn du das Fenster schließt – dazu genügt ein Klick irgendwo auf die Karte – wird die Auswahl sofort übernommen. Ansonsten dauert es zwei Sekunden, um zu verhindern dass beim Ändern mehrerer Einstellungen jedesmal Daten von Opencaching.de abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Die Filtereinstellungen bleiben so lange aktiv, bis du sie mit dem „Zurücksetzen“-Knopf verwirfst oder den Webbrowser beendest. Danach erscheinen wieder alle aktiven Caches auf der Karte. Wahlweise kannst du die Einstellungen auch mit dem „Speichern“-Knopf dauerhaft speichern. Dann erscheint nach dem Neustart des Browsers oder nach dem Zurücksetzen wieder die von dir gespeicherte Cacheauswahl.&lt;br /&gt;
&lt;br /&gt;
== Kartenfunktionen ==&lt;br /&gt;
Neben dem Suchfeld oberhalb der Karte sind zusätzlich folgende Funktionen abrufbar:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-Haus.png]]&lt;br /&gt;
|springt zu deinen Heimatkoordinaten. Dies funktioniert nur, wenn du [[Login|angemeldet]] bist und die Koordinaten in deinem [[Benutzerprofil]] hinterlegt hast.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-GPX.png]]&lt;br /&gt;
|lädt die Daten der Caches im aktuellen Kartenausschnitt als Zip-gepackte [[GPX-Datei]] herunter. Dazu dürfen maximal 500 Caches sichtbar sein; verkleinere ggf. den Kartenausschnitt.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-Stern.png]]&lt;br /&gt;
|erzeugt einen Link auf den aktuellen Kartenausschnitt, den du z.&amp;amp;nbsp;B. kopieren und bei den Lesezeichen / Favoriten deines Webbrowsers speichern oder per Email verschicken kannst. Bei Firefox und dem Internet Explorer lässt er sich auch direkt in die Lesezeichen übernehmen.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-Einstellungen.png]]&lt;br /&gt;
|öffnet ein Fenster, indem du verschiedene Karteneigenschaften festlegen kannst:&lt;br /&gt;
* ob der Menüpunkt „Karte“ die Vollbild- oder die kleinere Karte (s.u.) aufruft;&lt;br /&gt;
* ob in der rechten unteren Ecke der Karte eine kleine Übersichtskarte erscheinen soll;&lt;br /&gt;
* wieviele Caches maximal auf der Karte angezeigt werden; wenn du 0 angibst, sind es maximal 2500 auf der großen und 1600 auf der kleinen Karte, bzw. max. 200 bei Verwendung des Microsoft Internet Explorers;&lt;br /&gt;
* ob auf der Karte die üblichen Opencaching.de-Symbole erscheinen sollen, oder die kleineren und moderneren von [http://www.opencaching.pl Opencaching Polen];&lt;br /&gt;
* ob und in welcher Größe [[Bilder#Kartenvorschaubilder|Vorschaubilder]] auf der Karte dargestellt werden sollen.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-verkleinern.png]]&lt;br /&gt;
|wechselt von der Vollbildkarte zu einer kleineren Darstellung. Dort ist die übliche Menüleiste sichtbar, die Filtereinstellungen befinden sich unterhalb der Karte, und links gibt es eine Direktauswahl der Bundeshauptstädte.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Cachekarte-vergrößern.png]]&lt;br /&gt;
|wechselt von der kleinen Karte zurück zur großen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kartenarten ==&lt;br /&gt;
In der rechten oberen Ecke der Karte wird das Kartenmaterial gewählt:&lt;br /&gt;
&lt;br /&gt;
;OSM&lt;br /&gt;
Die Karte des freien [[OpenStreetMap]]-Projekts. Diese ist oft aktueller als die „kommerziellen“ Karten und enthält zusätzliche Details.&lt;br /&gt;
&lt;br /&gt;
;MapQuest (MQ)&lt;br /&gt;
Eine andere Aufbereitung des OpenStreetMap-Materials. Die Karte ist übersichtlicher, durch dezentere Farbwahl und weil sie Details erst bei größerer Zoomstufe anzeigt oder teilweise ganz darauf verzichtet.&lt;br /&gt;
&lt;br /&gt;
;OpenCycleMap (OCM)&lt;br /&gt;
Eine Fahrradkarte, die ebenfalls auf OpenStreetMap-Karte basiert und auf ähnliche Weise in einem offenen und freien Projekt zusammengetragen wird.&lt;br /&gt;
&lt;br /&gt;
;Karte&lt;br /&gt;
Die Google-Straßenkarte, wahlweise umschaltbar auf Geländeansicht. Die Google-Karten sind sehr genau und enthalten zusätzliche Informationen über interessante Orte.&lt;br /&gt;
&lt;br /&gt;
;Satellit&lt;br /&gt;
Die Google-Satellitenkarte, mit zu- oder abschaltbaren Straßen und Beschriftungen.&lt;br /&gt;
&lt;br /&gt;
== Wegpunkte eines einzelnen Caches anzeigen ==&lt;br /&gt;
Manchmal sind die zusätzlichen Wegpunkte eines Caches auf einer vollen Karte schwer auszumachen. Hier hilft folgender Trick:&lt;br /&gt;
&lt;br /&gt;
* Rufe das Cachelisting auf,&lt;br /&gt;
* klicke rechts unter der kleinen Karte auf „Opencaching.de“,&lt;br /&gt;
* öffne die Filtereinstellungen der Karte und schalte alle Caches mit einem Klick auf das Kästchen neben „Cacheart“ ab, &lt;br /&gt;
* schließe die Filtereinstellungen und drücke den Neuladen-Knopf deines Browsers.&lt;br /&gt;
&lt;br /&gt;
Nun sind nur noch die Wegpunkte des einen Caches sichtbar.&lt;br /&gt;
&lt;br /&gt;
== Vollbildkarte verlassen ==&lt;br /&gt;
Es gibt mehrere Wege, um von der Vollbildkarte „zurück“ ins Menüsystem oder auf andere Seiten zu gelangen:&lt;br /&gt;
&lt;br /&gt;
* Mit einem Klick auf das Opencaching-Logo oben links gelangst du auf die Startseite,&lt;br /&gt;
* mit einem Klick auf den Benutzername oben links – falls du angemeldet bist – auf deine Profilseite,&lt;br /&gt;
* mit einem Klick auf einen Cachename, nachdem du dessen Info-Fenster geöffnet hast, in die Cachebeschreibung, oder&lt;br /&gt;
* mit einem Klick auf das Verkleinern-Symbol in die kleine Kartenansicht, wo alles Weitere über das Menü wählbar ist.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Cachestatus&amp;diff=5376</id>
		<title>Cachestatus</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Cachestatus&amp;diff=5376"/>
		<updated>2013-10-09T15:45:48Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Gesperrt/ Sperrlog */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Datei:Statusänderungen per Log.png|thumb|300px|right|Ändern des Cachestatus]]&lt;br /&gt;
Der Status eines Geocaches gibt hauptsächlich an, ob der Cache momentan gesucht/gefunden werden kann, oder ob Probleme vorliegen, die ein Suchen verhindern.&lt;br /&gt;
&lt;br /&gt;
Seit der [http://www.opencaching.de/articles.php?page=changelog#v3.0.8 Opencaching-Version 8] sind Statusänderungen an ein [[Das Onlinelog|Log]] gebunden, wie es auf anderen Plattformen schon länger üblich war. Dadurch verpassen Beobachter zum einen keine einzige Statusänderung mehr, zum anderen ist auch für Nicht-Beobachter klar erkennbar, wann ein Cache suchbar oder nicht suchbar war. Ein Geocache bei Opencaching.de kann folgende Stati annehmen, die vom [[Besitzer]] oder einem Mitglied des [[Support|Support-Teams]] gesetzt werden können:&lt;br /&gt;
&lt;br /&gt;
==== Noch nicht veröffentlicht ====&lt;br /&gt;
Diesen Status erhält ein neues Opencaching-[[Listing]], wenn du zunächst „[[Erstellen einer Cachebeschreibung/ Listing#Veröffentlichung|Noch nicht veröffentlichen]]“ gewählt hast. Es bleibt für andere Benutzer unsichtbar, bis du es zur Veröffentlichung freigibst.&lt;br /&gt;
&lt;br /&gt;
Damit man keinen Cache versehentlich veröffentlicht, geschieht die Freigabe nicht per Log, sondern man bearbeitet das Cachlisting und ändert zwei Einträge:&lt;br /&gt;
* Status = „kann gesucht werden“&lt;br /&gt;
* Veröffentlichung = „sofort veröffentlichen“&lt;br /&gt;
&lt;br /&gt;
==== Kann gesucht werden/ Wartungslog ====&lt;br /&gt;
[[Datei:Wartungslog 2.png|thumb|300px|right|Wartungslog im Logzähler]]&lt;br /&gt;
[[Datei:Wartungslog.png|thumb|300px|left|Wartungslog schreiben]]&lt;br /&gt;
Das ist der Normalzustand eines Caches. Die Bedeutung ist klar: Mit dem Geocache ist alles in Ordnung; die Dose kann gefunden werden.&lt;br /&gt;
&lt;br /&gt;
Beim Loggen hat dieser Status noch eine weitere Bedeutung: Er fungiert auch als „Wartungsinfo“ für andere User. Wird im Zustand „Kann gesucht werden“ erneut ein „Kann-gesucht-werden“-Log geschrieben, so signalisiert dies den Suchenden, dass der Cache kontrolliert wurde und dass alles OK ist. Dieser Logtyp kann vom Owner beliebig oft verwendet werden um immer wieder deutlich zu machen, dass der Cache gewartet worden ist und wirklich vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
Das Wartungslog wird ebenfalls benötigt, um ein nicht verfügbares Listing wieder frei zu geben. Es reicht &#039;&#039;&#039;nicht&#039;&#039;&#039;, aus den Statuslog „Nicht verfügbar“ zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Wurde ein Wartungslog geschrieben, erschein dieses in der Logstatistik oben rechts im Listig. Wird ein Listing durch ein „Kann-gesucht-werden“-Log wieder freigegeben, wird dies oben ebenfalls als Wartung aufgeführt.&lt;br /&gt;
&lt;br /&gt;
Das neue Loglabel seht ihr hier:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wartungslog 3.png|Logtyp Wartung durchgeführt]]&lt;br /&gt;
&lt;br /&gt;
==== Momentan nicht verfügbar/ Deaktivierungslog====&lt;br /&gt;
Dieser Zustand wird vom [[Besitzer]] gesetzt, wenn mit dem Cache etwas nicht in Ordnung ist und die Dose nicht gefunden werden kann. Die Gründe dafür können vielfältig sein: die Dose ist verschwunden, das [[Logbuch]] ist nass und muss erst getauscht werden, der Ort des Cacheverstecks kann wegen einer Baustelle momentan nicht betreten werden, usw.&lt;br /&gt;
Der Owner ist anschließend dafür verantwortlich, den Geocache wieder suchbar zu machen (z.B. durch Auslegen einer neuen Dose) und den Status durch ein „Kann-gesucht-werden“-Log wieder auf &#039;&#039;&#039;kann gesucht werden&#039;&#039;&#039; zu setzen. Ist ein Instandsetzen des Caches nicht möglich, sollte der Cache per Archivierungslog &#039;&#039;&#039;archiviert&#039;&#039;&#039; werden.&lt;br /&gt;
&lt;br /&gt;
Auch dieser Status kann mehrfach geloggt werden. Dies kann Sinn machen, wenn z.B. ein Cache wegen Waldarbeiten nicht verfügbar ist. So kann dann deutlich gemacht werden: ich habe die Lage im Auge, aber die Arbeiten dauern noch an.&lt;br /&gt;
&lt;br /&gt;
Und so sieht dann das fertige Log aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Nicht verfügbar Log.png|Logtyp Nicht verfügbar]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein rotes Banner mit dem Hinweis „Dieser Geocache ist nicht verfügbar...“ ganz oben im Listing.&lt;br /&gt;
&lt;br /&gt;
==== Archiviert/ Archivierungslog ====&lt;br /&gt;
Dieser Status zeigt an, dass der Cache definitiv nicht mehr gefunden werden kann. Archivierte Caches werden standardmäßig nicht auf der [[Cachekarte]] von Opencaching.de angezeigt. Archiviert ein [[Besitzer]] seinen Geocache, ist es wichtig, dass die ausgelegten Dosen (Finaldose und möglicherweise Dosen von [[Stage|Stationen]]) wieder eingesammelt werden. Ansonsten entsteht [[Geomüll]].&lt;br /&gt;
&lt;br /&gt;
Zur Archivierung wird dann das Archivierungslog geschrieben. Es sieht im Listing so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Archivierung.png|Archivierungslog]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein rotes Banner mit dem Hinweis „Dieser Geocache ist archiviert....“ ganz oben im Listing.&lt;br /&gt;
&lt;br /&gt;
==== Gesperrt/ Sperrlog ====&lt;br /&gt;
Ein &#039;&#039;&#039;gesperrter&#039;&#039;&#039; Cache entspricht einem &#039;&#039;&#039;archivierten&#039;&#039;&#039;, mit dem Unterschied, dass im Listing keine Logeinträge mehr möglich sind. Außerdem ist der Cache nicht mehr auf der [[Cachekarte|Karte]] anzeigbar und kann nicht per [[API-Clients#OKAPI-Clients|OKAPI]] abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Das Sperren eines Listings kann z.B. dann sinnvoll sein, wenn es in den [[Das Onlinelog|Onlinelogs]] zu beleidigenden Diskussionen kommt oder der Owner bei einem Lost Place o.ä. ausdrücklich nicht mehr möchte, dass sich noch Sucher an den Ort begeben und vor allem den Cache hinterher noch loggen. Besonders hier sollte der Logeintrag ausführlich ausfallen um die Gründe dessen deutlich zu machen.&lt;br /&gt;
Der fertige Logeintrag sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Sperrung.png|Sperrungslog]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein Schloßsymbol mit dem Hinweis „Dieser Geocache ist gesperrt....“ ganz oben im Listing.&lt;br /&gt;
/* Schloßsymbol war: rotes Banner */&lt;br /&gt;
&lt;br /&gt;
==== Gesperrt + Versteckt ====&lt;br /&gt;
Das Listing eines gesperrten und versteckten Caches kann nur vom Owner und vom [[Support|Support-Team]] eingesehen werden. Der Cache ist daher auch nicht auf der [[Cachekarte]] sichtbar. Dieser Status kann nur durch das Support-Team gesetzt und wieder zurückgenommen werden.&lt;br /&gt;
Der Status wird nur in Ausnahmefällen verwendet, beispielsweise wenn durch das Listing rechtliche Verstöße wie strafrechtlich relevante Texte/Textpassagen oder [[Urheberrecht|Urheberrechtsverstöße]] vorliegen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
[[Kategorie:Listings und Logs]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Status skrzynki]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Cachestatus&amp;diff=5375</id>
		<title>Cachestatus</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Cachestatus&amp;diff=5375"/>
		<updated>2013-10-09T15:44:11Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Gesperrt/ Sperrlog */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Datei:Statusänderungen per Log.png|thumb|300px|right|Ändern des Cachestatus]]&lt;br /&gt;
Der Status eines Geocaches gibt hauptsächlich an, ob der Cache momentan gesucht/gefunden werden kann, oder ob Probleme vorliegen, die ein Suchen verhindern.&lt;br /&gt;
&lt;br /&gt;
Seit der [http://www.opencaching.de/articles.php?page=changelog#v3.0.8 Opencaching-Version 8] sind Statusänderungen an ein [[Das Onlinelog|Log]] gebunden, wie es auf anderen Plattformen schon länger üblich war. Dadurch verpassen Beobachter zum einen keine einzige Statusänderung mehr, zum anderen ist auch für Nicht-Beobachter klar erkennbar, wann ein Cache suchbar oder nicht suchbar war. Ein Geocache bei Opencaching.de kann folgende Stati annehmen, die vom [[Besitzer]] oder einem Mitglied des [[Support|Support-Teams]] gesetzt werden können:&lt;br /&gt;
&lt;br /&gt;
==== Noch nicht veröffentlicht ====&lt;br /&gt;
Diesen Status erhält ein neues Opencaching-[[Listing]], wenn du zunächst „[[Erstellen einer Cachebeschreibung/ Listing#Veröffentlichung|Noch nicht veröffentlichen]]“ gewählt hast. Es bleibt für andere Benutzer unsichtbar, bis du es zur Veröffentlichung freigibst.&lt;br /&gt;
&lt;br /&gt;
Damit man keinen Cache versehentlich veröffentlicht, geschieht die Freigabe nicht per Log, sondern man bearbeitet das Cachlisting und ändert zwei Einträge:&lt;br /&gt;
* Status = „kann gesucht werden“&lt;br /&gt;
* Veröffentlichung = „sofort veröffentlichen“&lt;br /&gt;
&lt;br /&gt;
==== Kann gesucht werden/ Wartungslog ====&lt;br /&gt;
[[Datei:Wartungslog 2.png|thumb|300px|right|Wartungslog im Logzähler]]&lt;br /&gt;
[[Datei:Wartungslog.png|thumb|300px|left|Wartungslog schreiben]]&lt;br /&gt;
Das ist der Normalzustand eines Caches. Die Bedeutung ist klar: Mit dem Geocache ist alles in Ordnung; die Dose kann gefunden werden.&lt;br /&gt;
&lt;br /&gt;
Beim Loggen hat dieser Status noch eine weitere Bedeutung: Er fungiert auch als „Wartungsinfo“ für andere User. Wird im Zustand „Kann gesucht werden“ erneut ein „Kann-gesucht-werden“-Log geschrieben, so signalisiert dies den Suchenden, dass der Cache kontrolliert wurde und dass alles OK ist. Dieser Logtyp kann vom Owner beliebig oft verwendet werden um immer wieder deutlich zu machen, dass der Cache gewartet worden ist und wirklich vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
Das Wartungslog wird ebenfalls benötigt, um ein nicht verfügbares Listing wieder frei zu geben. Es reicht &#039;&#039;&#039;nicht&#039;&#039;&#039;, aus den Statuslog „Nicht verfügbar“ zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Wurde ein Wartungslog geschrieben, erschein dieses in der Logstatistik oben rechts im Listig. Wird ein Listing durch ein „Kann-gesucht-werden“-Log wieder freigegeben, wird dies oben ebenfalls als Wartung aufgeführt.&lt;br /&gt;
&lt;br /&gt;
Das neue Loglabel seht ihr hier:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wartungslog 3.png|Logtyp Wartung durchgeführt]]&lt;br /&gt;
&lt;br /&gt;
==== Momentan nicht verfügbar/ Deaktivierungslog====&lt;br /&gt;
Dieser Zustand wird vom [[Besitzer]] gesetzt, wenn mit dem Cache etwas nicht in Ordnung ist und die Dose nicht gefunden werden kann. Die Gründe dafür können vielfältig sein: die Dose ist verschwunden, das [[Logbuch]] ist nass und muss erst getauscht werden, der Ort des Cacheverstecks kann wegen einer Baustelle momentan nicht betreten werden, usw.&lt;br /&gt;
Der Owner ist anschließend dafür verantwortlich, den Geocache wieder suchbar zu machen (z.B. durch Auslegen einer neuen Dose) und den Status durch ein „Kann-gesucht-werden“-Log wieder auf &#039;&#039;&#039;kann gesucht werden&#039;&#039;&#039; zu setzen. Ist ein Instandsetzen des Caches nicht möglich, sollte der Cache per Archivierungslog &#039;&#039;&#039;archiviert&#039;&#039;&#039; werden.&lt;br /&gt;
&lt;br /&gt;
Auch dieser Status kann mehrfach geloggt werden. Dies kann Sinn machen, wenn z.B. ein Cache wegen Waldarbeiten nicht verfügbar ist. So kann dann deutlich gemacht werden: ich habe die Lage im Auge, aber die Arbeiten dauern noch an.&lt;br /&gt;
&lt;br /&gt;
Und so sieht dann das fertige Log aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Nicht verfügbar Log.png|Logtyp Nicht verfügbar]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein rotes Banner mit dem Hinweis „Dieser Geocache ist nicht verfügbar...“ ganz oben im Listing.&lt;br /&gt;
&lt;br /&gt;
==== Archiviert/ Archivierungslog ====&lt;br /&gt;
Dieser Status zeigt an, dass der Cache definitiv nicht mehr gefunden werden kann. Archivierte Caches werden standardmäßig nicht auf der [[Cachekarte]] von Opencaching.de angezeigt. Archiviert ein [[Besitzer]] seinen Geocache, ist es wichtig, dass die ausgelegten Dosen (Finaldose und möglicherweise Dosen von [[Stage|Stationen]]) wieder eingesammelt werden. Ansonsten entsteht [[Geomüll]].&lt;br /&gt;
&lt;br /&gt;
Zur Archivierung wird dann das Archivierungslog geschrieben. Es sieht im Listing so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Archivierung.png|Archivierungslog]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein rotes Banner mit dem Hinweis „Dieser Geocache ist archiviert....“ ganz oben im Listing.&lt;br /&gt;
&lt;br /&gt;
==== Gesperrt/ Sperrlog ====&lt;br /&gt;
Ein &#039;&#039;&#039;gesperrter&#039;&#039;&#039; Cache entspricht einem &#039;&#039;&#039;archivierten&#039;&#039;&#039;, mit dem Unterschied, dass im Listing keine Logeinträge mehr möglich sind. Außerdem ist der Cache nicht mehr auf der [[Cachekarte|Karte]] anzeigbar und kann nicht per [[API-Clients#OKAPI-Clients|OKAPI]] abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Das Sperren eines Listings kann z.B. dann sinnvoll sein, wenn es in den [[Das Onlinelog|Onlinelogs]] zu beleidigenden Diskussionen kommt oder der Owner bei einem Lost Place o.ä. ausdrücklich nicht mehr möchte, dass sich noch Sucher an den Ort begeben und vor allem den Cache hinterher noch loggen. Besonders hier sollte der Logeintrag ausführlich ausfallen um die Gründe dessen deutlich zu machen.&lt;br /&gt;
Der fertige Logeintrag sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Sperrung.png|Sperrungslog]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein Schloßsymbol mit dem Hinweis „Dieser Geocache ist gesperrt....“ ganz oben im Listing.&lt;br /&gt;
/* rotes Banner */&lt;br /&gt;
&lt;br /&gt;
==== Gesperrt + Versteckt ====&lt;br /&gt;
Das Listing eines gesperrten und versteckten Caches kann nur vom Owner und vom [[Support|Support-Team]] eingesehen werden. Der Cache ist daher auch nicht auf der [[Cachekarte]] sichtbar. Dieser Status kann nur durch das Support-Team gesetzt und wieder zurückgenommen werden.&lt;br /&gt;
Der Status wird nur in Ausnahmefällen verwendet, beispielsweise wenn durch das Listing rechtliche Verstöße wie strafrechtlich relevante Texte/Textpassagen oder [[Urheberrecht|Urheberrechtsverstöße]] vorliegen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
[[Kategorie:Listings und Logs]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Status skrzynki]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Cachestatus&amp;diff=5374</id>
		<title>Cachestatus</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Cachestatus&amp;diff=5374"/>
		<updated>2013-10-09T15:42:28Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Gesperrt/ Sperrlog */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Datei:Statusänderungen per Log.png|thumb|300px|right|Ändern des Cachestatus]]&lt;br /&gt;
Der Status eines Geocaches gibt hauptsächlich an, ob der Cache momentan gesucht/gefunden werden kann, oder ob Probleme vorliegen, die ein Suchen verhindern.&lt;br /&gt;
&lt;br /&gt;
Seit der [http://www.opencaching.de/articles.php?page=changelog#v3.0.8 Opencaching-Version 8] sind Statusänderungen an ein [[Das Onlinelog|Log]] gebunden, wie es auf anderen Plattformen schon länger üblich war. Dadurch verpassen Beobachter zum einen keine einzige Statusänderung mehr, zum anderen ist auch für Nicht-Beobachter klar erkennbar, wann ein Cache suchbar oder nicht suchbar war. Ein Geocache bei Opencaching.de kann folgende Stati annehmen, die vom [[Besitzer]] oder einem Mitglied des [[Support|Support-Teams]] gesetzt werden können:&lt;br /&gt;
&lt;br /&gt;
==== Noch nicht veröffentlicht ====&lt;br /&gt;
Diesen Status erhält ein neues Opencaching-[[Listing]], wenn du zunächst „[[Erstellen einer Cachebeschreibung/ Listing#Veröffentlichung|Noch nicht veröffentlichen]]“ gewählt hast. Es bleibt für andere Benutzer unsichtbar, bis du es zur Veröffentlichung freigibst.&lt;br /&gt;
&lt;br /&gt;
Damit man keinen Cache versehentlich veröffentlicht, geschieht die Freigabe nicht per Log, sondern man bearbeitet das Cachlisting und ändert zwei Einträge:&lt;br /&gt;
* Status = „kann gesucht werden“&lt;br /&gt;
* Veröffentlichung = „sofort veröffentlichen“&lt;br /&gt;
&lt;br /&gt;
==== Kann gesucht werden/ Wartungslog ====&lt;br /&gt;
[[Datei:Wartungslog 2.png|thumb|300px|right|Wartungslog im Logzähler]]&lt;br /&gt;
[[Datei:Wartungslog.png|thumb|300px|left|Wartungslog schreiben]]&lt;br /&gt;
Das ist der Normalzustand eines Caches. Die Bedeutung ist klar: Mit dem Geocache ist alles in Ordnung; die Dose kann gefunden werden.&lt;br /&gt;
&lt;br /&gt;
Beim Loggen hat dieser Status noch eine weitere Bedeutung: Er fungiert auch als „Wartungsinfo“ für andere User. Wird im Zustand „Kann gesucht werden“ erneut ein „Kann-gesucht-werden“-Log geschrieben, so signalisiert dies den Suchenden, dass der Cache kontrolliert wurde und dass alles OK ist. Dieser Logtyp kann vom Owner beliebig oft verwendet werden um immer wieder deutlich zu machen, dass der Cache gewartet worden ist und wirklich vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
Das Wartungslog wird ebenfalls benötigt, um ein nicht verfügbares Listing wieder frei zu geben. Es reicht &#039;&#039;&#039;nicht&#039;&#039;&#039;, aus den Statuslog „Nicht verfügbar“ zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Wurde ein Wartungslog geschrieben, erschein dieses in der Logstatistik oben rechts im Listig. Wird ein Listing durch ein „Kann-gesucht-werden“-Log wieder freigegeben, wird dies oben ebenfalls als Wartung aufgeführt.&lt;br /&gt;
&lt;br /&gt;
Das neue Loglabel seht ihr hier:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wartungslog 3.png|Logtyp Wartung durchgeführt]]&lt;br /&gt;
&lt;br /&gt;
==== Momentan nicht verfügbar/ Deaktivierungslog====&lt;br /&gt;
Dieser Zustand wird vom [[Besitzer]] gesetzt, wenn mit dem Cache etwas nicht in Ordnung ist und die Dose nicht gefunden werden kann. Die Gründe dafür können vielfältig sein: die Dose ist verschwunden, das [[Logbuch]] ist nass und muss erst getauscht werden, der Ort des Cacheverstecks kann wegen einer Baustelle momentan nicht betreten werden, usw.&lt;br /&gt;
Der Owner ist anschließend dafür verantwortlich, den Geocache wieder suchbar zu machen (z.B. durch Auslegen einer neuen Dose) und den Status durch ein „Kann-gesucht-werden“-Log wieder auf &#039;&#039;&#039;kann gesucht werden&#039;&#039;&#039; zu setzen. Ist ein Instandsetzen des Caches nicht möglich, sollte der Cache per Archivierungslog &#039;&#039;&#039;archiviert&#039;&#039;&#039; werden.&lt;br /&gt;
&lt;br /&gt;
Auch dieser Status kann mehrfach geloggt werden. Dies kann Sinn machen, wenn z.B. ein Cache wegen Waldarbeiten nicht verfügbar ist. So kann dann deutlich gemacht werden: ich habe die Lage im Auge, aber die Arbeiten dauern noch an.&lt;br /&gt;
&lt;br /&gt;
Und so sieht dann das fertige Log aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Nicht verfügbar Log.png|Logtyp Nicht verfügbar]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein rotes Banner mit dem Hinweis „Dieser Geocache ist nicht verfügbar...“ ganz oben im Listing.&lt;br /&gt;
&lt;br /&gt;
==== Archiviert/ Archivierungslog ====&lt;br /&gt;
Dieser Status zeigt an, dass der Cache definitiv nicht mehr gefunden werden kann. Archivierte Caches werden standardmäßig nicht auf der [[Cachekarte]] von Opencaching.de angezeigt. Archiviert ein [[Besitzer]] seinen Geocache, ist es wichtig, dass die ausgelegten Dosen (Finaldose und möglicherweise Dosen von [[Stage|Stationen]]) wieder eingesammelt werden. Ansonsten entsteht [[Geomüll]].&lt;br /&gt;
&lt;br /&gt;
Zur Archivierung wird dann das Archivierungslog geschrieben. Es sieht im Listing so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Archivierung.png|Archivierungslog]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein rotes Banner mit dem Hinweis „Dieser Geocache ist archiviert....“ ganz oben im Listing.&lt;br /&gt;
&lt;br /&gt;
==== Gesperrt/ Sperrlog ====&lt;br /&gt;
Ein &#039;&#039;&#039;gesperrter&#039;&#039;&#039; Cache entspricht einem &#039;&#039;&#039;archivierten&#039;&#039;&#039;, mit dem Unterschied, dass im Listing keine Logeinträge mehr möglich sind. Außerdem ist der Cache nicht mehr auf der [[Cachekarte|Karte]] anzeigbar und kann nicht per [[API-Clients#OKAPI-Clients|OKAPI]] abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Das Sperren eines Listings kann z.B. dann sinnvoll sein, wenn es in den [[Das Onlinelog|Onlinelogs]] zu beleidigenden Diskussionen kommt oder der Owner bei einem Lost Place o.ä. ausdrücklich nicht mehr möchte, dass sich noch Sucher an den Ort begeben und vor allem den Cache hinterher noch loggen. Besonders hier sollte der Logeintrag ausführlich ausfallen um die Gründe dessen deutlich zu machen.&lt;br /&gt;
Der fertige Logeintrag sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Sperrung.png|Sperrungslog]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein rotes Banner mit dem Hinweis „Dieser Geocache ist gesperrt....“ ganz oben im Listing.&lt;br /&gt;
&lt;br /&gt;
==== Gesperrt + Versteckt ====&lt;br /&gt;
Das Listing eines gesperrten und versteckten Caches kann nur vom Owner und vom [[Support|Support-Team]] eingesehen werden. Der Cache ist daher auch nicht auf der [[Cachekarte]] sichtbar. Dieser Status kann nur durch das Support-Team gesetzt und wieder zurückgenommen werden.&lt;br /&gt;
Der Status wird nur in Ausnahmefällen verwendet, beispielsweise wenn durch das Listing rechtliche Verstöße wie strafrechtlich relevante Texte/Textpassagen oder [[Urheberrecht|Urheberrechtsverstöße]] vorliegen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
[[Kategorie:Listings und Logs]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Status skrzynki]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Cachestatus&amp;diff=5373</id>
		<title>Cachestatus</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Cachestatus&amp;diff=5373"/>
		<updated>2013-10-09T15:40:20Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Archiviert/ Archivierungslog */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Datei:Statusänderungen per Log.png|thumb|300px|right|Ändern des Cachestatus]]&lt;br /&gt;
Der Status eines Geocaches gibt hauptsächlich an, ob der Cache momentan gesucht/gefunden werden kann, oder ob Probleme vorliegen, die ein Suchen verhindern.&lt;br /&gt;
&lt;br /&gt;
Seit der [http://www.opencaching.de/articles.php?page=changelog#v3.0.8 Opencaching-Version 8] sind Statusänderungen an ein [[Das Onlinelog|Log]] gebunden, wie es auf anderen Plattformen schon länger üblich war. Dadurch verpassen Beobachter zum einen keine einzige Statusänderung mehr, zum anderen ist auch für Nicht-Beobachter klar erkennbar, wann ein Cache suchbar oder nicht suchbar war. Ein Geocache bei Opencaching.de kann folgende Stati annehmen, die vom [[Besitzer]] oder einem Mitglied des [[Support|Support-Teams]] gesetzt werden können:&lt;br /&gt;
&lt;br /&gt;
==== Noch nicht veröffentlicht ====&lt;br /&gt;
Diesen Status erhält ein neues Opencaching-[[Listing]], wenn du zunächst „[[Erstellen einer Cachebeschreibung/ Listing#Veröffentlichung|Noch nicht veröffentlichen]]“ gewählt hast. Es bleibt für andere Benutzer unsichtbar, bis du es zur Veröffentlichung freigibst.&lt;br /&gt;
&lt;br /&gt;
Damit man keinen Cache versehentlich veröffentlicht, geschieht die Freigabe nicht per Log, sondern man bearbeitet das Cachlisting und ändert zwei Einträge:&lt;br /&gt;
* Status = „kann gesucht werden“&lt;br /&gt;
* Veröffentlichung = „sofort veröffentlichen“&lt;br /&gt;
&lt;br /&gt;
==== Kann gesucht werden/ Wartungslog ====&lt;br /&gt;
[[Datei:Wartungslog 2.png|thumb|300px|right|Wartungslog im Logzähler]]&lt;br /&gt;
[[Datei:Wartungslog.png|thumb|300px|left|Wartungslog schreiben]]&lt;br /&gt;
Das ist der Normalzustand eines Caches. Die Bedeutung ist klar: Mit dem Geocache ist alles in Ordnung; die Dose kann gefunden werden.&lt;br /&gt;
&lt;br /&gt;
Beim Loggen hat dieser Status noch eine weitere Bedeutung: Er fungiert auch als „Wartungsinfo“ für andere User. Wird im Zustand „Kann gesucht werden“ erneut ein „Kann-gesucht-werden“-Log geschrieben, so signalisiert dies den Suchenden, dass der Cache kontrolliert wurde und dass alles OK ist. Dieser Logtyp kann vom Owner beliebig oft verwendet werden um immer wieder deutlich zu machen, dass der Cache gewartet worden ist und wirklich vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
Das Wartungslog wird ebenfalls benötigt, um ein nicht verfügbares Listing wieder frei zu geben. Es reicht &#039;&#039;&#039;nicht&#039;&#039;&#039;, aus den Statuslog „Nicht verfügbar“ zu entfernen.&lt;br /&gt;
&lt;br /&gt;
Wurde ein Wartungslog geschrieben, erschein dieses in der Logstatistik oben rechts im Listig. Wird ein Listing durch ein „Kann-gesucht-werden“-Log wieder freigegeben, wird dies oben ebenfalls als Wartung aufgeführt.&lt;br /&gt;
&lt;br /&gt;
Das neue Loglabel seht ihr hier:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wartungslog 3.png|Logtyp Wartung durchgeführt]]&lt;br /&gt;
&lt;br /&gt;
==== Momentan nicht verfügbar/ Deaktivierungslog====&lt;br /&gt;
Dieser Zustand wird vom [[Besitzer]] gesetzt, wenn mit dem Cache etwas nicht in Ordnung ist und die Dose nicht gefunden werden kann. Die Gründe dafür können vielfältig sein: die Dose ist verschwunden, das [[Logbuch]] ist nass und muss erst getauscht werden, der Ort des Cacheverstecks kann wegen einer Baustelle momentan nicht betreten werden, usw.&lt;br /&gt;
Der Owner ist anschließend dafür verantwortlich, den Geocache wieder suchbar zu machen (z.B. durch Auslegen einer neuen Dose) und den Status durch ein „Kann-gesucht-werden“-Log wieder auf &#039;&#039;&#039;kann gesucht werden&#039;&#039;&#039; zu setzen. Ist ein Instandsetzen des Caches nicht möglich, sollte der Cache per Archivierungslog &#039;&#039;&#039;archiviert&#039;&#039;&#039; werden.&lt;br /&gt;
&lt;br /&gt;
Auch dieser Status kann mehrfach geloggt werden. Dies kann Sinn machen, wenn z.B. ein Cache wegen Waldarbeiten nicht verfügbar ist. So kann dann deutlich gemacht werden: ich habe die Lage im Auge, aber die Arbeiten dauern noch an.&lt;br /&gt;
&lt;br /&gt;
Und so sieht dann das fertige Log aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Nicht verfügbar Log.png|Logtyp Nicht verfügbar]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein rotes Banner mit dem Hinweis „Dieser Geocache ist nicht verfügbar...“ ganz oben im Listing.&lt;br /&gt;
&lt;br /&gt;
==== Archiviert/ Archivierungslog ====&lt;br /&gt;
Dieser Status zeigt an, dass der Cache definitiv nicht mehr gefunden werden kann. Archivierte Caches werden standardmäßig nicht auf der [[Cachekarte]] von Opencaching.de angezeigt. Archiviert ein [[Besitzer]] seinen Geocache, ist es wichtig, dass die ausgelegten Dosen (Finaldose und möglicherweise Dosen von [[Stage|Stationen]]) wieder eingesammelt werden. Ansonsten entsteht [[Geomüll]].&lt;br /&gt;
&lt;br /&gt;
Zur Archivierung wird dann das Archivierungslog geschrieben. Es sieht im Listing so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Archivierung.png|Archivierungslog]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein rotes Banner mit dem Hinweis „Dieser Geocache ist archiviert....“ ganz oben im Listing.&lt;br /&gt;
&lt;br /&gt;
==== Gesperrt/ Sperrlog ====&lt;br /&gt;
Ein &#039;&#039;&#039;gesperrter&#039;&#039;&#039; Cache entspricht einem &#039;&#039;&#039;archivierten&#039;&#039;&#039;, mit dem Unterschied, dass im Listing keine Logeinträge mehr möglich sind. Außerdem ist der Cache nicht mehr auf der [[Cachekarte|Karte]] anzeigbar und kann nicht per [[API-Clients#OKAPI-Clients|OKAPI]] abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Das Sperren eines Listings kann z.B. dann sinnvoll sein, wenn es in den [[Das Onlinelog|Onlinelogs]] zu beleidigenden Diskussionen kommt oder der Owner bei einem Lost Place o.ä. ausdrücklich nicht mehr möchte, dass sich noch Sucher an den Ort begeben und vor allem dem Cache hinterher noch loggen. Besonders hier sollte der Log ausführlich ausfallen um die Gründe dessen deutlich zu machen.&lt;br /&gt;
Der fertige Log sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Sperrung.png|Sperrungslog]]&lt;br /&gt;
&lt;br /&gt;
Außerdem erscheint ein rotes Banner mit dem Hinweis „Dieser Geocache ist gesperrt....“ ganz oben im Listing.&lt;br /&gt;
&lt;br /&gt;
==== Gesperrt + Versteckt ====&lt;br /&gt;
Das Listing eines gesperrten und versteckten Caches kann nur vom Owner und vom [[Support|Support-Team]] eingesehen werden. Der Cache ist daher auch nicht auf der [[Cachekarte]] sichtbar. Dieser Status kann nur durch das Support-Team gesetzt und wieder zurückgenommen werden.&lt;br /&gt;
Der Status wird nur in Ausnahmefällen verwendet, beispielsweise wenn durch das Listing rechtliche Verstöße wie strafrechtlich relevante Texte/Textpassagen oder [[Urheberrecht|Urheberrechtsverstöße]] vorliegen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
[[Kategorie:Listings und Logs]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Status skrzynki]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Spoiler&amp;diff=5372</id>
		<title>Spoiler</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Spoiler&amp;diff=5372"/>
		<updated>2013-10-09T15:28:55Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Spoiler in Cachebeschreibungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Spoiler.jpg|200px|thumb|right|Ein Spoilerbild von Opencaching.de]]&lt;br /&gt;
== Spoiler in Cachebeschreibungen ==&lt;br /&gt;
Spoiler sind Bilder, welche die Suche nach einem Cache erleichtern und [[Naturschutz|Natur und Umwelt schonen]].&lt;br /&gt;
&lt;br /&gt;
Viele Eigentümer von Geocaches verwenden Spoiler, um den Suchradius (beispielsweise bei schlechtem Empfang) am Cache einzugrenzen. Dadurch haben die Cacher, die diesen Cache suchen, die Möglichkeit, sich schneller zu orientieren und dadurch die Natur zu schonen.&lt;br /&gt;
&lt;br /&gt;
Spoilerbilder zeigen oft nicht direkt auf den Cache, sondern auf einen markanten Punkt in der Nähe, um nicht das eigentliche Versteck zu offenbaren, sondern nur als Unterstützung bei der Suche behilflich zu sein. Eine andere Variante ist, das Versteck aus einer ungewohnten Perspektive etc. zu fotografieren.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Spoiler Vorschau.png|200px|thumb|links|Das Vorschausymbol auf Opencaching.de]]&lt;br /&gt;
Die Spoilerbilder auf Opencaching.de werden in der Regel nicht als Vorschau angezeigt, sondern erst nach einem Klick auf das Platzhalter-Bild. Dazu müssen sie beim [[Erstellen einer Cachebeschreibung/ Listing#Bilder hinzufügen|Hochladen]] als Spoiler gekennzeichnet worden sein.&lt;br /&gt;
&lt;br /&gt;
== Spoiler in Logs ==&lt;br /&gt;
In [[Das Onlinelog|Logeinträgen]] sollten normalerweise keine Spoilerbilder hochgeladen werden. Wenn es im Ausnahmefall doch einmal sinnvoll erscheint, z.B. um Probleme mit dem Versteck zu dokumentieren, aktiviere beim Hochladen bitte das Spoiler-Kästchen. Die Bilder erhalten dann den Zusatz „(Spoiler)“ und erscheinen nicht in öffentlichen [[Logbild-Galerien]].&lt;br /&gt;
&lt;br /&gt;
Falls dir ungekennzeichnete Spoiler in Logs auffallen, informiere bitte den Logger per Email, damit er die Markierung nachtragen kann.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Listings und Logs]]&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Attribute&amp;diff=5371</id>
		<title>Attribute</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Attribute&amp;diff=5371"/>
		<updated>2013-10-09T15:24:43Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mit &#039;&#039;&#039;Attributen&#039;&#039;&#039; lassen sich genauere Angaben zum [[Listing|Cachelisting]] machen, welche auch als Suchkriterium verwendet werden können. Bei vielen Attributen handelt es sich um Erfahrungswerte (z.&amp;amp;nbsp;B. die Zeckengefahr).&lt;br /&gt;
&lt;br /&gt;
Als Finder eines Geocaches kann man den Eigentümer darauf hinweisen, dass dem Cache entsprechende Attribute zugeordnet werden können. Bei den Angaben für eigene Caches solltest du von gewöhnlichen, trockenen Witterungsverhältnissen ausgehen.&lt;br /&gt;
&lt;br /&gt;
== Vorteile ==&lt;br /&gt;
Attribute vereinfachen die Online-Suche nach Geocaches. Im [[Suchformular]] und bei der [[Cachekarte|Kartendarstellung]] kann man auswählen, welche „Eigenschaften“ die gesuchten Caches haben sollen.&lt;br /&gt;
&lt;br /&gt;
Mit Attributen kann man sich auch optimal auf die bevorstehende Cachesuche vorbereiten. Welche Gefahren erwarten mich? Wie ist der Weg? Wie sieht es mit der Infrastruktur aus? Ist am Cache bzw. auf dem Weg etwas Besonderes? Benötige ich besondere Hilfsmittel? Welche Einschränkungen sind zu beachten? Ist dieser Cache für alle Personengruppen (Kinder, Erwachsene etc.) geeignet?&lt;br /&gt;
&lt;br /&gt;
Durch die Vergabe der passenden Attribute wird das Geocachen gleich noch interessanter.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Attribute Cache erstellen.png|200px|thumb|rechts|Aktivierte Attribute im Vergleich zu deaktivierten Attributen auf der Bearbeitungsseite des jeweiligen Caches]]&lt;br /&gt;
&lt;br /&gt;
== Attribute eingeben ==&lt;br /&gt;
[[Datei:Attribute Cache.png|200px|thumb|rechts|Ansicht der Attribute auf der Seite der Cachebeschreibung]]&lt;br /&gt;
Beim Erstellen eines eigenen Caches werden Attribute auf der Beschreibungsseite eingegeben, indem man die grau hinterlegten Felder der einzelnen Kategorien anklickt. Dadurch färben sie sich (je nach Attributgruppe) und werden nach dem Speichern der Beschreibung auf der Cacheseite angezeigt.&lt;br /&gt;
&lt;br /&gt;
Setze alle zutreffenden Attribute, die du finden kannst, und achte dabei auf die Erläuterungen zu den Attributen!&lt;br /&gt;
&lt;br /&gt;
== OC-Only ==&lt;br /&gt;
Auf Opencaching.de ist das OC-Only-Symbol besonders wichtig. Es kennzeichnet einen Cache, welcher nur auf OC gelistet ist und auch nur dort gefunden werden kann und sollte grundsätzlich bei allen Caches dieser Art gesetzt sein. Weitere Informationen hierzu findest du im Artikel [[OConly]].&lt;br /&gt;
&lt;br /&gt;
Falls du dich nachträglich für ein [[Mehrfachlisting]] entscheiden solltest denke bitte daran, das OC-Only-Attribut wieder zu entfernen.&lt;br /&gt;
&lt;br /&gt;
== Erklärung aller Symbole ==&lt;br /&gt;
Eine Erklärung aller Symbole findest du [http://www.opencaching.de/articles.php?page=cacheinfo hier].&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
[[Kategorie:Listings und Logs]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Atrybuty skrzynki]]&lt;br /&gt;
[[en:New cache attributes]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Wegpunkte&amp;diff=5370</id>
		<title>Wegpunkte</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Wegpunkte&amp;diff=5370"/>
		<updated>2013-10-09T15:19:23Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Externe Wegpunkte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein Geocaching-&#039;&#039;&#039;Wegpunkt&#039;&#039;&#039; kann sein &lt;br /&gt;
&lt;br /&gt;
# eine gespeicherte Koordinate, die irgendwie benannt oder beschrieben ist, oder&lt;br /&gt;
# ein Kürzel, das ein [[Listing|Cachelisting]] bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Diese beiden Wegpunkttypen sind im Folgenden mit (1) bzw. (2) gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
== Wegpunkte bei Opencaching.de ==&lt;br /&gt;
&lt;br /&gt;
=== Wegpunkt eines Listings ===&lt;br /&gt;
[[Datei:Wegpunktsuche.png|thumb|Suche nach Wegpunkt]]&lt;br /&gt;
&lt;br /&gt;
Wenn man ein [[Erstellen einer Cachebeschreibung/ Listing|neues Cachelisting anlegt]], erhält es automatisch einen neuen Wegpunkt (2). Die ersten beiden Buchstaben des Wegpunkts bezeichnen die [[Geocaching-Plattformen|Geocaching-Plattform]], in diesem Fall &#039;&#039;OC&#039;&#039;; danach folgt eine [http://de.wikipedia.org/wiki/Hexadezimalsystem hexadezimale] Zahl. Beispiel: {{Cachelink|OCCA2E}}&lt;br /&gt;
&lt;br /&gt;
Mit diesem Wegpunkt kann man auf Opencaching.de nach dem Cache suchen. Durch Voranstellen von www.opencaching.de kann man auch direkt darauf zugreifen, z.B. http://www.opencaching.de/OCE793.&lt;br /&gt;
&lt;br /&gt;
=== Externe Wegpunkte ===&lt;br /&gt;
Damit hat der Besitzer eines Cachelistings die Möglichkeit, darauf hinzuweisen dass der Cache auch auf einer anderen Plattform gelistet ist. &amp;lt;br&amp;gt;&lt;br /&gt;
Bei Opencaching ist es ausdrücklich erwünscht diese Wegpunkte (2) einzutragen. Dafür kann der Owner beim Cache bearbeiten einfach unter „Wegpunkte (optional)&amp;quot; den entsprechenden Wegpunkt eintragen.&amp;lt;br&amp;gt;&lt;br /&gt;
* Geocaching.com Wegpunkt: GC + Zahlen-/Buchstabenfolge z.B. GC2YQP6&amp;lt;br&amp;gt;&lt;br /&gt;
* Navicache.com Wegpunkt: NC + hexadezimale Zahl &lt;br /&gt;
&lt;br /&gt;
[[Datei:Wegpunkt extern.png|rechts|Externer Wegpunkt]]&lt;br /&gt;
Im Listing erscheint bei eingetragenem Wegpunkt „Auch gelistet auf: geocaching.com“, und man kann durch Klicken auf &#039;&#039;geocaching.com&#039;&#039; direkt das Zweitlisting erreichen.&lt;br /&gt;
&lt;br /&gt;
=== Interne, zusätzliche Wegpunkte ===&lt;br /&gt;
[[Datei:Zusätzliche Wegpunkte.png|thumb|zusätzliche Wegpunkte von {{Cachelink|OCCA2E}}|right]]&lt;br /&gt;
Damit kann der Owner einen Parkplatz, einzelne Stationen oder bestimmte Stellen markieren. Dazu bearbeitet er das Listing und fügt jeweils einen Wegpunkt (1) hinzu, der einen der folgenden Typen haben kann:&lt;br /&gt;
* Parkplatz – siehe unten&lt;br /&gt;
* Station oder Referenzpunkt – die Station eines [[Multicache]]s, oder ein anderer Punkt der für das Lösen/Finden des Caches von Bedeutung ist&lt;br /&gt;
* Pfad – Beginn des Weges oder ein Punkt auf dem Weg zum Cache&lt;br /&gt;
* Ziel – Das Zielgebiet, in dem der Cache versteckt ist.&lt;br /&gt;
* interessanter Ort – Sehenswürdigkeit, Aussichtspunkt etc.&lt;br /&gt;
&lt;br /&gt;
Neben den Koordinaten kann eine zusätzliche Beschreibung angeben werden, um den Wegpunkt zu erklären.&lt;br /&gt;
&lt;br /&gt;
Diese Wegpunkte werden in der Cachebeschreibung angezeigt, und auf der [[Cachekarte|Karte]], sobald man den Cache dort anklickt. Außerdem sind sie in heruntergeladenen [[Wie erhalte ich eine GPX-Datei?|GPX-Dateien]] enthalten und werden an das [[Cachedaten an GPS-Gerät senden|GPS-Gerät gesendet]].&lt;br /&gt;
&lt;br /&gt;
==== Parkplatz, ein besonders wichtiger Wegpunkt ====&lt;br /&gt;
Die Angabe eines Parkplatzes kann sehr hilfreich sein. Oft kommen Cacher von weiter her, um Caches zu suchen. An den Cachekoordinaten selbst kann nicht immer geparkt werden, und manchmal ist es etwas schwierig, einen Parkplatz in angemessener Nähe zu finden. Manchmal gibt es auch von einem vom Besitzer des Caches vorgesehenen Parkplatz aus einen besonders günstigen Weg zum Cache, den ein Fremder selbst kaum finden kann. Um sinnloses Querfeldeinlaufen oder lange Parkplatzsuche mit entsprechendem Spritverbrauch zu vermeiden, ist die Angabe eines Parkplatzes bei solchen Caches eine sinnvolle Zeitinvestition.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Listings und Logs]]&lt;br /&gt;
[[Kategorie:Opencaching]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Waypoint]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Gel%C3%A4ndewertung&amp;diff=5369</id>
		<title>Geländewertung</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Gel%C3%A4ndewertung&amp;diff=5369"/>
		<updated>2013-10-09T15:11:50Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Gelände 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Gelände- oder Terrainwertung eines Caches gibt an, mit welchem Gelände zu rechnen ist. Auf der jeweiligen Cacheseite wird diese Wertung mit grünen Balken dargestellt. Die Spanne reicht dabei von 1 bis 5. Als Kurzbezeichnung dient auch der Buchstabe „T“ mit angehängter Ziffer, z.B. &#039;&#039;T2&#039;&#039; für Geländewertung 2.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Angaben dienen als Anhaltspunkte. Sie beziehen sich jeweils auf trockene, gewöhnliche Witterungsverhältnisse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Siehe auch:&#039;&#039; [[Schwierigkeitswertung]]&lt;br /&gt;
&lt;br /&gt;
== Gelände 1 ==&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-10.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Man befindet sich in flachem Gelände mit asphaltierten oder glatt gepflasterten Wegen. Es ist deutlich weniger als ein Kilometer zu gehen. Diese Caches sind häufig auch für Behinderte und Rollstuhlfahrer geeignet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Datei:OCE6DA Park.jpg|thumb|{{Cachelink|OCE6DA}}: Gelände 2]]&lt;br /&gt;
&lt;br /&gt;
== Gelände 2 ==&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-20.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Es gibt befestigte Wege und kaum Höhenunterschiede, Rasenflächen etc. Es sind nur wenige Kilometer zu gehen. Die Caches sind auch für kleine Kinder geeignet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gelände 3 ==&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-30.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Es geht durch unwegsames oder steiles Gelände oder leichtes Unterholz. Im Rahmen einer kleinen Wanderung wird diese Geländewertung gewählt. Das Gelände ist für kleine Kinder nicht geeignet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gelände 4 ==&lt;br /&gt;
[[Datei:6e2b99f6-1173-410e-bd82-c7327b60e9e9.jpg|thumb|hochkant=0.8|Gelände 4–5]]&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-40.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Das Gelände ist weglos, sehr steil, so dass man seine Hände einsetzen muss, oder hat sehr dichtes Unterholz. Jedoch kann es sich dabei auch um eine lange Wanderung handeln.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gelände 5 ==&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-50.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Besondere Ausrüstung oder Erfahrung sind Pflicht für diesen Schwierigkeitsgrad. Es muss beispielsweise geklettert oder getaucht werden etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Zwischenwerte ==&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-25.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Es sind auch Zwischenwerte möglich (1,5 / 2,5 / 3,5 / 4,5). Diese werden dann gewählt, wenn die Geländewertung zwischen zwei der oben beschriebenen Stufen liegt.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Schwierigkeiten]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Stopień trudności terenu]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
	<entry>
		<id>https://wiki.opencaching.de/index.php?title=Gel%C3%A4ndewertung&amp;diff=5368</id>
		<title>Geländewertung</title>
		<link rel="alternate" type="text/html" href="https://wiki.opencaching.de/index.php?title=Gel%C3%A4ndewertung&amp;diff=5368"/>
		<updated>2013-10-09T15:10:54Z</updated>

		<summary type="html">&lt;p&gt;Dl6hbo: /* Gelände 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Gelände- oder Terrainwertung eines Caches gibt an, mit welchem Gelände zu rechnen ist. Auf der jeweiligen Cacheseite wird diese Wertung mit grünen Balken dargestellt. Die Spanne reicht dabei von 1 bis 5. Als Kurzbezeichnung dient auch der Buchstabe „T“ mit angehängter Ziffer, z.B. &#039;&#039;T2&#039;&#039; für Geländewertung 2.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Angaben dienen als Anhaltspunkte. Sie beziehen sich jeweils auf trockene, gewöhnliche Witterungsverhältnisse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Siehe auch:&#039;&#039; [[Schwierigkeitswertung]]&lt;br /&gt;
&lt;br /&gt;
== Gelände 1 ==&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-10.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Man befindet sich in flachem Gelände mit asphaltierten oder glatt gepflasterten Wegen. Es ist deutlich weniger als ein Kilometer zu gehen. Diese Caches sind häufig auch für Behinderte und Rollstuhlfahrer geeignet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Datei:OCE6DA Park.jpg|thumb|{{Cachelink|OCE6DA}}: Gelände 2]]&lt;br /&gt;
&lt;br /&gt;
== Gelände 2 ==&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-20.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Es gibt befestigte Wege und kaum Höhenunterschiede, Rasenflächen etc. Es sind nur wenige Kilometer zu gehen. Die Caches sind auch für kleine Kinder geeignet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gelände 3 ==&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-30.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Es geht durch unwegsames oder steiles Gelände oder leichtes Unterholz. Im Rahmen einer kleinen Wanderung wird diese Geländewertung gewählt. Das Gelände ist für kleine Kinder nicht geeignet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gelände 4 ==&lt;br /&gt;
[[Datei:6e2b99f6-1173-410e-bd82-c7327b60e9e9.jpg|thumb|hochkant=0.8|Gelände 4–5]]&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-40.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Das Gelände ist weglos, sehr steil, so dass man seine Hände einsetzen muss, oder hat sehr dichtes Unterholz. Jedoch kann es sich dabei auch um eine lange Wanderung handeln.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gelände 5 ==&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-50.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Besondere Ausrüstung oder Erfahrung sind Pflicht für diese Geländeschwierigkeit. Es muss beispielsweise geklettert oder getaucht werden etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Zwischenwerte ==&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|[[Datei:Terr-25.gif]]&amp;amp;nbsp;&lt;br /&gt;
|Es sind auch Zwischenwerte möglich (1,5 / 2,5 / 3,5 / 4,5). Diese werden dann gewählt, wenn die Geländewertung zwischen zwei der oben beschriebenen Stufen liegt.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Schwierigkeiten]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Stopień trudności terenu]]&lt;/div&gt;</summary>
		<author><name>Dl6hbo</name></author>
	</entry>
</feed>