Konfigurationsdatenstrukturen
- Zeile mit chdir "xxx";
- Das Verzeichnis auf dem Server, das das Rootverzeichnis der Website darstellt
- $server
- Der Webserver
- $www
- Das Verzeichnis auf dem Webserver, über den die Website im Internet adressiert wird.
- $cms
- Die Internetadresse des Content-Management-Systems
- $gui
- Das Verzeichnis der GUI innerhalb des Rootverzeichnis der Website
- $images
- Das Bilderverzeichnis innerhalb $gui (optional)
- %db
- Tabellendateien als Schlüssel, Titel als Wert
- %auto_templates
- Tabellendateien als Schlüssel, Anonymes Array von Templates ohne eigene Tabelle als Wert
- $password
- Das Passwort zur Authentifikation zur normalen Verwendung
- $adminpass
- Das Passwort zur Authentifikation zur Administration (Einspielen von Templates)
- %buttons
- Bestimmte Schlüsselworte als Schlüssel, Anonymes Array von Buttonbeschriftung, Status, Buttonbild und Highlight als Wert
Status bestimmt nächstes Formular
Buttonbild optional, Highlight möglich falls Buttonbild
Tabellenformat
In der ersten Zeile werden einerseits die Spaltennamen festgelegt, andererseits bestimmte Flags gesetzt. Die Flags werden durch Unterstrich vom Spaltennamen getrennt. Die Spalten werden durch Tabulatoren getrennt.
Die erste Spalte enthält für gewöhnlich den primären Schlüssel der Tabelle, diese Spalte muss das Flag U erhalten. Die zweite Spalte den TimeStamp, der Konkurrenzen ausschliessen soll und das Datum der letzten Änderung protokolliert. Diese beiden Spalten sind das Minimum für eine Tabelle.
Folgende Flags existieren:
- U - Unique
- Diese Spalte wird eindeutig gehalten
- N - Needed
- Diese Spalte muss einen Wert erhalten
- S - Show
- In der Listenansicht wird der Inhalt dieser Spalte angezeigt
- F - Field
- In der Eingabeansicht wird ein grosses Textfeld angeboten
- B - Binary
- Diese Spalte verwaltet den Namen einer hochgeladenen Datei
- H - http
- Für diese Spalte erscheint ein Hinweis bzgl. internen und externen Webadressen
- _xx Eine Zahl
- Die Zahl gibt die maximale Anzahl Zeichen an.
Templates
Tabellenspezifikation
Es gibt zwei Arten von Templates, nämlich Komplettvorlagen und Listen.
Aus der Komplettvorlage (TEMPLATE.xxx.TEMPLATE) wird für jeden Datensatz der zugehörigen Tabelle (DATA.xxx.DATA) eine Kopie (yyyy.xxx) erstellt und mit diesem zusammengeführt. Hierfür ist ein eigenes Verzeichnis notwendig.
yyyy ist hier der aus dem Datensatz ermittelte Dateiprefix, xxx der Dateisuffix (z.B. html).
Die Listentemplates (yyyy.xxx.TEMPLATE) enthalten einen oder mehrere Templatebereiche, die mit <TEMPLATE_TABELLENNAME> eingeleitet und mit </TEMPLATE_TABELLENNAME> abgeschlossen werden. TABELLENNAME kann eine zu diesem Template gehörige Tabelle sein, die Tabelle/n (yyyy.xxx.TABELLENNAME) ist/sind dann im gleichen Verzeichnis.
Ansonsten existiert eine Tabelle, die abgefragt werden kann. Diese wird mit zum Rootverzeichnis der Website relativem Pfad anstelle von TABELLENNAME angegeben.
yyyy.xxx ist hier der durch das Template festgelegte Dateiname samt Dateisuffix (z.B. html).
Informationsabfrage anhand von CMS-Tags
Innerhalb der Komplettvorlagen und Templatebereiche werden aus der zugehörigen Tabelle Informationen interpoliert werden.
Hierzu werden Elemente mit CMS_ eingeleitet und dem Spaltennamen abgeschlossen. Diese Elemente können teilweise CMS-Attribute enthalten und teilweise darauf folgende normale HTML-Attribute.
Unäre Tags - Es wird nicht rekursiert
Enthält das Tag keine CMS-Attribute, wird das Spaltendatum interpoliert. Folgende CMS-Attribute sind möglich:
CMS_TYPE=IMAGE
- Das Spaltendatum bezeichnet eine Bilddatei, nach den CMS-Attributen sind weitere Attribute möglich
- Beispiel: <CMS_SPALTE CMS_TYPE=IMAGE ... />
- Ergebnis: <img src="SPALTENDATUM" ...>
CMS_TYPE=NAME
- Eine Sprungmarke
- Beispiel: <CMS_SPALTE CMS_TYPE=NAME />
- Ergebnis: <a name="SPALTENDATUM"></a>
Deprecated: CMS_TYPE=SECMAIL
- Eine Emailadresse, die in der Datenbank in der Form "ich@beimir.de" eingetragen, dann als "ich@<span></span>beimir.de" im Quelltext erscheint, im Browser richtig mit "ich@beimir.de" angezeigt wird, aber für Emailsammel-Bots nicht ohne weiteres verwertbar ist.
Diese Adresse ist so selbstverständlich auch nicht verlinkt.
- Beispiel: <CMS_SPALTE CMS_TYPE=SECMAIL />
- Ergebnis: siehe Erklärung
Binäre Tags - Es wird rekursiert
Wenn SPALTENDATUM existiert, wird ggf. entsprechend des CMS_TYPE interpoliert und rekursiert.
Folgende Bedingungen zur Interpolation und Rekursion sind realisiert:
- Falls CMS_FLAG=DATA_OPTIONAL gesetzt ist, wird auch rekursiert, wenn kein SPALTENDATUM existiert, aber dann nicht entsprechend CMS_TYPE interpoliert.
- Falls CMS_FLAG=NO_DATA gesetzt ist, wird nur rekursiert, wenn kein SPALTENDATUM existiert, aber dann nicht entsprechend CMS_TYPE interpoliert.
- Falls CMS_VALUE=value gesetzt ist, wird nur rekursiert, wenn SPALTENDATUM = value.
- Falls CMS_FLAG=VALUE_NOT und CMS_VALUE=value gesetzt sind, wird nur rekursiert, wenn SPALTENDATUM != value.
Folgende CMS-Typen sind möglich:
CMS_TYPE=HREF
- Ein Link, nach den CMS-Attributen sind weitere Attribute möglich
- Das optionale CMS_TARGET=SPALTE_X gibt das Ziel des Links an.
- Das optionale CMS_HREFPREFIX=prefix gibt einen allgemeinen Prefix im durch SPALTENDATUM gebildeten Hyperlink an.
- Das optionale CMS_HREFSUFFIX=suffix gibt einen allgemeinen Suffix im durch SPALTENDATUM gebildeten Hyperlink an.
- Beispiel: <CMS_SPALTE CMS_TYPE=HREF CMS_TARGET=SPALTE_X CMS_HREFPREFIX=prefix CMS_HREFSUFFIX=suffix ... >...</CMS_SPALTE>
- Ergebnis: <a href="prefixSPALTENDATUMsuffix" target="SPALTE_X"...>...</a>
CMS_TYPE=DATASHEET
- Ein Link zum Erstellen eines Inhaltsverzeichnisses für Datenblätter, nach den CMS-Attributen sind weitere Attribute möglich
- Beispiel: <CMS_SPALTE CMS_TYPE=DATASHEET ... >...</CMS_SPALTE>
- Ergebnis: <a href="SPALTENDATUM.xxx" ...>...</a>
Hierbei entsteht der Suffix des Links aus dem Namen der abgefragten Datenbank (DATA.xxx.DATA)
CMS_TYPE=LIST
- Ein Link zum Erstellen eines Inhaltsverzeichnisses für Listeneinträge innerhalb der Listendatei
- Beispiel: <CMS_SPALTE CMS_TYPE=LIST>...</CMS_SPALTE>
- Ergebnis: <a href="#SPALTENDATUM">...</a>
Skins
Es gibt fünf Formulare, die angepasst werden müssen, um eine eigene Bedienoberfläche zu gestalten: choose-, edit-, list-, login- und show_TEMPLATE.
Außerdem kann anstelle des CGIs eine html-Datei aufgerufen werden, die ein Frameset enthält, das das CGI aufruft.
Neben den in der Standardvorlage enthaltenen, können <!--Path--> und <!--PreloadHighlight--> eingefügt werden. Path interpoliert den Pfad in dem die Templates liegen, z.B. für Hintergrundbilder. PreloadHighlight die Bilder die beim MouseOver gehighlightet werden sollen.