Kategorie:Entwicklerdoku

Aus DynPG-Wiki
Wechseln zu: Navigation, Suche
Dieser Artikel ist möglicherweise unvollständig. Fügen Sie Informationen hinzu, wenn Sie können!


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:

Verzeichnis
Beschreibung
./ 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.:
  • DPGdynmenu (Hauptmenü)
  • DPGguestbook (Gästebuch)

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, ...


Name
Beschreibung
compatible Template das Kompatibilität mit alten DynPG-Versionen wart
default Enthält die Standard-Templates für alle anzuzeigenden Listen / Artikel etc.
home Templates für die Startseite.
en englisch-sprachiges Template
print Templates für die Druckansicht
rss Template zum Bauen eines Rss-Feeders (Artikel werden als XML-Code gelistet)
jspool Javascript-Template mit dem in bestimmten Gruppen ein Zufallsbild erzeugt werden kann.
BELIEBIG Man kann natürlich auch sein eigenes Template erstellen und die verschiedenen Ansichten selbst neu definieren!

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:

Name
Beschreibung
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

Template-Engine

DynPG besitzt eine Template-Engine, mit der es möglich ist, die Art und Weise wie Artikel und Listen, etc. angezeigt werden, zu verändern. Die Templates für die Basisfunktionalitäten des CMS befinden sich in tpl/MyCMS/. Indem man dort einen neuen Ordner erstellt, wird in DynPG ein neues Template registriert, mit dem Namen des Ordners. In dem Ordner müssen nun bestimmte .tpl-Dateien erstellt werden um gewisse Ansichten zu beeinflussen:

  • articles.tpl (Artikellistenansicht)
  • detail.tpl (Artikeldetailansicht)
  • groups.tpl (Gruppenlistenansicht)
  • home.tpl (Startseitenansicht)
  • navigation-pages.tpl(weiter-/zurück- Buttons, wenn eine Liste sehr lang ist)
  • search-form.tpl (Suchform)

Die Templates werden bei der Benutzung folgendermaßen gesetzt:

$DynPG->setupTemplate("OrdnerName");

Wenn man nun etwas per Write_Article() etc. ausgibt, wird dieses Template und die darin definierten Ansichten verwendet (der Code innerhalb dieser Dateien wird an der passenden Stelle eingesetzt). Wie man Templates erstellt, wie die Sprache funktioniert und welche Template-Variablen es gibt, kann man hier nachlesen.

Seiten in der Kategorie „Entwicklerdoku“

Es werden 2 von insgesamt 2 Seiten in dieser Kategorie angezeigt: