
Website mit phpCMS erstellen
Zur besseren Wartbarkeit, sollte von Anfang an Inhalt und Darstellung getrennt verwaltet werden. Für kleinere Projekte, bei denen ein "Profi" Content Management System der Overkill wäre, eignet sich für diesen Zweck phpCMS, das auch auf dieser Website Verwendung findet. Nachfolgend ein Überblick zu den Bausteinen dieses dateiorientierten Template Systems.
Dieser Workshop stellt eine Kurzeinführung in das Template Framework phpCMS dar und soll einen Überblick zu diesem System bieten. Er erhebt keinen Anspruch auf Vollständigkeit; Einzelheiten finden sich bei Bedarf auf den entsprechenden Doku-Seiten von phpCMS.
So geht es los
Installation von phpCMS
Nach Installationanweisung der phpCMS Dokumentation und sofortige Absicherung der Installation z.B. Änderung der Standardpasswörter
und Entfernung nicht mehr benötigter Installationsdateien.
Konfiguration des Webservers
Der Webserver bzw. das Verzeichnis mit dem phpCMS Projekt ist so zu konfigurieren, dass Dateien der Extension *.htm nicht
direkt vom Webserver ausgeliefert werden, sondern an den Parser von phpCMS weitergereicht werden und von diesem verarbeitet werden können.
Der Parser durchsucht die entsprechenden Dateien nach Schlüsselworten und ersetzt diese entsprechend der Angaben in den
zugeordneten Konfigurationsdateien und liefert im Anschluss das Ergebnis des Parserlaufs aus.
Die Bausteine eines phpCMS Projekts
Projektdatei: Die zentralen Definitionen des Projekts
Template: Layout mit zentralen Definitionen und Styledefinitionen
Tags: Häufig verwendete benannte Textbausteine
Menüdatei: Legt die Navigationsstruktur fest
Menütemplate: Vorlage zur Darstellung der Menüdefinition
Content: Der eigentliche Inhalt, den der Benutzer über den Webserver anfordert.
Das Zusammenspiel der Bausteine
Eine Content Datei wird angefordert
Die .htm Datei wird, sofern der Webserver entsprechend konfiguriert wurde (siehe oben), vom Parser ausgewertet und verarbeitet.
Der Inhalt sieht ähnlich wie im folgenden Beispiel aus:
〈PROJECT〉 ./templates/projekt.ini 〈MENU〉 00.00.01 〈TITLE〉 Beispiel 〈CONTENT〉 Hier steht der Content drin...
Die Sektion "PROJEKT" in diesem Beispiel verweist auf eine Projektdatei, welche die Steuerzentrale für gleichartige Seitentypen darstellt. In dieser Projektdatei wiederum sind alle relevanten Pfade verzeichnet, die für das Parsen einer Content-Seite erforderlich sind. Dazu gehört die Definition eines HOME Pfades, der Verweis auf eine TAG-Datei, in welcher wiederkehrende Textbausteine definiert werden, der Templatepfad mit dem die Content-Seite geparst werden soll, sowie der Pfad mit der Menüdefinitionen für die Homepage.
Die Sektion "MENU" legt fest, zu welchem Menüpunkt der dargestellte Content gehört. Die Menüstruktur selbst wird in der Projektdatei an zentraler Stelle definiert.
Unter Sektion "TITLE" und Sektion "CONTENT" sind jeweils die Inhalte notiert,
die im zuständigen Template als Platzhalter definiert wurden. Diese Platzhalter werden durch das unter der jeweiligen Sektion stehende
entsprechend ersetzt. Selbstverständlich können beliebig viele Platzhalter im Template definiert werden: gibt es eine entsprechende Sektion
in der .htm Datei, wird der Inhalt in den Platzhalter eingefügt; anderfalls bleibt der Platzhalter leer.
Die Template Datei
Templates sind mit Dokumentvorlagen in der Textverarbeitung Word vergleichbar. Ein Template ist wie eine normale HTML-Datei,
in die Platzhalter für Felder einsetzt werden können. Die Platzhalter werden dann durch die Inhalte ersetzt,
die unter der gleichen Feldbezeichnung in den Content-Dateien stehen. Dadurch wird der Inhalt einer Website vom Layout getrennt.
Spätere Änderungen am Layout werden am Template durchgeführt und wirken sich auf die gesamte Website aus. Als Feldbegrenzer kommt wieder
das Klammerpaar der spitzen Klammern zum Einsatz.
Die TAG Datei
In einer TAG Datei werden häufig benötigte Elemente definiert, welche innerhalb einer Contentdatei durch simples Einfügen eines dafür
definierten Platzhalters eingefügt werden können. Die spätere Änderung der Tags, kann einfach durch Änderung der Tag-Datei geschehen
und schon werden automatisch alle Tags Ihrer Site durch die neue Definition ersetzt.
Die Menü Datei
In der Menü Datei wird zentral die Navigation der gesamten Website festgelegt. Über Menünummern werden die einzelnen Seiten innerhalb
der Menüstruktur identifiziert. Technisch aufgebaut wie eine CVS Datei können hier bei Bedarf zusätzliche Felder hinterlegt werden.
Der Parser erstellt mit Hilfe eines zusätzlichen Menütemplates automatisch die Navigation.
Weitere Bausteine
Zusätzlich zu den vorher genannten Bausteinen, könnnen weitere Bausteine hinzugefügt werden z.B. in Form von Include Dateien, eigenen
Scripten, Plugins oder sogenannter PAX Scripte. Das System phpCMS ist hier sehr variabel und der Einsatz hängt eigentlich nur von
der Phantasie des Webmasters ab. Eine Behandlung dieser Bausteine würde jedoch den Rahmen dieser Einführung sprengen...
Der Weg zur Website
- Beginnen sollte man zweckmässig mit einem Prototypen des Layouts inklusive der CSS Dateien. Bei diesem Prototyp achte man sorgfältig
darauf, dass man die Bereiche für statische Inhalte, dynamische Menüstruktur und dynamische Inhalte des Contents identifiziert und mit
entsprechenden Platzhaltern versieht. Für den Prototypen kann man entweder auf einen der Vorlagen von phpCMS zurückgreifen oder vorzugsweise
selbst einen erstellen. Wie man zu diesem Prototypen kommt, ob Erstellung mit Papier und Bleistift oder mit Bildbearbeitung wie z.B.
Photoshop, hängt von den persönlichen Präferenzen ab. Das Ergebnis ist die Template Datei.
- Aufgrund der vorhergehenden Analyse des Layouts, hat man nun einen Überblick über häufig wiederkehrende Elemente auf der Website.
Diese Elemente lagert man zweckmässigerweise in eine Tagdatei aus.
- Anschliessend beschäftigt man sich mit der Gestaltung der Menüstruktur. Ggf. verwendet man vorübergehend Dummydaten, welche die zu
erwartenden Realdaten von Quantität und Qualität möglichst gut abbilden.
- Mit der Erstellung der zentralen Projektdatei fällt der Startschuss für das schrittweise Füllen der Website mit Content...
Weiterführende Informationen zu phpCMS
Gibt es auf der phpCMS Website...
phpCMS Dokumentation