Genereller Aufbau
Wie unschwer zu erkennen, ist der Großteil von DynPG in PHP implementiert und es wird eher weniger Gebrauch von Javascript und Co. gemacht. Dabei ist fast die gesamte Funktionalität des Systems in der getcontent.php (die immer eingebunden werden muss, wenn man DynPG-Methoden verwenden will) enthalten, sodass man ohne weiteres von der wichtigsten Datei sprechen kann! Hier wird der Typ des globalen Hauptobjektes ($DynPG), nämlich TDynPG_MainClass codiert. Dessen Member dienen u.a. zum Anzeigen von Artikeln (function Write_Article()), zum Laden von Plugins (function LoadPlugIns()) und sind z.T. auch Hilfsfunktionen (z.B. function Private_GetTimeStamp($time)). Bevor ich auf die einzelnen Dateien eingehe hier noch eine kurze Erklärung der Ordnerstruktur:
|
| ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
./ | Enthält alle Dateien von DynPG und insbesondere die index.html, welche, wenn aufgerufen die Installationsroutine startet wenn das System nicht bereits installiert wurde, oder wenn neue Updates zur Verfügung stehen. Sie dient auch als Startpunkt für den Zugang zum Backend (Passwortabfrage etc.). | ||||||||||||||||||
backendpopup/ | Popups im Backend (mit Popup-Engine) | ||||||||||||||||||
css/ | Enthält die Css-Stylesheets für das Layout des Backends und für die Grundkonfiguration von Plugins wie Forum, Counter, etc. | ||||||||||||||||||
example/ | Enthält die Beispieldateien für die Benutzung des Systems. | ||||||||||||||||||
js/ | Javascript-Dateien (z.B. für das Forum und den Tinymce (Code für den Editor im Backend)) | ||||||||||||||||||
localised/ | Sprachdateien (zur Übersetzung in andere Sprachen) für das Front- und Backend. | ||||||||||||||||||
pdf/ | Pdf-Dateien zur Dokumentation von DynPG. | ||||||||||||||||||
pictures/ | Enthält alle möglichen Grafiken für Front- und Backend. | ||||||||||||||||||
plugins/ | Enthält alle installierten Plugins in jeweiligen Unterverzeichnissen, z.b.:
In diesen Unterverzeichnissen liegen die Implementationsdateien der jeweiligen Plugins, sowie deren Stylesheets und Konfigurationsdateien (Sprachdateien etc.). | ||||||||||||||||||
tpl/ | Templates zur Anzeige des Frontends sowie der Plugins. | ||||||||||||||||||
tpl/MyCMS | Templates zur Anzeige von Artikeln, Artikellisten, Gruppenlisten, ...
Tabelle 4.2. Unterverzeichnisse von tpl/MyCMS | ||||||||||||||||||
update/ | Hier werden verfügbare Updates reinkopiert. Wenn hier ein Update liegt welches auf eine neuere Version upgradet, dann wird das beim Aufruf des Backends (mittels index.php) festgestellt und die Installationsroutine wird gestartet. | ||||||||||||||||||
upload/ |
Tabelle 4.1. Ordner des CMS
Nachfolgend ein kleiner Überblick über die wichtigsten Dateien DynPGs:
|
|
---|---|
index.php | Zugang zum Backend, Überprüfung auf Updates, startet Hauptinstallationsroutine. "Führt HEADER-CONTENT-FOOTER zusammen und lädt die durch den Parameter ""show"" vorgegebene Seite (auch diejenigen von Plugins)" |
getcontent.php | beeinhaltet die wichtigsten Funktionalitäten von DynPG. |
_settings.php | Backend: Einstellungen |
_articles.php | Liste und Bearbeitungsmaske für Artikel einer (selektierten) Gruppe (Backend) |
_file_edit.php | Backend: Dateieditierung / Bildbearbeitungspopup |
_filegroups.php | Backend: Dateienverwaltung(File-Upload): Gruppierung der Dateien |
_fileupload.php | Backend: Dateiupload |
_groups.php | Backend: Gruppenverwaltung und Bearbeitungsmaske |
_help.php | Backend: Hilfe und Support |
_impressum.php | Backend: Impressum |
_preview.php | Backend: Popup, welches sich öffnet, wenn man auf der Editorseite den "Vorschau"-Button drückt |
_rights.php | Backend: RechtevergabeCenter PopUp |
_texts.php | Backend: Editorseite / Artikelbezogene Texte |
cimg.php | Frontend: Bildbuffer - Erzeugt ein PNG-Bild mit dem in 'cs' angegebenen (C)ounter(s)tand. |
config.php | beeinhaltet die Einstellungen für den Zugriff auf die Datenbank (Nutzername, Passwort, Server, Datenbankname). Initialisiert einige globale Variablen. |
connectdb.php | Core: Stellt Verbindung zur DB her (mit den unter config.php angegebenen Daten) |
counter.php | Verarbeitet die gezählten Links, welche man im Editor optional aktivieren kann und speichert sie in der DB |
defines.php | Konstanten |
fooder.php | Backend: Footer (falsch geschrieben ;)) des Backends (HTML Seiten aufgebaut als HEADER-CONTENT-FOOTER) |
ENGLISH.LICENSE | |
formulars_bin.php | Frontend: Validiert Formulardaten (mit Hilfe einiger Funktionen aus der functions.php) |
formulars_check.php | Frontend: "Überprüft ein Formular mit Hilfe der Validierung aus der formulars_bin.php und führt anschließend einen Redirect auf die Fehler oder Erfolgsseite aus und speichert den Fehlertyp in der aktuellen SESSION" |
formulars_denie_burgle.php | Frontend: Verhindert, dass die Formular-Routinen über den Browser aufgerufen werden können |
formulars_send.php | Frontend: Nach erfolgreicher Validierung sendet diese Datei schließlich die Mails |
functions.php | Core: "Beinhhaltet im wesentlichen eine Funktionensammlung und vor allem auch wichtige Funktionen, welche z.B. das Parsing der Texte übernehmen oder Plugins laden" |
GERMAN.LICENSE | |
header.php | Backend: Initialisiert Sessions, prüft auf Updates und implementiert den HTML-Kopf des Backends |
horizontalmenu.php | Backend: Implementiert die horizontale Navigation im Backend (Einstellungen, Rechte, Hilfe, ...) |
incomplete.php | Install: "Wird aufgerufen, wenn noch Dateien im Update-Verzeichnis liegen, welche gelöscht werden müssen - gibt also eine Benachrichtigung aus" |
languages.inc.php | Backend: Dient nur dazu, die aktuell aktive Sprache zu laden - nutzt dazu die Sprach-Engine aus dem Plugin-Ordner |
lgpl.txt | |
loginpage.php | Backend: Loginpage :-D |
messages.php | Backend: "Wird kaum noch benutzt. Stellte einmal eine zentrale PopUp-Datei dar, welche diverse PopUps realsierte. Wird aber aktuell nur noch benutzt um einige wenige PopUps einiger Plugins zu realisieren" |
print_text.php | Frontend: "Realisiert eine Druckfreundliche Seite, auf welche standardmäßig im Frontend durch den Drucken-Link verwiesen wird" |
stats.php | Frontend: "Implementiert eine Auflistung einer Besucherstatistik zu einer bestimmten Gruppe" |
tinymce.inc.php | Backend: Beinhaltet den JS-Code zur Implementierung des WYSIWYG-Editors |
VERSION | beeinhaltet die DynPG-Versionsnummer |
verticalmenu.php | Backend: Implementiert das linke, vertikale Menü im Backend und lädt dazu auch die durch die Plugins vorgegebenen Menüpunkte |
Tabelle 4.3. DynPG - die wichtigsten Dateien