====== Formulare im Pugin ====== Um mit den Nutzern interagieren zu können, benötigt man Formuare. DokuWiki bringt in objektorientierter Weise eine eigene Klasse zur Erzeugung von Formularen mit. * [[https://www.dokuwiki.org/devel:form|Entwicklerdokumentation Formulare bei dokuwiki.org]] * [[https://xref.dokuwiki.org/reference/dokuwiki/nav.html?inc/Form/Form.php.html|Methodendokumentation im XRef]] ---- {{:aufgabe.png?nolink |}} === (A1) === Ergänze dein Plugin um eine Methode, die ein Eingabeformular erzeugt, in dem du deinen Namen angeben kannst. Wenn ein Name übergeben wird, soll der Nuzter mit Namen begrüßt werden. Die folgenden Code-Schnipsel können dir helfen. public function printform() { // Erzeuge ein neues "Form" Objekt $form = new dokuwiki\Form\Form(); // Füge ein Feld mit dem 'name'-Attribut 'inputName' und dem Label 'Dein Name' hinzu $form->addTextInput('inputName', 'Dein Name'); // Füge einen "submit" Button hinzu $form->addButton('submit', 'Senden'); // Erzeuge den HTML-Code zum Formular return $form->toHTML(); } [...] // rufe die Methode "printform" auf - diese liefert HTML zurück // das kann direkt an das renderer Attribut angehängt werden. $renderer->doc .= $this->printform(); // Das gibt den Wert des mit POST übergebenen Eingabefelds // aus. Das sollte schöner mit HTML fomatiert werden und nur // dann ausgegeben werden, wenn es auch gesetzt ist... $renderer->doc .= $_POST['inputName']; [...] ---- {{:aufgabe.png?nolink |}} === (A2) === Implementiere einen "Mitternachtsformel"-Rechner für Dokuwiki in deinem Plugin.