Eigenes CMS erstellen
Erstelle dein eigenes CMS mit unserem Tutorial. Dabei lernst du bestimmt einiges neues in Sachen Webentwicklung mit PHP. Als Ergebnis bekommst du die Basis von ContentLion, unserem Open Source CMS.
Ursprünglich wurde dieses Tutorial im Blog auf SteviesWebsite veröffentlicht.
Mach doch am besten selbst mit. Lies dir die Artikel durch und baue dein eigenes CMS. Durch unser Forum kannst du auch selbst Einfluss auf die aktuelle Entwicklung nehmen. Dort helfen wir dir gerne weiter, wenn mal Probleme auftreten.
Für alle die das CMS vorher einmal durchsehen möchte, hab ich ein kleines Video gedreht. Es zeigt das CMS nach dem Artikel 93. Natürlich kannst du auch die aktuelle Version des CMS kostenlos herunterladen.
Warum ein eigenes CMS?
Es gibt bereits unzählige Content-Managment-Systeme da draußen. Doch bei den großen Systemen hat man oft nicht die Chance selbst an der Entwicklung teilzuhaben. Das möchten wir anders machen. In dem CMS Tutorial haben wir bis 2011 bereits über 250 Artikel geschrieben, die die Entwicklung dokumentiert.
Wenn du die durchgearbeitet hast, hast du neben neuen Kenntnissen in PHP auch die besten Voraussetzungen, um dein Projekt so zu gestalten, wie du es gerne hättest. Wenn etwas nicht passt, kannst du mit deiner Erfahrung ein Plugin entwickeln und so das CMS nach deinen Wünschen anpassen.
Was benötige ich dafür?
Es ist leichter für dich, wenn du bereits erste Vorkenntnisse in PHP hast. Du musst aber kein Profi sein. Wenn es Probleme gibt, kannst du dich gerne bei uns melden.
Außerdem brauchst du einen Apache Webserver, PHP und eine MySQL Datenbank. Mit der Installation von XAMPP bekommst du sofort alles auf einmal. Für die Entwicklung selbst kannst du auch das Notepad verwenden. Wenn du etwas mehr Komfort möchtest, kannst du auch zu Netbeans greifen.
- Eigenes CMS erstellen
- Konzeption Grundgerüst CMS
- Dateisystem des CMS
- CMS: Datenbank Einstellungen in dbsettings.php
- CMS Einstellungen in der MySQL-DB
- MySQL Verbindung aufbauen
- CMS Einstellungen auslesen
- Content auf die Seite bringen
- Sicherheit des Include-Befehls
- Schöne Urls im CMS – Mod Rewrite sei dank
- Seiten in der Datebank registrieren
- Das HTML-Grundgerüst fürs CMS
- CMS Skins registrieren
- PHP SkinController
- CMS Kernsystem in eine eigene Klasse packen
- Komplettes (X)HTML in den Skin auslagern
- Globale Meta-Tags in der DB speichern
- Lokale Meta-Daten speichern / auslesen
- Seiteneinstellungen in der Klasse Page
- PHP Breadcrumb erstellen
- Die CMS Menü Klasse
- Lokale und Globale Navigation im CMS
- XHTML Validation verbessern
- Die 4 Farben des CMS Standardskins
- Farbeinstellungen speichern und auslesen
- Websitehintergrund mit Verlauf
- Globales Menü ausrichten
- Website Container erstellen
- Content-Bereich nach rechts schieben
- Lokales Menü ein/ausblenden
- CMS Titel anzeigen
- CMS CSS-Stylesheet auslagern
- Das Login-Formular zum Admin-Bereich
- Den Admin in der DB anlegen
- Admin Passwort prüfen & User Klasse erstellen
- Login Status speichern
- Admin Menü erstellen
- Seiten im Admin-Bereich auflisten
- Icon-Verzeichnis anlegen
- Form Design für Seite bearbeiten erstellen
- Die Settings-Tabelle wird erweitert.
- Ausgeben der Einstellungsmöglichkeiten
- CSS braucht ein Admin-Bereich
- Form im Design, oder Design in Form?
- Ein paar kleine CMS Updates…
- Die CMS Menüs bekommen Namen
- Menüs im Admin-Bereich auflisten
- Menü Aktionen anlegen
- Editierbare Menüs im Admin-Bereich ausgeben
- Seitendesign Menü bearbeiten
- Einstigspunkt - Der Code & Blog Jubiläums Beitrag
- CMS: Menü Eintrag hinzufügen
- Menü-Einträge Bearbeiten Teil 1
- Menü-Einträge Bearbeiten Teil 2
- Menü Einträge löschen
- Menü auswählen im ‘Seite Bearbeiten’
- Datenbank-Daten bei ‘Seite Bearbeiten’ verwenden
- Inhalt auslesen bei ‘Seite bearbeiten’
- ‘Seite Bearbeiten’ goes WYSIWYG
- Konfigurieren von WYSIWYG
- Seite speichern Teil1
- Seite speichern Teil 2
- Neue Links für CMS!
- Neues Menü erstellen
- Bugfix: Nur ein Menü auswählen
- Bugfix: Primary Key Meta-Tags
- Neue Seite anlegen Teil 1
- Neue Seite anlegen Teil 2
- Seite löschen
- Menüs löschen
- MySQL Tabellen auflisten für leichtere Administration
- Benötigte Klassen automatisch laden
- Tabellen auflisten mit Unterseiten
- Tabellennavigation der db.php
- MySQL Spalten auslesen und anzeigen
- Einstigspunkt - Aktueller Stand Eigenes CMS
- Tabelle mit Daten befüllen
- Tabellenanzeige verschönern
- Bugfix: $dbpraefix wurde missachtet
- Aktionen & Checkbox Tabellenansicht
- Datensatz bearbeiten anzeigen
- Bugfix Tabellenansicht: Checkbox nicht Checkbar
- Validierung Datensatz bearbeiten
- Seitenwechel Tabellenansicht
- Speicherung Daten DBManager Teil 1
- Renner Bugfixes
- Sicherheitslücke in der Verzeichnisstruktur
- Speicherung Daten DBManager Teil 2
- Bugfix: Doppeltes Admin-Login
- Einstellungen speicherbar machen
- Upload-Script integrieren
- Order-Funktionalität
- Upload-Erweiterung
- Bildserver
- Admin-Bereich: Neues Menü + Dashboard
- Widget-System
- Logout + CustomCSS
- PluginInfos anzeigen
- EventManager
- Plugin (de)aktivierung (CMS)
- 100 Artikel CMS Tutorial (+Namensverkündung)
- Bugfix: Upload
- Events werfen Teil 1
- Events werfen Teil 2
- Events werfen Teil 3
- Basis des Installers
- Installer Schrittliste
- Installer mit Design
- Navigation des Installers
- Schrittfestlegung, Willkommenstext + Lizenz
- ContentLion Lizenz
- Systemcheck
- Datenbankeinstellungen
- Installer Formulare befüllen
- Website Einstellungen
- Datenbank-Einstellungen speichern
- Tabellen anlegen
- Zeilen Einfügen
- Installation entfernen
- Meta Daten erstellen Teil 1
- Meta Daten erstellen Teil 2
- Dateien löschen
- Ordner löschen
- Plugin Einstellungen
- Typisierte Einstellungen Teil 1
- Vorschaufunktion
- Typisierte Einstellungen Teil 2 + Bugfix
- ColorPicker
- MenüSelector
- SkinSelector Teil 1
- SkinSelector Teil 2
- Einstiegspunkt – Datenbankklasse Teil 1
- Datenbankklasse Teil 2
- Datenbankklasse Teil 3
- Datenbankklasse Teil 4
- Datenbankklasse Teil 5
- Datenbankklasse Teil 6
- Datenbankklasse Teil 7
- Datenbankklasse Teil 8
- Datenbankklasse Teil 9
- Datenbankklasse Teil 10
- Datenbankklasse Teil 11
- Mobile CMS
- Mobile Skinselector
- Redirect nach Admin-Login
- Ordnerfunktion bei Seiten
- Globales Menü aus Einstellungen verbannen
- Skinspezifische Einstellungen
- Submenüs Teil 1
- Submenüs Teil 2
- Einstiegspunkt – Update Installer
- Template Engine
- Benutzerübersicht
- Einstiegspunkt – Role-Tabelle + Update Installer (CMS)
- Die Role Klasse
- Seitentypen Teil 1
- Seitentypen Teil 2
- Benutzer Login
- Rollenspezifische Einstellungen auslesen
- Rollenspezifische Einstellungen Speichern Teil 1
- Rollenspezifische Einstellungen Speichern Teil 2
- Rollenspezifische Einstellungen Speichern Teil 3
- Einführung Namespaces
- Globales Menü + Bugfix in Settings
- Template Overwriting
- Zugriffsverwaltung
- Seiten-Templates
- Mehrsprachigkeit
- Icon – Klasse
- Menü Templates Teil 1
- Menü Templates Teil 2
- Menü Templates Teil 3
- Templates Dateisystem
- Template Plugins
- Seitentyp Dashboard Teil 1
- Fazit ContentLion Live Vol. 1
- Bugfix Installer + Root-Verzeichnis speichern
- WidgetTypes
- Backend Skin
- Seitentyp Dashboard Teil 2
- Seitentyp Dashboard Teil 3
- Seitentyp Dashboard Teil 4
- Seitentyp Dashboard Teil 5
- Seitentyp Dashboard Teil 6
- Seitentyp Dashboard Teil 7
- Seitentyp Dashboard Teil 8
- Seitentyp Dashboard Teil 9
- Einstiegspunkt – Wichtiges ContentLion Update
- Einstiegspunkt – Pagelist Widget
- Einstiegspunkt – Filelist Widget
- Einstiegspunkt – Contentlion warnungsfrei
- ContentLion zieht um! + weitere Neuerungen
- ContentLion funktioniert nun auch in Unterverzeichnissen!
- Menüauflistung im Dashboard
- Logout Button im Backend
- Breadcrumb im Backend
- Neues Backend Menu Teil 1
- Coding Guidlines für ContentLion
- Neues Backend Menu Teil 2 (+Gewinnspiel)
- Neues Backend Menu Teil 3
- ContentLion Updater
- Seitentyp Settings
- Seitentyp Plugins
- Fazit ContentLion Live Vol. 2
- Implementierung Standardskin Part 1
- Neuen Ordner erstellen
- Seitentyp Neue Seite erstellen
- Seitentyp “Seite bearbeiten”
- Seitentyp “Logout”
- Exception-System
- Überarbeitung Settings-Komponente
- Menüumzug ins neue Backend
- Übersetzung der Datenbankeinträge
- Seiten in Datenbank speichern
- ordner- und seitenspezifische Einstellungen
- Caching
- Settingswidget
- 2 Wireframes für ContentLion
- Rollenliste
- ContentLion IssueKiller-Woche beginnt!
- Geplante Tasks + Actionlists
- Wigets im Skin, Dateien umbenennen
- Die IssueKiller-Woche geht zu Ende…
- Zeitplan bis zur ContentLion Alpha
- Rollenveraltung
- Benutzerveraltung
- Prüfen ob SQLite vorhanden
- Plugineinstellungen
- ContentLion Website Designvorschlag
- Neue Pluginliste + Über-Seite
- Mediathek im FileListWidget
- Upload-Überprüfung
- ContentLion Alpha – Download jetzt!
- Plugin Wunschliste ContentLion
- Vorschlag für mehr Arbeitsfläche im ContentLion Backend
- ContentLion Alpha 1.1 kommt am 21. November
- ContentLion Alpha 1.1 ist raus!
- ContentLion KW 46/2010
- ContentLion KW 47/2010
- Formulare Erstellen mit ContentLion
- ContentLion KW 48/2010
- Fazit: Mein erstes Projekt mit ContentLion geht online
- ContentLion KW 51/2010
- ContentLion KW 52/2010
- ContentLion wird in Kürze selbst gehostet
- ContentLion KW 53/2010
- ContentLion Alpha 1.2 ist fertig!
- Entwurf: Skin-Wizard für ContentLion
- ContentLion Issues sind umgezogen!
- Tutorial: ContentLion erweitern
- Aufbau ContentLion eines ContentLion-Plugin
- ContentLion API – Erste Pläne
- ContentLion Blogs gehen online!
Das ist nichts das Ende der Entwicklung! Wir sind stetig dabei das CMS und seine Plugins weiterentwickeln und zu optimieren. Hilf doch mit!
Bild von SURZnet / Pixmac


