ToBuS - Touristisches Buchungssystem :: Dokumentation modified: 2005-03-24
english | deutsch | forum.tobus.org | www.tobus.org | demo.tobus.org
Dokumentation

ToBuS-Projekt

designed by:
Design is powered by OTRS
ToBuS Vorraussetzungen

Die Webapplikation ToBuS benötigt eine lauffähige LAMP Installation, derzeit unterstüzt und benötigt wird eine PHP-Version größer 4.1.0, ein Apache-Webserver für den Zugriff auf dortige Umgebungsvariablen sowie eine MySQL-Datenbank größer 3.23.4X. Für X(HT)ML-Header sind short-Tags auszuschalten, was als php_value im virthost oder in der .htaccess erfolgen kann, mindestens jedoch in der php.ini einstellbar ist. Für Grafikfunktionen wird auf die GD-Bibliothek gesetzt, die bei der PHP-Kompilation eingebunden werden muss (PHP-Handbuch -> ref.image.html).

Die index.php sollte vom Webserver immer als default-Datei eines Verzeichnisses ausgeliefert werden, da "leere" Verzeichnisse hier eine Header-Anweisung haben und den neugierigen verzeichnisdurchforstenden Besucher zurück auf den richtigen Weg bringen sollen. Die Absicherung eines Webservers ist eine kleine Wissenschaft für sich - fragen sie den Provider ihres Vertrauens, und dann noch eine zweiten ;)
Detailfragen dazu beantworte ich gern, eine allgemeine Darlegung der Problematik ist mir aber derzeit zeitlich nicht möglich. "man google" sollte helfen ;)

In ToBuS sind Ideen und Programmierstiele diverser bekannter PHP-basierter GPL-Software eingeflossen, so z.B. die mehrdimensionalen Arrays für Konfigurationsvariablen (hier $_TOBUS) aber auch eigene Lösungsansätze, die im Laufe der Zeit enstanden sind (Trennung mehrerer Werte durch at und pipe).

 

Struktur

ToBuS nutzt folgende Verzeichnisstrukturen:

  • $INSTALL_DIR
  • $INSTALL_DIR/lib
  • $INSTALL_DIR/include (mit main, left, right, top, bottom, config)
  • $INSTALL_DIR/template/$TEMPLATE (mit main, left, right, top, bottom, config)
  • $INSTALL_DIR/$MEDIA_DIR
  • $INSTALL_DIR/$ADMIN_DIR


ToBuS selbst läuft mit wenigen Seiten im $INSTALL_DIR. Jede Seite hat als Erste Anweisung ein require_once("lib/globalvars.inc.php");. Diese Datei ist über den Menüpunkt Konfiguration editierbar. Die zweite Anweisung ist der Aufruf der log-user-Funktion, mangels Bekanntgabe dieser, dem user ggü., einfach mal luser() genannt (luser speichert völlig anonym, ein Rückschluß auf die Person, auch bei erfolgter Buchung ist nicht möglich und wäre datenschutzrechtlich fatal).

Nach einer Abarbeitung evtl. POST-Requests (Formulare) erfolgt entweder ein serverseitiger Hinweis an den Browser, doch hier oder dort weiterzumachen (header()) oder es folgt der HTML-Header, der mit getInclude("htmlhead.inc.php");. Anschließend ein: echo $_TOBUS['body'];
echo $_TOBUS['bgtable'];
und die Tabellenstruktur. Die Inhaltselemente sind wieder mit getInclude($_TOBUS['page']['index']['toptable']); eingefügt und bestehen aus vorgefertigten oder eigenen Template-Baustseinen.

Das Array $_TOBUS['page'] ist ebenfalls über den Menüpunkt Konfiguration änderbar.

 

Systemdateien

lib - Bibliotheken
Neben der globalvars.inc.php befindet sich das eigentliche System in diesem Verzeichnis.

class.img.php: Eine Klasse für die Bildbearbeitungs- und Transformationsfunktionen aber ohne class-Konstruktor.
Funktionen: get3img, getImage, imageUpload, moveUpload, getMoreImages, newImage, createThumbnail, makeThumbnail, ifuploadedImage, changeImage, createImage

class.strings.php: Eine Klasse zur Behandlung und Konvertierung von Strings, aber ohne class-Konstruktor.
Funktionen: num, float, replaceEXEC, xss, replaceEntities, checkemail, rfcMail

class.tobus.php: Eine Klasse mit ToBuS-spezifischen Funktionen, aber ohne class-Konstruktor.
Funktionen: getTextArray, getMultipleData, getSelectedData, getData, FindData, getFind, getLocations, getServices, listServices, listServicesTable, createUser, check_temp, register, timerange, luser

functions.php: ganz allgemeine Funktionen, die nicht in die vier Klassen eindeutig einzuordnen sind
functions.php bindet die Klassen ein:

  • require_once ($_TOBUS['path']."lib/db.".$_TOBUS['db']['server'].".php");
  • require_once ($_TOBUS['path']."lib/class.img.php");
  • require_once ($_TOBUS['path']."lib/class.strings.php");
  • require_once ($_TOBUS['path']."lib/class.tobus.php");

Funktionen: convertISOdate, convertdate, getHTML, getInclude, sendemail

EXT :: init.photo.php: setzt Variablen für das Bilderbuch und beinhaltet die class photo aber ohne class-Konstruktor.
Funktionen: RubrikLink, getRandom, getPhoto, getRubriken, getRubrik, getOverview, resolveRubrik, searchSQL
Funktienen, die für Erweterungen benötigt werden, sollten möglichst in so einer spezielle Klasse eingeschlossen werden, um die Funktionsnamen eindeutig abzugrenzen und eine Redeklaration zu vermeiden.

db.mysql.php: Klasse für den Datenbankzugriff.
Funtionen: DB, getDate, getLocalDate, getDateTime, getSelectedEntry, getCompleteEntry, getOtherEntries, getFields, getId, setId, getTable, setTable, newEntry, delEntry, sqlEntry, changeEntry

globalvars.inc.php: setzt wichtige, systemnahe Variablen und eröffnet die session
Funktionen: session_check




Kontakt