Content Management System (CMS)

Ein wichtiger Part eines Content Management Systems (CMS) ist das generieren der HTML-Seite. Dies kann in verschiedenen Weisen angegangen werden. Oft sieht man dynamische Systeme in der Art domainnamen-xy.de/index.php?id=1
Dies ist unter dem Gesichtspunkt der Suchmaschinenoptimierung ungünstig (SEO = „search engine optimation“).

In der Regel sind die Inhalte der Seiten statischer Natur. Daher lassen wir unser Programm aus einer Vorlagedatei und den Inhalten einer Datenbank statische Seiten erstellen. Für das Beispiel nehmen wir unsere bereits erstellte Adressbuch-Anwendung (siehe relationen-tabellen-verbinden.htm) und lassen auf Wunsch aus einer Adresse eine HTML-Seite erstellen. Man könnte dies z. B. als Mitarbeiterverzeichnis ansehen.

Content Management System (CMS) - Website aus Datenbank generieren

Schritt 1: ID testen

Die Anwendung erwartet eine ID, damit klar ist, aus welchem Datensatz die CMS-Anwendung die Daten nehmen soll. Ist keine ID vorhanden, dann gibt es auch keine HTML-Seite und das Programm wird beendet.

Schritt 2: Datenbank auslesen

Aus der Datenbank werden die benötigten Felder ausgelesen.

Schritt 3: Vorlagendatei laden

Die Vorlagendatei "vorlage.htm" wird in eine Variable geladen (siehe dateien-auslesen.htm). Davor muss man natürlich erst mal diese Vorlagendatei erstellt haben. Erstellen Sie also eine komplette HTML-Seite mit Design und Co und Platzhalter an den Stellen, an dem die Daten erscheinen sollen. Als Platzhalter sollten wir eine eindeutige Kennzeichnung nutzen, z. B. vor den Vornamen dann "^vorname^". Dieses Dächchen wird sonst i.d.R. nie genutzt. Findet sich auf der Tastatur links neben der 1 und bekommt man erst nach zusätzlichem drücken der Leertaste.

Schritt 4: Ersetzen der Platzhalter

Ersetzen der Platzhalter. Alle Platzhalter müssen durch die Datenbankinhalte ersetzt werden. Die einfachste Methode ist:

PHP-Quellcode: Ersetzen der Platzhalter
$vorlage = str_replace( "^vorname^", 
                        $datenbank[vorname], 
                        $vorlage);

Pfiffiger geht es mit Arrays. Für das Beispiel hier ist es so ausreichend.

Schritt 5: HTML-Seite speichern

Speicher in einer Datei. Dabei sollte der Dateiname eindeutig gewählt werden. Dazu kann z.B. eine Kombination aus „id“ und einem oder mehreren Datenbankfeldern gewählt werden.

PHP-Quellcode: HTML-Seite erzeugen und speichern mit PHP
// und nun die Daten in eine Datei schreiben
// Datei wird zum Schreiben geöffnet
$handle = fopen ( $dateiname, "w" );
 
// schreiben des Inhaltes der Variable
fwrite ( $handle, $vorlage );
 
// Datei schließen
fclose ( $handle );