====== inclform-Plugin: Einbinden von Berechnungsformularen durch Integration von PHP-, HTML- und JavaScript-Quelltext in Wiki-Seiten ====== Mittels des inclform-Plugins werden [[berechnungen:start|interaktive Berechnungen]] in Wiki-Seiten eingebunden, wie beispielsweise die [[brand:allgemein:schaum#schaumberechnungen|Schaumberechnungen]]. ===== Einbindung einer Datei auf einer Wiki-Seite ===== Die Einbindung einer Textdatei mit HTML-, PHP- oder JavaScript-Quellcode und der Dateiendung .php erfolgt mit dem folgenden Kommando: ~~INCLFORM=dateiname~~ wobei der Dateiname ohne die Dateiendung .php angegeben wird. Der Aufruf ~~INCLFORM=gewuenschte_schaummenge~~ würde die Datei ''gewuenschte_schaummenge.php'' einbinden, die sich im entsprechenden Verzeichnis befindet. Dieses ist standardmäßig ''/data/media/berechnungen'', ausgehend vom Wiki-Hauptverzeichnis. Dieses Verzeichnis kann in der [[wiki:hilfe:administration:konfigurations-manager|Konfiguration]] geändert werden, beachten Sie in diesem Fall aber, dass Sie die derzeit im Verzeichnis enthaltenen Dateien ebenfalls an den neuen Ort verschieben müssen, damit die bereits integrierten Berechnungen im Einsatzleiterwiki weiterhin funktionieren. Beachten Sie, dass in dieses Verzeichnis bzw. in diesen Namensraum auf keinen Fall in einer über das Internet von nicht registrierten bzw. nicht vertrauenswürdigen Benutzern bearbeitbaren Wiki-Version hochgeladen werden darf, da dies ein schweres Sicherheitsrisiko darstellen kann. Aus diesem Grund ist diese Funktion auch auf den Einsatzleiterwiki-Servern deaktiviert und es können von normalen Nutzern keine neuen oder geänderte Berechnungsformulare hochgeladen werden!\\ Wenn ihr Wiki direkt aus dem Internet erreichbar ist, sollten Sie die [[wiki:hilfe:administration:acl|Bearbeitungsrechte]] für den Namensraum ''berechnungen'' sperren. Noch sicherer ist, den [[wiki:hilfe:anpassungen:mime|Eintrag für php aus der Datei conf/mime.conf]] zu entfernen. ===== Eigene Berechnungen programmieren ===== Selbstverständlich können Sie auch eigene Berechnungen programmieren. Grundsätzlich können Sie dafür jede Technik verwenden, die Sie in einer php-Datei aufrufen können. Die bestehenden Berechnungen sind in JavaScript geschrieben. Zur Demonstration hier ein vergleichsweise einfaches Beispiel, welches nur ein Eingabefeld besitzt, nämlich die [[cbrn:chemisch:klasse_2:fluessiggasberechnungen#sicherheitsabstaende_von_kugeltanks|Berechnung von Sicherheitsabständen zu Flüssiggastanks]]. Grundlegende Kenntnisse von HTML und JavaScript sind zum Verständnis erforderlich. ==== Eingabeformular und Ausgabe ==== Zuerst wird das Eingabeformular erzeugt. Es handelt sich dabei um ein ganz normales HTML-Formular. Durch den Klick auf den Button werden die Funktionen ''input_abstand_kugeltank()'' zur Validierung der Eingabewerte und ''output_abstand_kugeltank()'' zur Berechnung der Ergebnisse und deren Ausgabe aufgerufen. Zusätzlich definieren wir gleich zwei ''div''-Elemente, in denen die Ausgabe erscheinen soll.
Radius des Kugeltanks m

==== Globale Variablendefinition und Validierung der Eingabewerte ==== Zuerst wird die JavaScript-Umgebung geöffnet. Danach folgt die Definition globaler Variablen, also die auch außerhalb der Funktionen verwendet werden können. In der ''function input_abstand_kugeltank()'' wird zuerst der Wert aus dem Eingabefeld des Formulars ind die Variable ''abstand_kugeltank_d'' übernommen und danach ein etwaiges Komma durch einen Punkt ersetzt, da die Nachkommastellen bei Zahlen in JavaScript durch einen Punkt anstelle eines Kommas abgetrennt werden. ==== Der komplette Code ==== Leider können die bis jetzt aufgeführten Elemente nicht einfach nacheinander auf eine Seite geschrieben werden, da die JavaScript-Funktionen vor dem Formular stehen müssen. Daher ergibt sich eine andere Reihenfolge. Hier der komplette Code:

Radius des Kugeltanks m

===== Installation des Plugins ===== Dieses Plugin ist in der Standard-Einsatzleiterwiki-Installation enthalten und sollte daher nicht erst installiert werden müssen. Eine Anleitung, wie Sie ein Plugin installieren, finden Sie auf [[wiki:hilfe:plugins:plugins_installieren|dieser Seite]]. [[doku>plugin:inclform|Dokumentation des inclform-Plugins auf dokuwiki.org]]