Erweiterung des Frontends (Module)
Ob es die einfache Darstellung einer Überschrift, eines Textes oder des Datums Ihres Artikels ist: All diese Funktionen sind in CONTENIDO als ein Modul realisiert. Module bestehen aus mindestens einer PHP-Datei, ggf. aber auch aus Templates, CSS- und JavaScript-Dateien. Die PHP-Dateien teilen sich in Input (relevant für Module, die Eingaben erwarten) und Output (relevant für Module, die Ausgaben erzeugen) auf. In den - im Backend verwaltbaren - PHP-Dateien können Sie auf den kompletten Fundus von CONTENIDO-Funktionen zurückgreifen. In den Templates wiederum stehen Ihnen bei aktiviertem Smarty-Plugin (im Beispielmandanten aktiv) auch die mächtigen Smarty-Templatefunktionen zur Verfügung. Über Module können Sie Ihre Website individuell und nach Ihren Wünschen erweitern. Module können im- und exportiert werden, hierzu werden komprimierte Zip-Dateien generiert.
Erweiterung des Backends (Plugins)
Möchten Sie das Backend erweitern, so kommen die Plugins ins Spiel. Plugins erweitern Ihre CONTENIDO-Installation kollissionsfrei vom Kernsystem, das bedeutet: Aktualisieren Sie ihre CONTENIDO-Installation, gehen Ihre Änderungen durch Plugins nicht verloren. Das bedeutet auch: Entfernen Sie ein Plugin, so entstehen keinerlei Rückstände. Plugins passen sich in die Menüstruktur in Ihrem Backend ein, erweitern also beispielsweise den Bereich „Extras“ um den Unterpunkt „Mein Plugin“. Beispielhafte Plugins sind der Formularassistent, zur Erzeugung von Kontaktformularen, oder der Linkchecker, der externe sowie interne Verknüpfungen in Ihren Artikeln auf Verfügbarkeiten überprüft. Plugins sind als komprimierte Zip-Archive realisiert, in denen sich alle Plugin-Dateien (PHP, Templates etc.) befinden. Benötigt werden auch eine standardisierte Xml-Konfigurationsdatei (plugin.xml) sowie (optional) Dateien mit Sql-Statements, die bei der Installation, bei einer Aktualisierung oder beim Entfernen eines Plugins ausgeführt werden. Dabei werden für die Tabellennamen feste Präfixe (!PREFIX!) erwartet und nur bestimmte Sql-Befehle (Beispiele: CREATE TABLE IF NOT EXISTS, INSERT INTO) erlaubt. Wie Plugins genau aufgebaut sind, können Sie der Entwickler-Dokumentation unter docs.contenido.org entnehmen.