Doku-Hauptseite Features Installation Administration Bedienung Entwickler FibuSQL-Hauptseite
Die gesamte Datenhaltung übernimmt eine Datenbank. Die
PHP-Skripte stellen ein (fast) zustandsloses Web-Interface dar und
enthalten die Algorithmen (es werden keine stored procedures
verwendet). Der Zustand der PHP-Skripte besteht nur aus den
Session-Variablen ($HTTP_SESSION_VARS['...']
)
dbspec
, die die Login-Daten im PEAR::DB-Format speichert
und lang
, die die aktuelle Spracheinstellung
enthält.
Dabei wurden Algorithmen, die auch abseits der Oberfläche nutzbar sind (Generierung des Hauptbuchs, XML/CSV-Import, etc.) in das Verzeichnis backend/ ausgelagert.
Bei der Generierung der HTML-Ausgabe wurde konsequent CSS (Cascading Style
Sheets) eingesetzt, um die Formatierung vollständig von der Struktur zu
trennen. Änderungen des gesamten Layouts sind deshalb ausschließlig
in dem Style Sheet fibu.css
vorzunehmen.
Die Primärdaten, das sind die Kontenliste, das Grundbuch
(Journal) und die sich wiederholenden Buchungen sind entsprechend in
drei Tabellen accounts
, journal
und
repeated
abgelegt. Deren genaue Definition kann in der
Datei Fibu-Verzeichnis/backend/dbadmin.inc
in der Funktion
init_db()
oder direkt in der
entsprechenden Datenbank nachgesehen werden.
Ausserdem gibt es noch eine Tabelle balances
, die die aktuellen
Salden der Hauptbuchkonten speichert und als Cache zur Beschleunigung der
Hauptbuchansicht dient. Dazu ist darauf zu achten, dass der Cache-Eintrag eines
Kontos bei einer Buchung für ungültig erklärt wird, dies
passiert durch den Aufruf von invalidate_balance($account)
(in
backend/invalbal.inc
).
Die Datei langinc.inc
, die von allen Seiten
eingebunden wird, bestimmt die zu verwendende Sprache aus der
Server-Variablen HTTP_ACCEPT_LANGUAGE
. Weil der
Algorithmus ziemlich komplex ist, wird die aktuelle Spracheinstellung
in der Session-Variable lang
gespeichert, so dass eine
Änderung der Spracheinstellung des Webbrowsers erst zum
nächsten Login aktiv wird.
Alle übersetzbaren Strings, die ein Benutzer sieht, sind
sepearat in Dateien des lang/
-Verzeichnisses gespeichert.
Ihre Namen beginnen immer mit der ISO-Standard-Abkürzung für
die Sprache, so wie es auch der Webbrowser kodiert. Weil nicht alle
Seiten alle Strings nutzen, wurden die Strings auf mehrere Dateien
verteilt, die nur bei Bedarf eingebunden werden. Die Datei ohne Suffix
enthält Strings, die überall gebraucht werden und wird
deshalb automatisch eingebunden.
Um eine neue Übersetzung für die Sprache XX
bereitzustellen, kopieren Sie einfach einen schon existierenden Satz
von Sprachdateien (vorzugsweise der Sprache, die Sie am besten
beherrschen) und benennen sie entsprechend der neuen Sprache, also
XX.php
, XX-admin.php
usw. und
übersetzen die enthaltenen Strings. Die neuen Dateien müssen
nicht gesondert registriert werden, FibuSQL benutzt sie automatisch,
wenn der Webbrowser die Sprache anfordert.
Sollten Sie an FibuSQL etwas ändern, was auch andere Benutzer interessieren köntte, dann wäre es schön, wenn Sie mir Ihre Änderungen schicken, damit ich sie evtl. in die nächsten Version integrieren kann. Ihr Name wird dabei natürlich erwähnt! Wollen Sie Ihre Arbeit nicht der offiziellen Distribution aufnehmen lassen, würde ich mich ebenfalls über einen Link zu Ihrer Version freuen, damit ich auf meiner Homepage darauf hinweisen kann.
Ich bitte darum, alle Änderungen in der Datei ChangeLog
zu dokumentieren.