Table of Contents
Zusätzliche Informationen einbringen
In PDL lassen sich auch Informationen unterbringen, die nicht vom Conduit geliefert werden. Dies können Fotos sein, oder auch Textdateien mit zusätzlichen Daten zu Tauchgängen, Sites, oder persönlichem. Realisiert werden kann dies prinzipiell auf zweierlei Art:
- Dateien mit speziellen Namen im richtigen Verzeichnis unterbringen
- spezielle Makros in den Notizen von ADL verwenden
Beides soll in diesem Artikel beschrieben werden.
Tauchgangs- und Site-Fotos
Diese lassen sich am einfachsten über die erste Methode einbinden. PDL durchsucht zwei spezielle Verzeichnisse nach diesen Fotos: diver/<nickname>/fotos/dive/ für Tauchgangs-Fotos, und diver/<nickname>/fotos/site/ für Fotos der Sites. Es erkennt dabei Jpg, Gif und Png Dateien anhand ihrer Dateierweiterung, und verwendet diese entsprechend. Kurze Beschreibungen (Einzeiler unter dem Bild) lassen sich dabei in *.txt Dateien unterbringen, die den gleichen "Vornamen" wie die zugehörige Bilddatei tragen (Beispiele finden sich im Verzeichnis diver/demo/fotos/).
Die Namenskonventionen sind hierbei von ADL abgeleitet: Bilder eines Tauchgangs folgen dem Namens-Schema diveXXXXX-YYY.*, Site-Fotos hingegen siteXXXX-YYY.txt - wobei XXXXX für die 5-stellige Nummer des jeweiligen Tauchgangs- bzw. Site-Rekords, und YYY einer 3-stelligen fortlaufenden Nummer (beide jeweils von links mit Nullen aufgefüllt) entspricht. Das zweite Foto für Tauchgang Nummer 25 hieße demzufolge dive00025-002.jpg. Unschwer zu erraten, identifiziert PDL den zugehörigen Datensatz über die erste Zahlengruppe, während sich über die zweite die Reihenfolge der Anzeige festlegen lässt.
Was es hier zu beachten/bedenken gilt:
- die derart bereitgestellten "Thumbnails" sollten eine Größe von 192x144 Pixel haben (Portrait-Format entsprechend 144x192)
- die Dateinamen sollten nur Kleinbuchstaben (und natürlich die Ziffern, den Punkt, sowie den Strich an der richtigen Stelle) aufweisen
- werden die Tauchgänge/Sites? irgendwann einmal (in ADL) neu durchnummeriert, muss das für die Fotos manuell nachgeholt werden
- soll PDL die "Thumbnails" mit einem Link zu entsprechend größeren Varianten des jeweiligen Fotos hinterlegen (zu öffnen in einem Pop-Up), einfach das große Bild mit gleichem Namen in das zugehörige Unterverzeichnis large/ verfrachten
Zusätzliche Informationen zu Tauchgängen und -plätzen
Umfangreichere Texte lassen sich auf einem PDA i.d.R. nur umständlich erfasssen, weshalb PDL so etwas wie "externe Notizen" unterstützt: In ADL erfasst man die grundlegenden Informationen, und auf dem PC tippt man den detaillierten Text. Solche "externen Notizen" werden wiederum in einer einfachen Textdatei abgelegt, die (wie bereits gehabt) über entsprechende Namens-Konventionen identifiziert wird: Für Tauchgangs-Notizen heißt die Datei diveXXXXX.txt, für den Tauchplatz entsprechend siteXXXXX.txt - und wird im Verzeichnis notes/ des Logbuches abgelegt. Wie bereits bei den Fotos, steht "XXXXX" für die von links mit Nullen aufgefüllte Nummer des zugehörigen Rekords (also z.B. site00012.txt für einen Text zum Tauchplatz Nummer 12). Diese Dateien können HTML-Formatierungen (z.B. für <B>old (fett) oder <U>nterstreichung) enhalten, sowie auch spezielle Makros (siehe unten). Doppelte Zeilenumbrüche werden durch "<BR>" ersetzt, einfache Zeilenumbrüche hingegen ignoriert - sodass auch der "Quelltext" für den Bearbeiter lesbar formatiert werden kann (im Gegensatz dazu werden bei den "internen Notizen", die direkt in ADL erfasst werden, bereits einfache Zeilenumbrüche durch "<BR>" ersetzt - da es hier sonst schnell unübersichtlich werden kann).
Auf jeden Fall muss sichergestellt sein, dass die Textdateien den Zeichensatz UTF-8 verwenden! Unter Windows kann z.B. der Standard-Editor "Notepad" Dateien in UTF-8 speichern, wenn man über "Speichern unter" geht und dort den Zeichensatz entsprechend wählt. Wer unter Linux/Unix nicht schon von Haus aus mit UTF-8 arbeitet, kann die Textdateien mittels des recode Befehls konvertieren lassen (die Man-Page hilft bei Fragen weiter: man recode).
Noch nicht genug? Vielleicht möchte jemand Texte für unterschiedliche Sprachen bereitstellen? Kein Problem: Für alle von PDL unterstützten Sprachen (welche das sind, lässt sich am einfachsten auf der "Prefs" Seite im PDL Web-Interface feststellen) geht das ganz einfach, indem man den entsprechenden Sprachcode an den Dateinamen anhängt: *.txt.de für einen deutschen Text, *.txt.en für die englische Variante, usw. PDL zeigt dann jeweils die Datei an, die zur gewählten Sprache des Besuchers passt. Dazu muss jedoch in jedem Fall eine Datei ohne diese zusätzliche Erweiterung existieren, falls es einmal keine Übereinstimmung gibt! Unter Linux/Unix reicht es dafür natürlich aus, einen entsprechenden "symbolischen Link" auf die entsprechend bevorzugte Datei zu erstellen.
Inhaltlich werden diese Dateien (bzw. deren Inhalt) behandelt, als wären sie direkt in PDL als Notiz erfasst worden - und daher bei den Notizen angezeigt. Es sollte vielleicht noch erwähnt werden, dass mit HTML in diesen Textdateien möglichst sparsam umgegangen werden sollte: Wer etwa noch Hintergrundfarben oder gar -bilder anpasst, kann damit das Aussehen seines Logbuches auch gründlich stören - wenn sich das z.B. überhaupt nicht mit einem ausgewählten Template-Set verträgt.
Persönliche Informationen
Auch für die "persönliche Seite" lassen sich natürlich weiterführende Informationen auf ähnliche Art hinterlegen - jedoch erkennt PDL hier lediglich Dateien namens diver.txt[.<lang>] im Hauptverzeichnis des Logbuches (also dort, wo sich auch bereits die Dateien system.conf und diver.conf befinden). Fotos (und andere Bild-Dateien) werden hierfür im Unterverzeichnis fotos/person/ gesucht, und müssen den Namen diverYYY.* tragen ("YYY" wiederum eine fortlaufende Nummer, die von links mit Nullen aufgefüllt wurde - also z.B. diver002.jpg).
Makros in Textdateien und ADL Notizen
Weitere Fotos oder gar externe Textdateien lassen sich über spezielle Makros in die Notizen einbinden, welche PDL beim Seitenaufruf entsprechend auswertet:
Links auf andere Webseiten schließt man mit [url] und [/url] ein (z.B.: [url]http://www.divers.net/[/url]). Bilder entsprechend mit [img] und [/img] (linksbündig angeordnet) bzw. [imgr] und [/imgr] (rechtsbündig) - wobei sich diese Tags auf verschachteln lassen (z.B.: [url]http://divers.net/|[img]/fotos/foto.jpg[/img][/url] - man beachte das "Pipe-Symbol" als Trenner, siehe auch unten). Eine lokale Text-/HTML-Datei lässt sich mittels [file]datei.html[/file] direkt importieren, wobei auch diese wiederum Makros enthalten kann.
Im folgenden soll die Syntax dieser Makros (also den Dingern in den eckigen Klammern) kurz beschrieben werden, wobei eckige Klammern hier optionale, und spitze Klammern Pflicht-Angaben kennzeichnen:
| Makro | Text zwischen dem öffnenden und dem schließenden Tag | Beispiel |
|---|---|---|
| file | [rootDir|protocol][path]<filename> | [file]/path/to/signature.txt![/file] |
| url,img,imgr | [rootDir|protocol][path]<filename>[|description] | [url]http://www.izzysoft.de/|IzzySoft Website[/url] |
| gps | lat;lon[;name]|description | [gps]45° 9' 36.0'' N;14° 38' 46.0'' E;Wrack der Pelastis|Koordinaten[/gps] |
Die rootDir Spezifikation ist hier ein ganz spezieller Fall, der der Syntax ~dir[@<buddy>] folgt - wobei ~dir ein einzelner Buchstabe ist, der steht für…
- d: diver/<buddy>/fotos/dive
- s: diver/<buddy>/fotos/site
- p: diver/<buddy>/fotos/person
- t: diver/<buddy>/text
Beim [gps] Makro wird der Koordinaten-Teil zusammen mit dem optionalen Namen durch eine URL für den konfigurierten Kartendienst ersetzt. Anschließend wird das Makro durch ein [url] Makro mit dem so ermittelten Link umgewandelt - sodass das Ganze aus Anwender-Sicht analog zum URL Makro behandelt werden kann - einschließlich der möglichen Verschachtelungen.
Also zum Abschluss noch ein schönes komplexes Beispiel: [url]http://some.divesites.homepage/|[img]~s@demo/site01234-001.jpg|Great Site[/img][/url] - was zur Anzeige des entsprechenden, auf die gegebene URL verlinkten Bildes führt, unter welchem der Schriftzug "Great Site" zu finden sein sollte.
PDF Export
Da sich sehr lange Texte (ggf. noch mit zahlreichen Bildern) schwerlich auf einer einzelnen PDF-Seite unterbringen lassen, lassen sich hierfür spezielle Marker setzen: Findet der PDF-Exporter den String <!-- PDF_START -->, so ignoriert er alles davor. Analog ignoriert er auch alles nach <!-- PDF_END -->. Beide Marker sind optional, und können sowohl in den ADL Notizen als auch in den externen Notizen verwendet werden - allerdings jeder Marker nur einmal: Die "vollständige Notiz" besteht aus "ADL-Notiz+Ext-Notiz" (auch genau in dieser Reihenfolge), und in diesem Block darf jeder Marker nur einmal vorkommen - sinnvoller Weise der "Start" Marker natürlich vor dem "End" Marker.
Das Resultat wird sodann mit den Einstellungen $pdf_max_notechars und $pdf_chars_per_pix abgeglichen und ggf. entsprechend verkürzt.
Was es noch zu beachten gilt: Die für die Erstellung der PDFs verwendete Bibliothek (TCPDF) ist sehr wählerisch, was HTML Tags anbetrifft. PDL versucht natürlich, entsprechende Vorkehrungen zu treffen - aber besser achtet man selbst bereits darauf:
- entweder reinen Text (ohne HTML Tags) - oder XHTML (wenn Tags benötigt werden) zu verwenden (also z.B. "<BR />" statt "<BR>" - wobei dieser spezielle Fall von PDL bereits abgefangen wird)
- bei Verwendung von Bildern immer HEIGHT und WIDTH anzugeben - oder das PDF-Ergebnis ist nicht wirklich vorhersehbar
- Hm - da ist bestimmt noch mehr, und es wird hier ergänzt, sobald es bekannt ist
