Dokumentation


Download und Installation von FlightCMS. Erster Beitrag und Kategorie. Tipps und Tricks für eigene Anpassungen

Download Installation Setup

FlightCMS   2024-01-29

So lädst du FlightCMS herunter, installierst es und richtest das Content Management System fix und fertig auf deinem Server ein.

Logfiles im CSV-Format

FlightCMS   2024-01-28

Damit du den Zustand deines CMS gut mit Excel überwachen kannst, werden Log- und Debug-Files als csv gespeichert.

Beiträge Sortierreihenfolge

FlightCMS   2024-01-28

Beiträge kannst du in FlightCMS ganz einfach nach Datum oder Titel, auf- oder absteigend sortieren.

Erster Beitrag

FlightCMS   2024-01-26

In FlightCMS kannst du bestimmte Beiträge für den Leser besonders hervorheben.

htaccess

FlightCMS   2024-01-25

Das zentrale Routing wird mit dem PHP-Programm index.php abgewickelt, das im Wurzelverzeichnis liegt.

Bot- und Spider Sperre

FlightCMS   2024-01-24

FlightCMS sperrt alle nervigen Bots und Spider des Internets aus.

Sperrung suspekter IP

FlightCMS   2024-01-23

FlightCMS sperrt IP-Adressen fragwürdiger oder falcher Zugriffe automatisch für 24 Stunden.

Routing

FlightCMS   2024-01-22

Das zentrale Routing wird mit dem PHP-Programm index.php abgewickelt, das im Wurzelverzeichnis liegt.

PostController

FlightCMS   2022-07-11

Der PostController wickelt den Arbeitsprozess des CMS für einen konkreten Beitrag ab.

PagesModel

FlightCMS   2022-07-11

Das PostModel greift auf die physikalischen Daten des Beitrags und des Content zu und gibt sie an den Aufrufer.

HomeController

FlightCMS   2022-07-11

Der HomeController wickelt den Arbeitsprozess des CMS für die Startseite des CMS ab.

CategoryController

FlightCMS   2022-07-11

Der CategoryController wickelt den Arbeitsprozess des CMS für die Anzeige einer Kategorie ab.

Was ist Routing überhaupt?

Unter dem Routing versteht man die funktionale Aufteilung einer URL bzw. eines Requests an eine Webseite, in verschiedene Funktionsbereiche. Ein typisches Routing wie das folgende:

webseite.de/kategorie/beitrag

Route eines Beitrags

unterteilt den Request dementsprechend in eine Kategorie und in einen Beitrag auf. Dementsprechend ist Parameter 1 die Angabe der Kategorie und Parameter 2 der betreffende Beitrag den der Leser anfordert. Würde der Leser folglich:

webseite.de/kategorie

Route einer Kategorie

im Browser als URL anfordern, wüsste das CMS, das es sich um eine Kategorie handelt und nicht um einen Beitrag.

Standardrouting im FlightCMS

FlightCMS nutzt ein solches Standard-Routing, wie es eingangs schon beschrieben ist und weist jeder dieser Routen eine Funktion zu. Nachdem das Flight Microframework im Startscript index.php geladen wurde, kann es die Routen erkennen und eine Verarbeitung durch einen dedizierten Controller je Route starten.

Flight::route('/', function () {
    // Verarbeitung der Startseite ==>
});

Flight::route('/@category', function ($category) { 
    // Verarbeitung einer Kategorie ==>
});

Flight::route('/@category/@post', function ($category, $post) {
    // Verarbeitung eines Beitrags ==>
});

Standardrouten

Mit diesem Routing ist das Content Management System in der Lage auf die folgenden drei Routen zu reagieren:

und kann in Abhängigkeit dieser drei Zustände eine spezielle Verarbeitung ausführen, wie zum Beispiel die Landingpage zeigen, eine Kategorie laden oder einen konkreten Beitrag im Browser des Lesers anzeigen.

Im fertigen CMS müssen natürlich noch weitere Routen angelegt werden, die sich beispielsweise um das Fehlerhandling kümmern falls mehr als die dreistufige Route verarbeitet werden muss. Dazu aber später mehr.

Der Controller

FlightCMS nutzt das so genannte MVC-Pattern (Model View Controller) für die pragmatische Unterteilung des Programmcodes in kleine logische Funktionseinheiten. Im konkreten Fall, treffen Sie beim Routing bereits auf die so genannten Controller dieser Programm-Vorschrift.

Controller sind als Steuereinheiten (reguläre PHP-Programme) zu verstehen, die Parameter entgegen nehmen können und die Verarbeitungen in einen programmatischen Ablauf bringen. Wie der Name schon sagt, kontrolliert und regelt er eine spezifische Verarbeitung, greift jedoch nicht direkt auf Daten zu (wird durch das Model abgewickelt). Folglich würde die index.php wie folgt um die so genannten Controller erweitert werden:

Flight::route('/', function () {
    $controller = new HomeController();
});

Flight::route('/@category', function ($category) { 
    $controller = new CategoryController($category);
});

Flight::route('/@category/@post', function ($category, $post) {
    $controller = new PostController($category, $post);
});

Controller

Dementsprechend haben Sie einen HomeController.php, der sich um die Verarbeitung kümmert, wenn der Leser die Startseite besucht. Der CategorieController.php startet die Verarbeitung, wenn der Leser eine Kategorie über den Browser vom CMS anfordert. Und letztendlich den PostController.php, der sich um die Verarbeitung eines konkreten Beitrags kümmert.

siehe Wiki - MVC Pattern

Hiweis: das MVC-Pattern ist keine eigenständige Programmiersprache, sondern eine Richtlinie, wie Programmcode sinnvoll in übersichtliche Funktionseinheiten untergliedert wird. Da MVC eher als Vorschlag zu verstehen ist, steht es Ihnen natürlich vollkommen frei sich strikt daran zu halten oder von diese Vorschrift hier und da nach eigenem Geschmack abzuweichen.

Parameter für den Controller

Das Flight Microframework ist in der Lage, die Route in Parameter zu unterteilen und diese dem Controller zu übergeben, damit er diese Information weiter verarbeiten kann.

In \ gibt es keinen Parameter, denn der Leser ist in der Startseite und der Pfad dahin ist dem CMS bekannt, denn er ist fix. Mit dem Parameter @category übergibt das Framework dem CategoryController.php den beliebigen Namen der gewünschten Kategorie.

Durch der Parameter @post erhält der PostController.php die Information, welcher konkrete Beitrag durch das CMS geladen werden soll.

Das Model

Das so genannte Model ist dafür gedacht, die Daten aus der Datenbank oder einem Flatfile zu beschaffen und diese dann an den Aufrufer, dem Controller, zu übergeben. Im Falle des FlightCMS, greift das Model auf ein Flatfile zu und liest die dortigen Daten aus und gibt sie zurück an den Aufrufer.

Die Datenstruktur des Flafiles unterliegt der YAML-Syntax und siet etwa so aus:

~~~
Title:       Lorem ipsum
Author:      FlightCMS
Date:        01.01.2024
Logo:        /img/logo.jpg
Description: Lorem ipsum dolor sit amet, consetetur sadipscing elitr...
~~~
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et 
dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet 
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, 
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, 
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea 
takimata sanctus est Lorem ipsum dolor sit amet.
...

Struktur des Beitrags

Die View ist eine HTML-Schablone

Eine View im MVC-Pattern, ist als HTML-Vorlage bzw. Vorschrift zu verstehen. Mit der View definieren Sie einmalig eine Vorlage, wie beispielsweise ein Beitrag im Browser des Lesers auszusehen hat. Diese Definition wird im CMS einmalig erzeugt, und vielfach für ganz unterschiedliche Beiträge verwendet

<html>
<head>
...
</head>
<body>
    <h1> {Title}       </h1>
    <p>  {Description} </p>
    <p>  {Content}     </p>
</body>
</html>

HTML Template

Die oben gezeigte rudimentäre View stellt ein typisches HTML-Rahmengerüst einer Webseite dar. Statt diese Seite mit konkreten Daten zu füllen, werden dort Platzhalter eingesetzt, die das CMS später auf Anfrage durch den Leser mit echten Daten füllt.

Natürlich werden Sie im Downloadpaket des FlightCMS deutlich mehr Views erkennen (dies ist der dynamischen Entwicklung des Projektes geschuldet), der Artikel soll lediglich einen schematischen Einstig in das Thema Views bilden.

Datenschutz


Die Webseite verwendet keine Tracking oder Speichermechanismen, mit dem Zwecke der Weitergabe an Dritte.

FlightCMS verwendet keine Cookies, folglich wird kein Cookie-Banner angezeigt.

Im Falle von korrupten Zugriffen, speichert FlightCMS die IP-Adresse und sperrt diese ggf. für weitere Zugriffe für die Dauer von 24h.

Impressum


FlightCMS ist eine Projektseite für die Entwicklung eines eigenen Content Management Systems. FlightCMS existiert ohne Kenntnis des Projektes FlightPHP.com und unterhält keinerlei Beziehungen dorthin, abgesehen von der Nutzung des kostenlosen Frameworks.

Affiliate


Die gezeigten Affiliate-Links (oben im Text) dienen ausschließlich der technischen Demonstration der Funktionsweise des Affiliate-Plugins. Du musst die Demolinks durch persönliche Links deines Werbepartners ersetzen, um mit Affiliate-Marketing auf deiner Webseite Geld verdienen zu können.

Link-Juice, Blogroll, Backlinks und Referenzen


CMSWorkbench


Tipps und Tricks für den ersten Start mit dem neuen "FlightCMS" auf CMSWorkbench.

Webwiki


FlightCMS ist im Webwiki eingetragen "Webwiki-FlightCMS" und kann dort bewertet werden.

Goermezer


Eine gute "Übersicht von Flatfile Content Management Systemen" von Mustafa Görmezer.

Reintech Media


Check out Article "Building a PHP Web Application with the Flight Micro-framework" by Sasha Bondar.

GIMP-Handbuch


Das renomierte GIMP-Handbuch nutzt "FlightCMS" für die Dokumentation der Tutorials.

pendingWebgo


Der sehr informative Artikel "Was ist ein Flat-File-CMS?"" ist auf Webgo zu lesen (u.a. auch FlightCMS).

NureinBlog


Eine Vorschlagsliste für "Flatfile CMS Vorschläge für ein Flat-File CMS" auf Nureinblog mit FlightCMS als Vorschlag.

GNULinux


Auf GNULinux gibt es eine "Übersicht Flat File CMS" Eine Übersicht über die beliebten Flatfile CMS im Web.

EverybodyWiki


Eine kurze technische Beschreibung auf "FlightCMS" mit wichtigen Links zum Thema.

pendingDomain Factory


Der Artikel "6 CMS die nicht jeder kennt" auf DomainFactory, mit Liste unbekannter Flatfile CMS.

Cyon


5 Gründe, warum ein Flat-File-CMS die bessere Wahl als WordPress und Co. sein kann von Philipp Zeder.

pendingJürgen Schadek


'Statamic CMS Ein frisches & modernes Flat-File-CMS' von Jürgen Schadek zum Einstig in das CMS.

pendingAbteilung


'3 moderne CMS ohne Datenbank' und 'Was können Kirby, Grav & Jekyll?' von Pascal Widmer

pendingAssbach


'Flatfile-CMS Automad, Bludit und Grav im Vergleich' ein sehr lesenswerter Beitrag auf Assbach.

ITsfoss


Eine praktische Liste von bekannten und unbekannten Content Management Systemen des Internets.

pendingContentFly


Eine praktische Liste von bekannten und unbekannten Content Management Systemen des Internets.

pendingTobeWorks


Eine praktische Liste von bekannten und unbekannten Content Management Systemen des Internets.

Wir geben gerne ein bisschen Link-Juice an dich weiter. Wenn du mitmachen möchtest nimm Kontakt mit uns auf, denn das Internet lebt von den Verbindungen der Webseiten untereinander - ansonsten würde das Web sterben.

Kontakt

Sie können mit der Redaktion und Administration mittels eMail Kontakt aufnehmen. Senden Sie eine Mail mit aussagekräftigem Betreff an: Kontakt

MailPNG

Die Webseite nutzt den kostenlosen Service von https://MailPNG.de, um die Klartext Mail-Adresse in ein PNG-Bild umzuwandeln, das ist ein wirksamer Schutz vor Spam und unerwünschtem Datenklau.

FlightCMS - Copyright © by Oliver Lohse - Version: 2.4.02