Zuletzt besucht
Ausgewählte Projekte
- Platinen ätzen
- Das M.T.F.
- Bürstenloser-Motor Treiber
- Nintendo DS Mod
- Handy Modifikation
- STM32F429 Mac Tutorial
Web Applikationen
Links
Andere Projekte
- Kettensägen Fahrrad
- STM32F429 LCD Beispiel
- Mein PHP Content Managing System
- PHP Bildverarbeitung
- Rücklauftransformator-Treiber
- Atari Punk Konsole
- Teensy - ESP8266 - Interface
- Handy Ladestation
- 4-Bit Addierer
Meta
Das Content Managing System meiner Homepage
Dec 2015
In diesem Artikel möchte ich das Content Managing System (CMS) meiner Webseite vorstellen. Da alles hier ein Produkt meiner Programmierung ist, möchte ich diese auch präsentieren. Beim Webprogrammieren passiert das meiste hinter den Kulissen. Der Besucher sieht nur die Ausgabe.
Dieser Artikel beleuchtet nun den Code, der den Inhalt der Seite wiedergibt. Er ist ausschließlich in PHP geschrieben.
Überblick darüber, wie das CMS funktioniert
Im Vergleich zu anderen kostenlosen CMS, welche auf dem Server installiert werden können, ist diese CMS winzig. Sie ist aber alles was ich brauche, und es hat Spaß gemacht sie zu programmieren.
Wenn du eine Seite aufrufst, indem du ihre URL eingibst (z.B.: monoclecat.de/?l=etching), dann führst du eine GET-Anfrage mit der Variable l gleich „etching“ aus. Dann durchsucht der Code die Datenbank nach einer Seite, die „etching“ heißt. Der Inhalt der Datenbank-Zeile wird nun in ein Skelett gefüllt, welches die Grund-Struktur jeder Seite enthält (Banner oben, horizontales Menü, Menü auf der rechten Seite, Fußbanner unten). Das Ergebnis ist das, was du in deinem Browser siehst, zum Beispiel auf dieser Seite hier.
Die Datenbank
Die Datenbank-Tabelle „CMS“ enthält alles, was das Skript zum aufbauen einer funktionalen Seite benötigt. Hier ist ein Beispiel mit zwei Seiten, an denen man die Datenbank-Struktur erkennen kann: (Scrolle nach rechts um die Tabelle in ihrer Gesamtheit zu erfassen)
Id | Name | Label | Hauptbild | Erstellt | Zeigename | Vorgestellt | Titel | Überschrift | Zusammenfassung | Haupt |
10 | 4-bit-addierer | Projekt | 48 | 2014-06 | 4-bit Addierer | no | 4-Bit-Adder Monoclecat.de | 4-Bit-Adder aus Logik-Gattern | Ein 4-Bit Addierer, den ich in der 10. Klasse... | In der 10. Klasse im... |
4 | über | über | 2015-12 | Über mich | nein | Über mich Monoclecat.de | Über mich | Über mich und die Geschichte dieser Seite | Hallo, mein Name ist Andrew... |
Wie du sehen kannst, gibt es viel mehr zu einer Seite als einen Titel (zu sehen im Tab im Browser), einen Namen (auf dies muss die l-Variable gesetzt sein) und dem Inhalt. So sind auch die Links im Menü auf der rechten Seite mit PHP aufgebaut. Um da einen schönen Namen darstellen zu können, braucht die Datenbank die Spalte „Zeigename“.
Auf der Willkommens-Seite wird der Newsfeed ebenfalls mit einem Skript aufgebaut. Hier sind noch weitere Informationen notwendig. Die Datenbank beliefert das Skript mit dem Hauptbild der Seite, einer Überschrift und einer Zusammenfassung.
Hinzufügen einer neuen Seite/ Ändern einer bestehenden Seite
Um etwas zu ändern oder hinzuzufügen, muss man zunächst einloggen, damit die Seite weiß, wer der Nutzer ist und welche Rechte ihm geben muss. Nachdem man sich eingeloggt hat und eine Seite besucht, baut sie sich auf, als ob man ein normaler Besucher wäre. Unter der Seite erscheint jedoch ein Formular mit den Einträgen der Datenbank, die man dann ändern kann. Mit einem Klick auf „Save“ wird die Datenbank aktualisiert.
Hier ist ein Beispiel dieses Modus:
Der Code
Der Code für den CMS besteht aus zwei PHP Dateien, io.php und cmsstuff.php. io.php ist das „Skelett“, welches oben genannt wurde. Es ist ein Körper, welches mit Inhalt gefüllt wird, wenn du eine Seite lädst. Du bist auch gerade auf io.php; es ist nur nicht unbedingt in der URL sichtbar. Anstatt "monoclecat.de/?l=CMS" kann man nämlich auch "monoclecat.de/io.php?l=CMS" schreiben. cmsstuff.php läuft im Hintergrund und führt die wichtigen Skripts aus, die mit der Datenbank kommunizieren und dessen Inhalt anzeigefertig macht.
Der Code für mein CMS ist open-source und ist hier auf meinem Github Account verfügbar. Falls du den Code verwenden willst musst du ein paar Teile löschen, da sie Funktionsaufrufe an Skripte beinhalten, die hier nicht enthalten sind.