Plugins


Schreiben Sie eigene Plugins und erweitern damit die Basisfunktionen des CMS um neue individuelle Eigenschaften.

Plugin 'AllPages'

FlightCMS   2024-01-31

Das Plugin AllPages soll alle Seiten aus allen Kategorien des Blog anzeigen.

Plugin 'Blogroll'

FlightCMS   2024-01-27

Das Plugin Blogroll zeigt, für besseres SEO, Links externer Webseiten, um Link-Juice zu teilen.

Plugin 'Affiliate'

FlightCMS   2024-01-25

Mit dem enthaltenen Affiliate-Plugin von FlightCMS, kannst du einfach mit deiner Webseite Geld verdienen.

Plugin 'TableOfContents'

FlightCMS   2023-12-21

Beschreibung des Plugin TableOfContents

Plugin TableOfContents

FlightCMS   2023-12-21

Beschreibung des Plugin TableOfContents

Plugin 'AddAuthor'

FlightCMS   2023-12-21

Beschreibung des Plugin AddAuthor

Plugin Aufbau

FlightCMS   2021-12-21

Grundlegender Aufbau eines FlightCMS Plugins

Plugin 'Sidebar'

FlightCMS   2021-12-21

Das Plugin Sidebat zeigt ein Menü mit allen Kategorien und deren Beiträge an.

Der Start von Plugins über Hooks

Die Pluginschnittstelle von FlightCMS ist so ausgelegt, das Plugins sich an einen so genannten Hook heften und auf dessen Aufruf warten. Ruft das CMS einen bestimmten Hook aus, starten alle Plugins, die für diesen Hook registriert sind der Reihe nach. Das FlightCMS besitzt eine ganze Reihe von Hooks die über die gesamte Laufzeit verteilt sind und bestimmte Verarbeitungszustände des Content darstellen, in denen Plugins sinnvoll eingreifen können. Daneben gibt es noch weitere Möglichkeiten Plugins im CMS zu starten.

Ein Plugin aus dem Template starten

Am sinnvollsten ist der Start von Plugins aus dem spezifischen Template heraus, denn damit wird auch definiert, an welcher Stelle Plugins ihre Ausgaben und Verarbeitungen ausgeben sollen. Grundsätzlich warten Plugins auf den Aufruf eines Hooks zu dem sie sich registriert haben, um mit der Verarbeitung zu beginnen, etwa so:

<h1>Überschrift</h1>
<p>Textbeispiel mit anschließendem Plugin-Aufruf...</p>
...
Flight::hook('afterParseContent', '');
...

Plugin im Template über Hook starten

Das obige Beispiel startet alle Plugins, die auf den Hook afterParseContent warten, zusätzlich kann ihnen noch ein Parameter übergeben werden, falls sie damit etwas verarbeiten müssen.

In einigen Fällen kann die Namensvergabe von Plugins zu ungewollten Störungen des CMS führen. Ursache dafür ist oft, dass es bereits gleichlautende Klassen innerhalb des FlightCMS gibt, wie Beispielsweise Log oder Debug.

Alternativer Start von Plugins

Als alternative Lösung, lässt sich ein einzelnes Plugin in einem Template auch über die statische Plugin-Liste starten, etwa so:

<?php Flight::get('plugins')['afterParseContent'][0]->run(''); ?>

Alternative

Das erste (0 statt 1) Plugin der Gruppe afterParseContent wird ausgeführt. Zugegeben, der Aufruf ist recht kompliziert und kann zu Fehlern führen wenn Plugins beispielsweise ihre Reihenfolge in der Liste verändern. Die nächste Möglichkeit ist etwas sinnvoller nutzbar und wirkt sprechender:

<?php $author = new AddAuthor(); echo $author->run(''); ?>

Alternative

Das Plugin AddAuthor wird im Template an einer ganz dedizierten Stelle starten.

Diese Variante ist besonders dann sinnvoll, wenn das Plugin eine Verarbeitung im Arbeitsspeicher des Browsers erzeugt, die an verschiedenen Stellen des Templates benötigt oder angezeigt werden soll, da es als Objekt im Speicher persistiert wird.

Darüber hinaus ist es auch möglich, das Plugin statisch aus einem Template zu starten, etwa so:

<?php echo AddAuthor::addAuthor(''); ?>

Dafür ist es aber nötig, eine statische Methode, z.B. static function addAuthor(), im Plugin anzulegen. Die bisherigen Pflichtmethoden run() und hook() können leere Inhalte haben und müssen weiterhin existieren, beispielsweise so:

function hook() {}
function run($var) {}

Methoden leer bei statischem Aufruf

Rein statische Plugins sind beim Templatedesign sehr hilfreich und reichern das Design der Webseite mit neuen Funktionen an, allerdings benötigen sie eine laufende Instanz eines Templates (View) durch das FlightCMS - statisch gerufene Plugins sparen daher Platz im Arbeitsspeicher des Browsers. Ganz anders verhalten sich Plugins die für einen Hook registriert werden, denn diese können auch außerhalb eines Templates arbeiten, beispielsweise hat das Logging Plugin kein dediziertes Template und ist an den System-Hook 'afterStart' gehängt, um arbeiten zu können.

Hinweis: außerhalb des FlightCMS können keine Plugins gestartet werden, sie funktionieren außschließlich in der laufenden Instanz des FlightCMS.

Einen individuellen Hook erzeugen

Die so genannten Hooks sollten als Gruppen-Namen verstanden werden, unter dem sich Plugins organisieren und auf ihren Start warten. Ruft das FlightCMS einen Hook auf, beginnen alle Plugins die sich für diesen Hook registriert haben, mit ihrer Arbeit - eines nach dem anderen.

Die Aufrufreihenfolge eventuell konkurierender Plugins kann (noch) nicht individuell festgelegt werden. Plugins werden alphabetisch sortiert aufsteigend gestartet und nacheinander Abgearbeitet. Die Reihenfolge kann vorerst über eine geschickte Namensvergabe realisiert werden (sofern erforderlich).

FlightCMS besitzt zwar einige feste System-Hooks die vom Framework gebildet werden aber der Anwender kann weitere Hooks vollkommen frei definieren. Folglich ist ein Hook mit dem Namen:

Flight::hook('jetztGehtsLos','');

individueller Hook

absolut korrekt und möglich, jedoch muss es auch entsprechende Plugins geben, die auf den Aufruf des Hook jetztGehtsLos lauschen.

Plugins für einen Hook registrieren

Damit ein Plugin auf einen Hook hören kann, muss es sich für diesen anmelden bzw. registrieren. Im Plugin reicht es aus in der Methode hook():

function hook()
{
    return 'jetztGehtsLos';
}

Hook registrieren

den gewünschten Hook-Namen jetztGehtsLos als return-Wert einzutragen, damit dieses Plugin zukünftig auf diesen Hook reagiert. Nach dem Aufruf durch das CMS, wird die Plugin-Methode run($var) automatisch gestartet, in der die zentrale Verarbeitung durchgeführt wird.

Die beiden Methode run() und hook() sind zwingend zu implementieren, da sie vom FlightCMS automatisch aufgerufen werden müssen.

System-Hooks

FlightCMS bietet einige systemseitige Hooks zu denen sich Plugins anmelden bzw. registrieren können:

Custom-Hooks

Im Default-Template sind eine Reihe individueller Hooks definiert:

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