Mit der Vorlage (empfohlen)
jds plugin neu "Mein Plugin"
Die offizielle Cookiecutter-Vorlage fragt, was dein Plugin enthalten soll – Einstellungsseite, Shortcode, eigene Seite, Datenbank-Tabelle mit Admin, Tests – und erzeugt ein komplettes, lauffähiges Plugin, das die Prüfung des Marktplatzes sofort besteht. Mit --standard wird ohne Nachfrage alles erzeugt.
Ohne JDS-Web-Installation geht es auch direkt mit Cookiecutter:
pip install cookiecutter
cookiecutter https://jds-web.dpdns.org/marktplatz/plugin-vorlage.zip
Danach jds setup, Server neu starten, im Admin aktivieren und mit jds test plugins.mein_plugin die mitgelieferten Tests ausführen.
So sieht ein Plugin aus
Das Herzstück ist plugins/mein_plugin/plugin.py:
PLUGIN = {
"name": "Mein Plugin",
"description": "Was es macht.",
"version": "1.0",
"settings": {"text": {"label": "Text", "default": "Hallo!"}},
}
def register(hooks):
@hooks.add_action("footer")
def hallo(**kwargs):
return f"<p>{hooks.setting('text')}</p>"
Server neu starten, im Admin unter System → Plugins aktivieren – fertig. Aus settings baut der Admin automatisch eine Einstellungsseite (Typen: text, textarea, bool, email, number, color).
Was ein Plugin noch kann
models.py+admin.py– eigene Daten mit Admin-Seite (verschwindet, wenn das Plugin aus ist:core.admin_utils.PluginModelAdmin)urls.py– eigene Seiten unter/plugin/<name>/oder mit"url_prefix"z. B. unter/doku/templates/– eigene Templatesactivate()/deactivate()– läuft beim An-/Ausschalten
Vollständiges Beispiel: plugins/kontaktformular/.