Erweitern eines bestehenden Plugins
Für bestehende SmartPlugins kann die Erweiterung um ein Webinterface wie folgt durchgeführt werden:
das
webif
-Verzeichnis aus dem Beispiel in das eigene Plugin kopierendie import-Anweisungen für
lib.smartplugin
vonfrom lib.model.smartplugin import SmartPlugin
ändern zufrom lib.model.smartplugin import *
der
__init__
-Methode des Plugins den Aufruf vonself.init_webinterface()
hinzufügen (am Ende der Initialisierung)der Plugin-Klasse die Methode
init_webinterface()
aus dem Beispielplugin hinzufügendie
WebInterface
-Klasse aus dem Beispiel-Plugin ans Ende der Plugin-Datei kopieren
Nun hat das Plugin ein funktionierendes, wenngleich leeres Webinterface:
Die Methode index
der Klasse WebInterface
implementiert die Seitenerstellung des Webinterfaces. Es rendert das
Template (webif/templates/index.html
) und macht das Plugin für den Renderer als p
verfügbar
(return tmpl.render(p=self.plugin)
). Darüber hinaus erforderliche Daten können dem Aufruf von tmpl.render()
einfach angefügt werden und stehen dann im Template zur Verfügung.
Das Einzige, was jetzt noch verbleibt, ist die Einbindung der anzuzeigenden Daten im Template.
Details dazu finden sich im folgenden Abschnitt. (Das Webinterface mit Inhalt füllen)