PyLucid Plugins sind im Grunde nichts anderes als Django Applikationen (vor v0.9 sind Plugins noch spezielle PyLucid Klassen).
PyLucid nutzt viele kleine Plugins für Teile der generieren html Seite.
Die Philosophie ist: Den Kern von
PyLucid möglichst klein zu halten und alles was möglich ist, in Plugins auszulagern. Fast jeder Teil der
cms Seite ist eine Plugin für zuständig. z.B.: Das Hauptmenü, die Suche, das Sitemap usw.
Mehr Information über die Plugin API findest du auf der Entwickler Dokumentaions Seite: http://www.pylucid.org/permalink/134/new-v09-plugin-api
Ein Plugin kann auf verschiedene Arten aktiviert bzw. eingebunden werden:
Die inline Methode funktioniert über die Django Template Engine. Mit dem lucidTag kann man plugins in die Seite einbinden. Der Tag wird dabei mit der "Ausgabe" des Plugins ersetzt.
Dabei kann ein lucidTag in dem globalen Seiten Template eingesetzt werden (z.b: Das Hauptmenü) oder auch in den CMS Seiten Inhalt.
Hier ein Beispiel wie man einen externen RSS Feed in die Seite einfügt:
Eine Liste der verfügbaren LucidTags erhält man beim Editeren einer Seite wenn man auf den Punkt tag list klickt.
Aufwendigere Plugins können direkt in den Seitenbaum eingebunden werden. Dazu erstellt man eine sog. PluginPage.
Dazu geht man im Menü auf "PyLucid admin menu" / "create content" / "new plugin page" Dort erhält man eine Liste der verfügbaren Plugins.
Eine Besonderheit stellt sie sog. "context middleware" dar. Diese Art Plugin ist dann notwendig wenn der Inhalt im render Prozess noch verändert werden kann. z.B. können beim breadcrumb plugin noch Links Einträge hinzugefügt werden. (Das Blog Plugin macht das, wenn man auf eine Detailansicht wechselt)
Eine context middleware ist kein Django Template Tag, sondern eine PyLucid eigene Erfindung ;) Die Syntax ist recht einfach aufgebaut und sieht so aus die ein HTML Kommentar:
Hier findest du information zu den einzelnen Plugins: