Inhaltsverzeichnis
Konfiguration
Eine ausführliche Beschreibung der Konfigurationsparameter findet sich unten auf dieser Seite. Weiterhin sei auf die Seite Installation sowie die Kommentare in den Konfigurations-Dateien selbst verwiesen.
Die Konfigurationsdatei ist an sich selbst ein PHP Script (welches allerdings nichts tut, außer Variablen zu deklarieren) - hier ist sich also auch an die PHP Syntax zu halten. Um die Sache möglichst übersichtlich zu gestalten, sind die verschiedenen Einstellungen nach Sinneinheiten gruppiert - aus technischer Sicht ist die Reihenfolge jedoch i.d.R. unwichtig, sieht man vielleicht von zwei Ausnahmen ab: Dem Verschachteln von Einstellungen (eine Einstellung als Teil einer anderen zu benutzen), sowie der Definition von Abweichungen bei Konfiguration mehrerer Kataloge (erweiterte Konfiguration).
Im Folgenden also eine kurze Erklärung der verfügbaren Einstellungen, die der Gruppierung in den Beispiel-Konfigurationen folgt:
Verzeichnisse
| Variable | Beispiel-Belegung | Erläuterung |
|---|---|---|
| dbfile | dirname(__FILE__).'/metadata.db' | die von SQLite benutzte Datenbank-Datei. Hier speichert der Scan alle Metadaten zu den Büchern ab, und hier bedient sich auch das Web-Frontend. Angegeben werden sollte hier ein Dateiname (mit Pfad) - dieser muss für das Scan-Skript les- und schreibbar, sowie für den Web-Server lesbar sein. Wie am Beispiel zu sehen, können hier auch PHP-Funktionen zu Hilfe genommen werden: Hier wird z.B. sicher gestellt, dass sich die Datei im gleichen Verzeichnis wie die Konfigurationsdatei befindet. Diese Einstellung muss als String erfolgen. |
| bookroot | 'books' | das Basis-Verzeichnis der Buchdateien. In der Beispiel-Konfiguration befindet sich dieses direkt im Verzeichnis von miniCalOPe (und somit innerhalb des DOCUMENT_ROOT des Webservers). Dies ist sinnvoll für die Verwendung eventueller Cover-Images — aber nicht zwingend notwendig; es kann auch ein Verzeichnis außerhalb der miniCalOPe-Installation (und sogar außerhalb des DOCUMENT_ROOT) verwendet werden. Diese Einstellung muss als String erfolgen. |
| bookformats | array('epub','mobi') | welche Buchformate von dieser Installation unterstützt werden sollen. Derzeit versteht miniCalOPe ausschließlich 'epub' und 'mobi' — es ist also eine Einschränkung auf eines der Formate möglich. Spätere Versionen können evtl. Unterstützung für weitere Formate mitbringen. Diese Einstellung muss als Array erfolgen. |
| bookdesc_ext | array('desc') | Dateierweiterung für die ausführlichere Beschreibung der Bücher. Zu jedem Buch kann eine gleichnamige Datei mit einer dieser Erweiterungen im gleichen Verzeichnis existieren. Diese Einstellung muss als Array erfolgen. |
Fehlerprüfung
| Variable | Beispiel-Belegung | Erläuterung |
|---|---|---|
| check_xml | TRUE | Unterzieht die Dateien mit den Buch-Beschreibungen (bei Default-Konfiguration also *.desc) einer einfachen XML-Prüfung: Existiert zu jedem "öffnenden Tag" (also z.B. <I>) auch das passende schließende Tag (also </I>)? Für OPDS muss hier XML-Konformität vorliegen. Fehler werden entsprechend als ERROR protokolliert. |
| skip_broken_xml | TRUE | Da invalides XML dazu führt, dass die entsprechende Buchseite im OPDS-Browser (also dem jeweiligen OPDS-fähigen eBook-Reader) nicht gerendert und daher auch nicht angezeigt wird, könnte das entsprechende Buch auch nicht heruntergeladen werden. Im Fehlerfall empfiehlt es sich also daher, besser auf die "defekte" Beschreibung zu verzichten. ACHTUNG: Greift nur, wenn auch check_xml aktiviert wurde. |
| scan_dbmode | 'rebuild' | Modus für das Scan-Skript. Zwei Modi sind hier verfügbar: 'rebuild' leert zunächst die Datenbank, und fügt dann alle Kategorien, Autoren, Bücher etc. neu ein. Da sich auf diese Weise die IDs für genanntes ändern können (was nicht unbedingt erwünscht ist), wurde ein zweiter Modus hinzugefügt: 'merge'. Dieser versucht, Änderungen zu erkennen: Nicht mehr vorhandene Bücher werden aus der Datenbank entfernt, neue hinzugefügt, und bereits vorhandene aktualisiert. |
Logging
| Variable | Beispiel-Belegung | Erläuterung |
|---|---|---|
| logfile | './minicalope.log' | Datei für Protokoll-Einträge (muss für den Webserver schreibbar sein). Dies ist das allgemeine Logfile - ein leerer String deaktiviert dies. Diese Einstellung muss als String erfolgen. |
| dllogfile | './minical_dl.log' | Separate Datei für Protokoll-Einträge von Downloads (muss für den Webserver schreibbar sein). Ist dies angegeben, werden Downloads hier separat protokolliert - ein leerer String deaktiviert dies (und verwendet das allgemeine Log stattdessen). Diese Einstellung muss als String erfolgen. |
| fileloglevel | INFO | Einträge welcher Priorität sollen im Logfile protokolliert werden? Zur Auswahl stehen die Konstanten NOLOG, EMERGENCY, ALERT, CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG. Jeweils kritischere Log-Level werden mit eingeschlossen (ALERT schließt EMERGENCY mit ein). |
| screenloglevel | NOLOG | Analog, für die Ausgabe im Webbrowser |
| screenloglevel_cli | INFO | Analog für die Ausgabe an der Kommandozeile (z.B. für den Scan) |
| scan_report_changes | FALSE | Ausgabe neu hinzugefügter/verschobener Bücher (Verzeichnis, Titel) beim Scan |
Buch Cover
| Variable | Beispiel-Belegung | Erläuterung |
|---|---|---|
| cover_mode | 'off' | für den Scanner: Sollen Covers verfügbar gemacht werden? Eigentlich eine simple ja/nein Frage - dennoch als String gestaltet, da die Bereitstellung auf verschiedene Weise erfolgen kann/muss: Bei Verwendung von Calibre werden die Cover-Dateien per Symlink verfügbar gemacht (dies ist generell notwendig, sofern sich das $bookroot nicht innerhalb des DOCUMENT_ROOT des Webservers befindet - ist aber derzeit nur für Calibre implementiert), andernfalls liegen sie im gleichen Verzeichnis wie das zugehörige Buch, mit dem gleichen Namen und der entsprechenden Erweiterung (.jpg/.png). Für nicht-Calibre versucht der Scanner, sofern hier nicht 'off' spezifiziert wurde), die Cover-Bilder aus den *.epub Dateien zu extrahieren. Diese Einstellung muss als String erfolgen. Mögliche Werte: 'off', 'calibre', 'normal'. |
| cover_width | '200px' | Breite der Darstellung des Cover-Bildes in der HTML Ansicht. Diese Einstellung muss als String erfolgen. |
| cover_base | 'covers' | wo die Symlinks für Cover-Images abgelegt werden. In diesem Beispiel ist es das Verzeichnis covers/ direkt innerhalb der miniCalOPe Installation. Diese Einstellung muss als String erfolgen. |
| cover_fake_fallback | TRUE | sollen in der HTML-Ansicht Fake-Cover-Images erstellt werden, wenn kein reales Cover-Bild verfügbar ist? |
Web Service
| Variable | Beispiel-Belegung | Erläuterung |
|---|---|---|
| timezone | '+01:00' | Zeitzone der verwendeten Timestamps. Diese wird für die XML/OPDS Ansichten benötigt, und muss in der hier angegebenen Schreibweise erfolgen (im Beispiel: GMT+1, also +1 Stunde 0 Minuten). Diese Einstellung muss als String erfolgen. |
| sitetitle | 'Book Server' | Name der Site (also z.B. 'Peters Bücherregal'). Wird u.a. im HTML TITLE Attribut (also das, was in der Titelzeile des Web-Browsers erscheint) und an weiteren Stellen verwendet. Diese Einstellung muss als String erfolgen. |
| baseurl | 'http://localhost/opds/' | komplette URL zur miniCalOPe Installation. Im Beispiel ist diese vollständig "hart kodiert" - denkbar wäre hier z.B. die Verwendung der Variable $_SERVER['HTTP_HOST'] für dynamische Konfiguration. Diese Einstellung muss als String erfolgen. |
| relurl | '/opds/' | der Pfad-Anteil der $baseurl Diese Einstellung muss als String erfolgen. |
| perpage | 25 | für die "Paginierung": Wie viele Einträge sollen pro Seite angezeigt werden? Vor dem Hintergrund kleinerer Bildschirme bei eBook-Readern (speziell: Smartphones) sollte dieser Wert nicht zu hoch gewählt werden - aber auch nicht zu niedrig. Werte zwischen 10 und 50 sollten ein sinnvolles Spektrum abbilden. Diese Einstellung muss als Integer (Ganzzahl) erfolgen. |
| wikibase | 'http://de.wikipedia.org/wiki/' | wird u.a. für die Auskunft zu Autoren verwendet. Wikipedia in der jeweiligen Sprache bietet sich hier an, da dort die meisten Autoren bereits erfasst sind - prinzipiell kann aber auch jedes andere Wiki genutzt werden, welches Informationen auf diese Weise bereitstellt. Der Name des Autors wird einfach an diese URL angehängt - evtl. wird dies in einer zukünftigen Version geändert und um einen Platzhalter ergänzt. Diese Einstellung muss als String erfolgen. |
| isbnservices | (Auswahl) | Welche der verfügbaren Buch-Shops für ISBN-Links verwendet werden sollen (sofern für ein Buch eine ISBN verfügbar ist; gilt nur für die HTML-Ansicht). Die verfügbaren Services sind in der Datei lib/isbnsearch.csv im CSV-Format definiert, die erste Spalte gibt die hier zu verwendenden Namen an. Diese Einstellung muss als Array erfolgen. |
| booksearchservices | (Auswahl) | Analog zur ISBN-Suche ermöglicht dies eine Buchsuche mittels Autor und Titel. Verfügbare Services hierfür sind in der Datei lib/booksearch.csv definiert. Diese Einstellung muss als Array erfolgen. |
Person Info
Diese Daten dienen zur Kontaktaufnahme z.B. bei technischen Fragen, und sind im XML entsprechend den Atom/OPDS Spezifikationen hinterlegt:
| Variable | Beispiel-Belegung | Erläuterung |
|---|---|---|
| owner | 'John Doe' | Dein Name (String) |
| homepage | 'http://www.johndoe.com/' | URL Deiner Homepage (für weitere Informationen; String natürlich) |
| 'john@johndoe.com' | EMail-Adresse für die Kontaktaufnahme (String) |
Sprachspezifisches
Hier können — abhängig von der gerade verwendeten Sprache (d.h. des an der URL per lang=XX übergebenen Wertes) — einzelne Einstellungen "überschrieben" werden. Es kommen also keine neuen Einstellungen dazu.
Wichtig ist hier zu beachten, dass für die "Sprache" (also den per lang=XX übergebenen Wert, sowie die Sprachverzeichnisse bei den Büchern) immer der zweistellige ISO-Code verwendet wird ('en' für Englisch, 'de' für Deutsch, 'es' für Spanisch…). Eine Ausnahme stellt die "Pseudo-Sprache" 'cal' dar: Diese steht für "Calibre", d.h. die Verwendung von Calibre als Backend.
