Aufbau eines Plugins
Die Dateisystemstruktur eines Plugins
im Ordner plugins
- Pluginname einen Ordner mit einem eindeutigen Namen
- index.php
- plugin.css (Optional, wird automatisch geladen)
Inhalt der index.php
Das sollte zur Sicherheit in der ersten Zeile stehen.
<?php if(!defined('IS_CMS')) die();
Das Plugin mit einem eindeutigen Pluginnamen ohne Sonderzeichen
class Pluginname extends Plugin {
Der Plugin Inhalt
function getContent( $value ) {
return INHALT;
}
Die Plugin Settings
function getConfig() {
return $config;
}
Die Plugin Default Settings
function getDefaultSettings() {
return array("Parameternamen" => "Parameter");
}
Die Plugin Infos
function getInfo() {
return array(
Plugin Name + Version (string) ,
Benötigte moziloCMS Version. (string) ,
Kurzbeschreibung für das Blaue "i" (string) ,
Name des Autors (string) ,
Download URL (string) oder (array) URL => Link Text ,
Plugin Platzhalter für die Selectbox in der Editieransicht (array) Platzhalter => Titel
);
}
}
?>
Die getContent( $value )
Der Inhalt von $value kann sein:
- Die Parameter als String.
- false Beim Aufruf ohne Parameter.
- plugin_first.
Die Plugin eigenen Funktionen und Parameter werden hier beschrieben
Im Admin Fenster stehen diese zusätzlichen Konstanten und Variabeln zur Verfügung
PLUGINADMIN der PluginnamePLUGINADMIN_GET_URL die URL inklusive aller Parameter
$PLUGIN_ADMIN_ADD_HEAD ein Array aus Inhalt der in den <HEAD> soll.
Achtung es darf immer nur ein Eintrag Hinzugefügt werden.
$plugin->settings die Plugin Konfiguration
Die getDefaultSettings()
Ein Array mit den Default Konfigurationsparametern die gesetzt werden beim ersten Aufruf des Plugins (wenn die plugin.conf.php noch nicht existiert).
Die getConfig()
Die Konfiguration setzt sich zusammen aus einem Array mit dem Parameternamen und dem Element als Array.
Jedes Element wird als Liste angezeigt, links die description und rechts das Formularelement.
Wenn ein Element den Eintrag template hat, dann wird der darin enthaltene HTML-Code in der Liste benutzt.
Es gibt noch eine Alternative für die Angezeige.
Mit Anzeige Element --template~~ hat man Zugriff auf alle Konfigurationsparameter und kann sie in eigenem HTML-Code anzeigen.
Eine Liste der verfügbaren Platzhalter wird im Admin->Plugins->MeinPlugin aufgelistet, wenn der Inhalt von template oder --template~~ = template_test ist.
Der Parameter plugin_first bewirkt, dass das Plugin ohne seinen Plathalter zusätzlich am Anfang der index.php mit getContent("plugin_first") aufgerufen wird.
Gesetzt wird er am Anfang der getConfig() mit:
if(IS_ADMIN and $this->settings->get("plugin_first") !== "true")$this->settings->set("plugin_first","true");
Ab moziloCMS Revision 17 gibt es den Parameter plugin_replace_catpagefile.
Normalerweise wird beim Umbenennen einer Kategorie oder Inhaltsseite in der plugin.conf.php diese mit geändert.
Mit plugin_replace_catpagefile kann ein Ordner angegeben werden in dem zusätzlich gesucht wird.
Folgende relativen Angaben sind erlaubt:
Name des Ordners/*_db.php alle Dateien in diesem Ordner die mit _db.php aufhören
Name des Ordners/db.php nur diese Datei
db.php nur diese Datei
Gesetzt wird er am Anfang der getConfig() mit:
if(IS_ADMIN and !$this->settings->get("plugin_replace_catpagefile"))$this->settings->set("plugin_replace_catpagefile","Ordner oder Datei");
Verfügbare Formular Elemente:
Einzeiliger Text
$config["Parameternamen"] = array("type" => "text", (Pflicht)
"description" => "Bitte Wert eingeben", (Pflicht)
"maxlength" => "100", (Optional)
"size" => "30", (Optional)
"regex" => "REGEX", (Optional)
"regex_error" => "REGEX Fehler Meldung", (Optional)
"template" => "Eigenes Template" (Optional)
);
Mehrzeiliger Text
$config["Parameternamen"] = array("type" => "textarea", (Pflicht)
"cols" => "30", (Pflicht)
"rows" => "5", (Pflicht)
"description" => "Bitte Text eingeben", (Pflicht)
"regex" => "REGEX", (Optional)
"regex_error" => "REGEX Fehler Meldung", (Optional)
"template" => "Eigenes Template" (Optional)
);
Password
$config["Parameternamen"] = array("type" => "password", (Pflicht)
"saveasmd5" => "true", (Pflicht)
"description" => "Bitte Passwort eingeben", (Pflicht)
"regex" => "REGEX", (Pflicht)
"regex_error" => "REGEX Fehler Meldung", (Optional)
"maxlength" => "100", (Optional)
"size" => "30", (Optional)
"template" => "Eigenes Template" (Optional)
);
Checkbox
$config["Parameternamen"] = array("type" => "checkbox", (Pflicht)
"description" => "Ja oder nein?", (Pflicht)
"template" => "Eigenes Template" (Optional)
);
Radio
$config["Parameternamen"] = array("type" => "radio", (Pflicht)
"description" => "Welche Farbe?", (Pflicht)
"descriptions" => (Pflicht)
"blau" wird sowohl angezeigt als auch in die plugin.conf.php gespeichert
array(
"blau",
"rot",
"gruen"
),
oder so angezeigt wird "Blau", in die plugin.conf.php gespeichert wird "blau"
array(
"blau" => "Blau",
"rot" => "Rot",
"gruen" => "Grün"
),
"template" => "Eigenes Template" (Optional)
);
Select
$config["Parameternamen"] = array("type" => "select", (Pflicht)
"description" => "Ich mache Urlaub in...", (Pflicht)
"descriptions" => (Pflicht)
"Australien" wird sowohl angezeigt als auch in die plugin.conf.php gespeichert
array(
"Australien",
"Venezuela",
"Chemnitz"
)
oder so angezeigt wird "Australien", in die plugin.conf.php gespeichert wird "aus"
array(
"aus" => "Australien",
"ven" => "Venezuela",
"che" => "Chemnitz"
)
"multiple" => "true", (Optional)
"template" => "Eigenes Template" (Optional)
);
Admin Fenster
$config["--admin~~"] = array("buttontext" => "Butten Text", (Pflicht)
"description" => "Beschreibung eigenes Fenster", (Pflicht)
"datei_admin" => (Pflicht)
Die index.php des Plugins wird eingebunden und die Ausgabe erfolgt mit return getContent("")
"index.php"
oder eine Datei Ungleich index.php dann wird der Inhalt mit return require_once geöffnet
"admin/index.php"
);
Template Verwenden
$config["--template~~"] = "Eigenes Template für alle Konfparameter"