Ein einfacher include
Die Template-Engine dieses kleinen Content Management Systems ist in der Lage, Templates zu einer Seite zu laden bzw. zu rendern. Doch was, wenn das Template selbst weitere Templates einbettet und diese zuvor laden muss? In diesem Fall kommt ein PreFilter-Plugin zum Einsatz und könnte beispielsweise den folgenden Programmcode besitzen:
$this->registerPreFilter(function ($rawContent)
{
while (preg_match("/{{include:(.*?)}}/", $rawContent)):
$rawContent = preg_replace_callback("/{{include:(.*?)}}/", function ($matches)
{
return file_get_contents('templates/'.$matches[1].'.html');
},
$rawContent
);
endwhile;
return $rawContent;
});
Code
NiftyCMS - ein eigenes CMS entwickeln - Die Entwicklung eines eigenen Content Management Systems (CMS) mag auf den ersten Blick wie eine entmutigende Aufgabe erscheinen. Große Systeme wie WordPress oder Joomla scheinen unendlich komplex und sind das Ergebnis jahrelanger Arbeit großer Entwicklerteams. Doch die gute Nachricht ist - Ein CMS muss nicht komplex sein, um effektiv zu sein. Mit den richtigen Grundlagen, einem klaren Fokus und einer überschaubaren Zielsetzung kann jeder Entwickler - ob Einsteiger oder erfahrener Programmierer - ein eigenes, maßgeschneidertes CMS erstellen.
Die Webseite ist Mitglied im Amazon Partnernet und kann mit Verkäufen über Affiliate-Links, den Betrieb der Seite etwas unterstützen - für Sie ist das natürlich vollkommen kostenlos.
Der PreFilter wird vor dem Rendering durch die Template-Engine gestartet und erhält das Template in der Variable $rawContent
übergeben. Entdeckt der PreFilter innerhalb des Templates das Suchpattern {{include:template-datei}}
, dann läd es die angegebene Templatedatei hinzu, ersetzt den Token durch den neuen Inhalt und gibt das neu entstandene Template zurück. Dies macht der PreFilter so lange, wie auch includes im Template existieren (while
).
Der PreFilter nutzt für diese Funktion den speziellen PHP-Befehl preg_replace_callback()
, der einen Callback auf eine function
ermöglicht.

Mein Name ist Oliver Lohse und ich bin seit etwa 41 Jahren als Programmierer in den Sprachen bzw. Markup- und Struktur-Dialekten Java, JEE, JavaScript, React, VAADIN, COBOL, PHP, Python, HTML, CSS, Json, YAML, SQL und XML tätig. In dieser Zeit konnte ich viele Aufgabenstellungen und Alphaprojekte, als Entwickler in der Versicherungswirtschaft, erfolgreich abschließen. Zudem bin Ich Buchautor und Betreiber bekannter Webseiten, im Bereich CMS-Entwicklung und Bildbearbeitung, mit etwa 1,2 Mio Lesern jährlich.