<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://de.wiki.bluespice.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bhuber</id>
	<title>BlueSpice Helpdesk - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://de.wiki.bluespice.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bhuber"/>
	<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/wiki/Spezial:Beitr%C3%A4ge/Bhuber"/>
	<updated>2026-06-29T03:36:38Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Sandbox5.2.5&amp;diff=16641</id>
		<title>Sandbox5.2.5</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Sandbox5.2.5&amp;diff=16641"/>
		<updated>2026-06-23T09:32:01Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This is a test. Everything seems to &amp;lt;small&amp;gt;work&amp;lt;/small&amp;gt; &amp;lt;sub&amp;gt;well&amp;lt;/sub&amp;gt;?&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* Let met&lt;br /&gt;
* give you&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible bs-exportable filterable mw-sticky-header&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!this&lt;br /&gt;
!is &lt;br /&gt;
!a &lt;br /&gt;
!table&lt;br /&gt;
|-&lt;br /&gt;
|I can write &lt;br /&gt;
|and edit&lt;br /&gt;
|and &lt;br /&gt;
|change&lt;br /&gt;
|-&lt;br /&gt;
|it&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;border-bottom-width:2px;border-bottom-color:#e49c00;&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-right-width:2px;border-right-color:#e49c00;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;border-left-width:2px;border-right-width:2px;border-top-width:2px;border-bottom-width:2px;border-left-color:#e49c00;border-right-color:#e49c00;border-top-color:#e49c00;border-bottom-color:#e49c00;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;border-left-width:2px;border-left-color:#e49c00;&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;drawio filename=&amp;quot;Sandbox5_2_5-74220376&amp;quot; /&amp;gt;&amp;lt;math&amp;gt;\exp_\lg\log_{10}&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:Sandbox5_2_5-74220376.svg&amp;diff=16640</id>
		<title>Datei:Sandbox5 2 5-74220376.svg</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:Sandbox5_2_5-74220376.svg&amp;diff=16640"/>
		<updated>2026-06-23T09:31:30Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: DrawioEditor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Sandbox5.2.5&amp;diff=16639</id>
		<title>Sandbox5.2.5</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Sandbox5.2.5&amp;diff=16639"/>
		<updated>2026-06-23T09:30:55Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This is a test. Everything seems to &amp;lt;small&amp;gt;work&amp;lt;/small&amp;gt; &amp;lt;sub&amp;gt;well&amp;lt;/sub&amp;gt;?&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* Let met&lt;br /&gt;
* give you&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible bs-exportable filterable mw-sticky-header&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!this&lt;br /&gt;
!is &lt;br /&gt;
!a &lt;br /&gt;
!table&lt;br /&gt;
|-&lt;br /&gt;
|I can write &lt;br /&gt;
|and edit&lt;br /&gt;
|and &lt;br /&gt;
|change&lt;br /&gt;
|-&lt;br /&gt;
|it&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;border-bottom-width:2px;border-bottom-color:#e49c00;&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-right-width:2px;border-right-color:#e49c00;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;border-left-width:2px;border-right-width:2px;border-top-width:2px;border-bottom-width:2px;border-left-color:#e49c00;border-right-color:#e49c00;border-top-color:#e49c00;border-bottom-color:#e49c00;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;border-left-width:2px;border-left-color:#e49c00;&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;drawio filename=&amp;quot;Sandbox5_2_5-74220376&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Sandbox5.2.5&amp;diff=16638</id>
		<title>Sandbox5.2.5</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Sandbox5.2.5&amp;diff=16638"/>
		<updated>2026-06-23T09:30:26Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: Die Seite wurde neu angelegt: „&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;This is a test. Everything seems to &amp;lt;small&amp;gt;work&amp;lt;/small&amp;gt; &amp;lt;sub&amp;gt;well&amp;lt;/sub&amp;gt;?&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;   * Let met * give you  {| class=&amp;quot;wikitable sortable mw-collapsible bs-exportable filterable mw-sticky-header&amp;quot; |+ !this !is  !a  !table |- |I can write  |and edit |and  |change |- |it | style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; | | | |- | | | | |- | | style=&amp;quot;border-bottom-width:2px;border-bottom-color:#e49c00;&amp;quot; | | | |- | style=&amp;quot;border-right-width:2px;border-right-color:#e49c00;&amp;quot; | |…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This is a test. Everything seems to &amp;lt;small&amp;gt;work&amp;lt;/small&amp;gt; &amp;lt;sub&amp;gt;well&amp;lt;/sub&amp;gt;?&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* Let met&lt;br /&gt;
* give you&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible bs-exportable filterable mw-sticky-header&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!this&lt;br /&gt;
!is &lt;br /&gt;
!a &lt;br /&gt;
!table&lt;br /&gt;
|-&lt;br /&gt;
|I can write &lt;br /&gt;
|and edit&lt;br /&gt;
|and &lt;br /&gt;
|change&lt;br /&gt;
|-&lt;br /&gt;
|it&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;border-bottom-width:2px;border-bottom-color:#e49c00;&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-right-width:2px;border-right-color:#e49c00;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;border-left-width:2px;border-right-width:2px;border-top-width:2px;border-bottom-width:2px;border-left-color:#e49c00;border-right-color:#e49c00;border-top-color:#e49c00;border-bottom-color:#e49c00;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;border-left-width:2px;border-left-color:#e49c00;&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16582</id>
		<title>Handbuch:Erweiterung/Forms</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16582"/>
		<updated>2026-06-03T13:09:47Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die &#039;&#039;&#039;Forms&#039;&#039;&#039;-Erweiterung ermöglicht es, eine Wikiseite oder einen Benutzerdialog als Formular zu gestalten. Sie wird außerdem in Verbindung mit der Erweiterung [[Handbuch:Erweiterung/Workflows|Workflows]] verwendet, um Eingabeformulare für Workflow-Daten bereitzustellen.&lt;br /&gt;
==Einführung==&lt;br /&gt;
Um beispielsweise eine Checkliste als Formular zu erstellen, sind folgende Schritte erforderlich:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen der Checklisten-Formulardefinition&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen von Checklisteninstanzen direkt über die Formulardefinitionsseite&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel werden die ersten Felder für eine Veranstaltung erstellt, bei der hygienerelevante Informationen im Zusammenhang mit Lebensmitteln dokumentiert werden müssen.&lt;br /&gt;
[[Datei:checklist-event-screenshot.png|alt=Beispiel einer Veranstaltungs-Checkliste|center|thumb|550x550px|Beispiel einer Veranstaltungs-Checkliste]]&lt;br /&gt;
&lt;br /&gt;
==Ein Checklistenformular erstellen==&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Seite &#039;&#039;EventChecklisteHygiene.form&#039;&#039;.&lt;br /&gt;
[[Datei:Extension Forms create form.png|center|thumb|400x400px|alt=Dialog zum Erstellen einer Seite|Neue Formularseite erstellen]]&lt;br /&gt;
Dadurch wird der Formulareditor geöffnet.&lt;br /&gt;
[[Datei:Extension Forms form editor.png|alt=Elemente des Formulareditors|center|thumb|700x700px|Formulareditor]]&lt;br /&gt;
#&#039;&#039;&#039;Hinzufügen&#039;&#039;&#039; eines Formularabschnitts:&lt;br /&gt;
##Das Element &#039;&#039;Section label&#039;&#039; unter &#039;&#039;Form Elements &amp;gt; Other&#039;&#039; &#039;&#039;&#039;auswählen&#039;&#039;&#039; (siehe Markierung 2 im Screenshot) und bei gedrückter linker Maustaste in den interaktiven Formulareditor ziehen.&lt;br /&gt;
##Irgendwo in die Zeile &#039;&#039;Section label&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als Feld-ID in der Datenbank gespeichert und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Den &#039;&#039;Title&#039;&#039; für die Abschnittsüberschrift &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als sichtbare Beschriftung angezeigt.&lt;br /&gt;
[[Datei:Extension Forms add section header.png|alt=Inspektor für das Element Section label|center|thumb|700x700px|Erste Abschnittsüberschrift hinzufügen]]&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Formularfelder für den Abschnitt &#039;&#039;Event&#039;&#039;. Im folgenden Beispiel wird ein Textfeld hinzugefügt.&lt;br /&gt;
##Das Element &#039;&#039;Text&#039;&#039; aus &#039;&#039;Form Elements &amp;gt; Inputs&#039;&#039; unter die Abschnittsüberschrift &#039;&#039;&#039;ziehen&#039;&#039;&#039;.&lt;br /&gt;
##Irgendwo in die Zeile des Textfelds &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser dient als Datenbank-ID für das Feld und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Das &#039;&#039;Label&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;. Dieses wird als sichtbare Feldbeschriftung angezeigt.&lt;br /&gt;
##Weitere Formularelemente &#039;&#039;&#039;hinzufügen&#039;&#039;&#039;.&lt;br /&gt;
#Auf &#039;&#039;Speichern&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;. Das Formular steht nun als &#039;&#039;EventChecklisteHygiene.form&#039;&#039; zur Verfügung.&lt;br /&gt;
[[Datei:Checklist-view.png|alt=Gespeichertes Formular|center|thumb|650x650px|Gespeichertes Formular]]&lt;br /&gt;
==Weitere Formularelemente hinzufügen==&lt;br /&gt;
Nun können weitere Felder hinzugefügt werden:&lt;br /&gt;
[[Handbuch:Erweiterung/Forms/Formularelemente|Übersicht aller Formularelemente, die Formularen hinzugefügt werden können.]]&lt;br /&gt;
==Eine Checklisteninstanz erstellen==&lt;br /&gt;
Um eine Checkliste aus dem Formular zu erstellen:&lt;br /&gt;
# Einen Veranstaltungsnamen &#039;&#039;&#039;eingeben&#039;&#039;&#039;&lt;br /&gt;
# Die Formularfelder &#039;&#039;&#039;ausfüllen&#039;&#039;&#039;&lt;br /&gt;
# Auf &#039;&#039;Abschicken&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;&lt;br /&gt;
Die Checkliste wird nun im Wiki gespeichert und kann anschließend weiter bearbeitet werden.&lt;br /&gt;
==Alternatives Ziel: E-Mail==&lt;br /&gt;
Anstatt beim Speichern des Formulars eine Wikiseite zu erstellen, können die Formulardaten an ein E-Mail-Konto gesendet werden.&lt;br /&gt;
(&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der E-Mail-Empfänger muss durch einen Serveradministrator auf dem Server konfiguriert werden, damit er in Formularen verfügbar ist.)&lt;br /&gt;
[[Datei:E-mail image.png|alt=E-Mail-Ziel|center|thumb|650x650px|E-Mail-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Email&lt;br /&gt;
*&#039;&#039;&#039;Empfänger:&#039;&#039;&#039; Mögliche Empfänger müssen aus Sicherheitsgründen auf dem Server konfiguriert worden sein. Beispiel:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgFormsTargetEMailRecipients = [&lt;br /&gt;
    &#039;Marketing&#039; =&amp;gt; &amp;quot;marketing@example.com&amp;quot;,&lt;br /&gt;
    &#039;Administration&#039; =&amp;gt; &#039;WikiSysop&#039;&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Betreff:&#039;&#039;&#039; Vorhandene Formularfelder können hier als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
*&#039;&#039;&#039;Inhalt:&#039;&#039;&#039; Wie beim Betreff können auch hier vorhandene Formularfelder als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
[[mediawikiwiki:Help:Magic_words#Localisation|Lokalisierungsnachrichten]] können in Kombination mit Formularfeldern ebenfalls als Betreff oder E-Mail-Inhalt verwendet werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;wikitext&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
{{int:Mailsubject| {{{name}}}|{{{surname}}} }}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Alternatives Ziel: Vorlage==&lt;br /&gt;
Anstatt eine Standard-Wikiseite zu erstellen oder die Formulardaten per E-Mail zu versenden, kann eine [[Handbuch:Vorlagen|Vorlage]] als Ziel für ein Formular verwendet werden. &amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall werden die übermittelten Formulardaten genutzt, um auf Basis einer vorhandenen Vorlagen-Struktur eine neue Wikiseite zu erstellen. Die Formularwerte werden dabei in die Platzhalter der Vorlage eingefügt.&lt;br /&gt;
*&#039;&#039;&#039;Voraussetzungen:&#039;&#039;&#039; Bevor ein Vorlagen-Ziel verwendet werden kann, muss bereits eine entsprechende Vorlagen-Seite im Wiki vorhanden sein. Die Vorlage dient als strukturelle Grundlage für die generierte Seite. Formularfelder werden den in der Vorlage definierten Platzhaltern zugeordnet.&lt;br /&gt;
[[Datei:Template Target.png|alt=Auswahl von Vorlage als Formularziel|center|thumb|550x550px|Template-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Vorlage&lt;br /&gt;
*&#039;&#039;&#039;Predefined title:&#039;&#039;&#039; Optionaler Standardtitel für die neu erstellte Seite oder zur Vorgabe eines Seitenpfads (z. B. um alle generierten Seiten als Unterseiten einer bestimmten Seite zu erstellen)&lt;br /&gt;
*&#039;&#039;&#039;Zu verwendende Vorlage:&#039;&#039;&#039; Name des vorhandenen Templates, das für die Seitenerstellung verwendet wird&lt;br /&gt;
Es wird empfohlen, für Formular und Template identische oder eindeutig zusammengehörige Bezeichnungen zu verwenden. Dies erleichtert die Wartung und macht Konfigurationsabhängigkeiten leichter nachvollziehbar.&lt;br /&gt;
Diese Zielart wird typischerweise verwendet, um standardisierte und lesbare Wikiseiten zu erzeugen. JSON-basierte Ziele werden dagegen häufiger für die strukturierte Weiterverarbeitung von Daten eingesetzt.&lt;br /&gt;
==Styling anpassen==&lt;br /&gt;
===Common.css===&lt;br /&gt;
Um einzelne Elemente im Formular zu gestalten, kann im Optionsdialog der Reiter &#039;&#039;Styling&#039;&#039; verwendet werden. Dort lässt sich ein CSS-Klassenname eintragen. Das eigentliche Styling wird anschließend auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; definiert (Administratorrechte erforderlich).&lt;br /&gt;
So wird die Abschnittsüberschrift gestaltet:&lt;br /&gt;
#Den Reiter &#039;&#039;Styling&#039;&#039; im Optionsmenü des Feldes &#039;&#039;Event heading&#039;&#039; &#039;&#039;&#039;öffnen&#039;&#039;&#039;&lt;br /&gt;
#Eine neue CSS-Klasse &#039;&#039;&#039;hinzufügen&#039;&#039;&#039; und einen Selektornamen im Feld &#039;&#039;CSS Classes&#039;&#039; eintragen, z. B. &#039;&#039;frm-sectionhd&#039;&#039; [[Datei:forms-css-class-de.png|alt=CSS-Klasse hinzufügen|center|thumb|650x650px|CSS-Klasse hinzufügen]]&lt;br /&gt;
#Die folgenden Stildefinitionen auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; &#039;&#039;&#039;einfügen&#039;&#039;&#039;:&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.frm-sectionhd {&lt;br /&gt;
    border-bottom: 1px solid #a6a6a7;  &lt;br /&gt;
    background:#f1f3f9; &lt;br /&gt;
    padding:6px;&lt;br /&gt;
    margin:30px 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[Datei:forms-css-class-view-de.png|alt=Abschnittsüberschrift mit individuellem Styling|center|thumb|650x650px|Abschnittsüberschrift mit individuellem Styling]] &amp;lt;br&amp;gt;&lt;br /&gt;
Falls keine Berechtigung zum Anzeigen oder Bearbeiten dieser Seite besteht, können Stilinformationen auch direkt über Inline-Styling für einzelne Formularelemente hinterlegt werden.&lt;br /&gt;
===Inline-Styling===&lt;br /&gt;
Ohne Zugriff auf &#039;&#039;MediaWiki:Common.css&#039;&#039; können Stilinformationen direkt im Formular eingetragen werden. Bei häufig wiederkehrenden Stildefinitionen ist dies jedoch weniger effizient als die Verwendung von CSS-Klassen in &#039;&#039;MediaWiki:Common.css&#039;&#039;. &amp;lt;br&amp;gt;​Im folgenden Beispiel wird das zuvor verwendete Styling der Abschnittsüberschrift direkt als Inline-Styling angewendet. Dazu erneut das Optionsmenü des Formularelements &#039;&#039;ech-event&#039;&#039; öffnen. Anschließend den folgenden Eintrag im Feld &#039;&#039;Styling&#039;&#039; hinterlegen und die Änderung speichern:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
border-bottom: 1px solid #a6a6a7;  background:#f1f3f9; padding:6px;margin:30px 0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:forms-css-inlinestyling-en.png|alt=Inline-Styling eines Formularelements|center|thumb|650x650px|Inline-Styling eines Formularelements]]&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16581</id>
		<title>Handbuch:Erweiterung/Forms</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16581"/>
		<updated>2026-06-03T13:08:12Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die &#039;&#039;&#039;Forms&#039;&#039;&#039;-Erweiterung ermöglicht es, eine Wikiseite oder einen Benutzerdialog als Formular zu gestalten. Sie wird außerdem in Verbindung mit der Erweiterung [[Handbuch:Erweiterung/Workflows|Workflows]] verwendet, um Eingabeformulare für Workflow-Daten bereitzustellen.&lt;br /&gt;
==Einführung==&lt;br /&gt;
Um beispielsweise eine Checkliste als Formular zu erstellen, sind folgende Schritte erforderlich:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen der Checklisten-Formulardefinition&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen von Checklisteninstanzen direkt über die Formulardefinitionsseite&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel werden die ersten Felder für eine Veranstaltung erstellt, bei der hygienerelevante Informationen im Zusammenhang mit Lebensmitteln dokumentiert werden müssen.&lt;br /&gt;
[[Datei:checklist-event-screenshot.png|alt=Beispiel einer Veranstaltungs-Checkliste|center|thumb|550x550px|Beispiel einer Veranstaltungs-Checkliste]]&lt;br /&gt;
&lt;br /&gt;
==Ein Checklistenformular erstellen==&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Seite &#039;&#039;EventChecklisteHygiene.form&#039;&#039;.&lt;br /&gt;
[[Datei:Extension Forms create form.png|center|thumb|400x400px|alt=Dialog zum Erstellen einer Seite|Neue Formularseite erstellen]]&lt;br /&gt;
Dadurch wird der Formulareditor geöffnet.&lt;br /&gt;
[[Datei:Extension Forms form editor.png|alt=Elemente des Formulareditors|center|thumb|700x700px|Formulareditor]]&lt;br /&gt;
#&#039;&#039;&#039;Hinzufügen&#039;&#039;&#039; eines Formularabschnitts:&lt;br /&gt;
##Das Element &#039;&#039;Section label&#039;&#039; unter &#039;&#039;Form Elements &amp;gt; Other&#039;&#039; &#039;&#039;&#039;auswählen&#039;&#039;&#039; (siehe Markierung 2 im Screenshot) und bei gedrückter linker Maustaste in den interaktiven Formulareditor ziehen.&lt;br /&gt;
##Irgendwo in die Zeile &#039;&#039;Section label&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als Feld-ID in der Datenbank gespeichert und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Den &#039;&#039;Title&#039;&#039; für die Abschnittsüberschrift &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als sichtbare Beschriftung angezeigt.&lt;br /&gt;
[[Datei:Extension Forms add section header.png|alt=Inspektor für das Element Section label|center|thumb|700x700px|Erste Abschnittsüberschrift hinzufügen]]&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Formularfelder für den Abschnitt &#039;&#039;Event&#039;&#039;. Im folgenden Beispiel wird ein Textfeld hinzugefügt.&lt;br /&gt;
##Das Element &#039;&#039;Text&#039;&#039; aus &#039;&#039;Form Elements &amp;gt; Inputs&#039;&#039; unter die Abschnittsüberschrift &#039;&#039;&#039;ziehen&#039;&#039;&#039;.&lt;br /&gt;
##Irgendwo in die Zeile des Textfelds &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser dient als Datenbank-ID für das Feld und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Das &#039;&#039;Label&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;. Dieses wird als sichtbare Feldbeschriftung angezeigt.&lt;br /&gt;
##Weitere Formularelemente &#039;&#039;&#039;hinzufügen&#039;&#039;&#039;.&lt;br /&gt;
#Auf &#039;&#039;Speichern&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;. Das Formular steht nun als &#039;&#039;EventChecklisteHygiene.form&#039;&#039; zur Verfügung.&lt;br /&gt;
[[Datei:Checklist-view.png|alt=Gespeichertes Formular|center|thumb|650x650px|Gespeichertes Formular]]&lt;br /&gt;
==Weitere Formularelemente hinzufügen==&lt;br /&gt;
Nun können weitere Felder hinzugefügt werden:&lt;br /&gt;
[[Handbuch:Erweiterung/Forms/Formularelemente|Übersicht aller Formularelemente, die Formularen hinzugefügt werden können.]]&lt;br /&gt;
==Eine Checklisteninstanz erstellen==&lt;br /&gt;
Um eine Checkliste aus dem Formular zu erstellen:&lt;br /&gt;
# Einen Veranstaltungsnamen &#039;&#039;&#039;eingeben&#039;&#039;&#039;&lt;br /&gt;
# Die Formularfelder &#039;&#039;&#039;ausfüllen&#039;&#039;&#039;&lt;br /&gt;
# Auf &#039;&#039;Abschicken&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;&lt;br /&gt;
Die Checkliste wird nun im Wiki gespeichert und kann anschließend weiter bearbeitet werden.&lt;br /&gt;
==Alternatives Ziel: E-Mail==&lt;br /&gt;
Anstatt beim Speichern des Formulars eine Wikiseite zu erstellen, können die Formulardaten an ein E-Mail-Konto gesendet werden.&lt;br /&gt;
(&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der E-Mail-Empfänger muss durch einen Serveradministrator auf dem Server konfiguriert werden, damit er in Formularen verfügbar ist.)&lt;br /&gt;
[[Datei:E-mail image.png|alt=E-Mail-Ziel|center|thumb|650x650px|E-Mail-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Email&lt;br /&gt;
*&#039;&#039;&#039;Empfänger:&#039;&#039;&#039; Mögliche Empfänger müssen aus Sicherheitsgründen auf dem Server konfiguriert worden sein. Beispiel:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgFormsTargetEMailRecipients = [&lt;br /&gt;
    &#039;Marketing&#039; =&amp;gt; &amp;quot;marketing@example.com&amp;quot;,&lt;br /&gt;
    &#039;Administration&#039; =&amp;gt; &#039;WikiSysop&#039;&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Betreff:&#039;&#039;&#039; Vorhandene Formularfelder können hier als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
*&#039;&#039;&#039;Inhalt:&#039;&#039;&#039; Wie beim Betreff können auch hier vorhandene Formularfelder als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
[[mediawikiwiki:Help:Magic_words#Localisation|Lokalisierungsnachrichten]] können in Kombination mit Formularfeldern ebenfalls als Betreff oder E-Mail-Inhalt verwendet werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;wikitext&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
{{int:Mailsubject| {{{name}}}|{{{surname}}} }}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Alternatives Ziel: Vorlage==&lt;br /&gt;
Anstatt eine Standard-Wikiseite zu erstellen oder die Formulardaten per E-Mail zu versenden, kann eine [[Handbuch:Vorlagen|Vorlage]] als Ziel für ein Formular verwendet werden. &amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall werden die übermittelten Formulardaten genutzt, um auf Basis einer vorhandenen Vorlagen-Struktur eine neue Wikiseite zu erstellen. Die Formularwerte werden dabei in die Platzhalter der Vorlage eingefügt.&lt;br /&gt;
*&#039;&#039;&#039;Voraussetzungen:&#039;&#039;&#039; Bevor ein Vorlagen-Ziel verwendet werden kann, muss bereits eine entsprechende Vorlagen-Seite im Wiki vorhanden sein. Die Vorlage dient als strukturelle Grundlage für die generierte Seite. Formularfelder werden den in der Vorlage definierten Platzhaltern zugeordnet.&lt;br /&gt;
[[Datei:Template Target.png|alt=Auswahl von Vorlage als Formularziel|center|thumb|550x550px|Template-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Vorlage&lt;br /&gt;
*&#039;&#039;&#039;Predefined title:&#039;&#039;&#039; Optionaler Standardtitel für die neu erstellte Seite oder zur Vorgabe eines Seitenpfads (z. B. um alle generierten Seiten als Unterseiten einer bestimmten Seite zu erstellen)&lt;br /&gt;
*&#039;&#039;&#039;Zu verwendende Vorlage:&#039;&#039;&#039; Name des vorhandenen Templates, das für die Seitenerstellung verwendet wird&lt;br /&gt;
Es wird empfohlen, für Formular und Template identische oder eindeutig zusammengehörige Bezeichnungen zu verwenden. Dies erleichtert die Wartung und macht Konfigurationsabhängigkeiten leichter nachvollziehbar.&lt;br /&gt;
Diese Zielart wird typischerweise verwendet, um standardisierte und lesbare Wikiseiten zu erzeugen. JSON-basierte Ziele werden dagegen häufiger für die strukturierte Weiterverarbeitung von Daten eingesetzt.&lt;br /&gt;
==Styling anpassen==&lt;br /&gt;
===Common.css===&lt;br /&gt;
Um einzelne Elemente im Formular zu gestalten, kann im Optionsdialog der Reiter &#039;&#039;Styling&#039;&#039; verwendet werden. Dort lässt sich ein CSS-Klassenname eintragen. Das eigentliche Styling wird anschließend auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; definiert (Administratorrechte erforderlich).&lt;br /&gt;
So wird die Abschnittsüberschrift gestaltet:&lt;br /&gt;
#Den Reiter &#039;&#039;Styling&#039;&#039; im Optionsmenü des Feldes &#039;&#039;Event heading&#039;&#039; &#039;&#039;&#039;öffnen&#039;&#039;&#039;&lt;br /&gt;
#Eine neue CSS-Klasse &#039;&#039;&#039;hinzufügen&#039;&#039;&#039; und einen Selektornamen im Feld &#039;&#039;CSS Classes&#039;&#039; eintragen, z. B. &#039;&#039;frm-sectionhd&#039;&#039;&lt;br /&gt;
[[Datei:forms-css-class-de.png|alt=CSS-Klasse hinzufügen|center|thumb|650x650px|CSS-Klasse hinzufügen]]&lt;br /&gt;
#Die folgenden Stildefinitionen auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; &#039;&#039;&#039;einfügen&#039;&#039;&#039;:&lt;br /&gt;
[[Datei:forms-css-class-view-de.png|alt=Abschnittsüberschrift mit individuellem Styling|center|thumb|650x650px|Abschnittsüberschrift mit individuellem Styling]] &amp;lt;br&amp;gt;&lt;br /&gt;
Falls keine Berechtigung zum Anzeigen oder Bearbeiten dieser Seite besteht, können Stilinformationen auch direkt über Inline-Styling für einzelne Formularelemente hinterlegt werden.&lt;br /&gt;
===Inline-Styling===&lt;br /&gt;
Ohne Zugriff auf &#039;&#039;MediaWiki:Common.css&#039;&#039; können Stilinformationen direkt im Formular eingetragen werden. Bei häufig wiederkehrenden Stildefinitionen ist dies jedoch weniger effizient als die Verwendung von CSS-Klassen in &#039;&#039;MediaWiki:Common.css&#039;&#039;. &amp;lt;br&amp;gt;​Im folgenden Beispiel wird das zuvor verwendete Styling der Abschnittsüberschrift direkt als Inline-Styling angewendet. Dazu erneut das Optionsmenü des Formularelements &#039;&#039;ech-event&#039;&#039; öffnen. Anschließend den folgenden Eintrag im Feld &#039;&#039;Styling&#039;&#039; hinterlegen und die Änderung speichern:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
border-bottom: 1px solid #a6a6a7;  background:#f1f3f9; padding:6px;margin:30px 0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:forms-css-inlinestyling-en.png|alt=Inline-Styling eines Formularelements|center|thumb|650x650px|Inline-Styling eines Formularelements]]&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16580</id>
		<title>Handbuch:Erweiterung/Forms</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16580"/>
		<updated>2026-06-03T13:06:26Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die &#039;&#039;&#039;Forms&#039;&#039;&#039;-Erweiterung ermöglicht es, eine Wikiseite oder einen Benutzerdialog als Formular zu gestalten. Sie wird außerdem in Verbindung mit der Erweiterung [[Handbuch:Erweiterung/Workflows|Workflows]] verwendet, um Eingabeformulare für Workflow-Daten bereitzustellen.&lt;br /&gt;
==Einführung==&lt;br /&gt;
Um beispielsweise eine Checkliste als Formular zu erstellen, sind folgende Schritte erforderlich:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen der Checklisten-Formulardefinition&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen von Checklisteninstanzen direkt über die Formulardefinitionsseite&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel werden die ersten Felder für eine Veranstaltung erstellt, bei der hygienerelevante Informationen im Zusammenhang mit Lebensmitteln dokumentiert werden müssen.&lt;br /&gt;
[[Datei:checklist-event-screenshot.png|alt=Beispiel einer Veranstaltungs-Checkliste|center|thumb|550x550px|Beispiel einer Veranstaltungs-Checkliste]]&lt;br /&gt;
&lt;br /&gt;
==Ein Checklistenformular erstellen==&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Seite &#039;&#039;EventChecklisteHygiene.form&#039;&#039;.&lt;br /&gt;
[[Datei:Extension Forms create form.png|center|thumb|400x400px|alt=Dialog zum Erstellen einer Seite|Neue Formularseite erstellen]]&lt;br /&gt;
Dadurch wird der Formulareditor geöffnet.&lt;br /&gt;
[[Datei:Extension Forms form editor.png|alt=Elemente des Formulareditors|center|thumb|700x700px|Formulareditor]]&lt;br /&gt;
#&#039;&#039;&#039;Hinzufügen&#039;&#039;&#039; eines Formularabschnitts:&lt;br /&gt;
##Das Element &#039;&#039;Section label&#039;&#039; unter &#039;&#039;Form Elements &amp;gt; Other&#039;&#039; &#039;&#039;&#039;auswählen&#039;&#039;&#039; (siehe Markierung 2 im Screenshot) und bei gedrückter linker Maustaste in den interaktiven Formulareditor ziehen.&lt;br /&gt;
##Irgendwo in die Zeile &#039;&#039;Section label&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als Feld-ID in der Datenbank gespeichert und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Den &#039;&#039;Title&#039;&#039; für die Abschnittsüberschrift &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als sichtbare Beschriftung angezeigt.&lt;br /&gt;
[[Datei:Extension Forms add section header.png|alt=Inspektor für das Element Section label|center|thumb|700x700px|Erste Abschnittsüberschrift hinzufügen]]&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Formularfelder für den Abschnitt &#039;&#039;Event&#039;&#039;. Im folgenden Beispiel wird ein Textfeld hinzugefügt.&lt;br /&gt;
##Das Element &#039;&#039;Text&#039;&#039; aus &#039;&#039;Form Elements &amp;gt; Inputs&#039;&#039; unter die Abschnittsüberschrift &#039;&#039;&#039;ziehen&#039;&#039;&#039;.&lt;br /&gt;
##Irgendwo in die Zeile des Textfelds &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser dient als Datenbank-ID für das Feld und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Das &#039;&#039;Label&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;. Dieses wird als sichtbare Feldbeschriftung angezeigt.&lt;br /&gt;
##Weitere Formularelemente &#039;&#039;&#039;hinzufügen&#039;&#039;&#039;.&lt;br /&gt;
#Auf &#039;&#039;Speichern&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;. Das Formular steht nun als &#039;&#039;EventChecklisteHygiene.form&#039;&#039; zur Verfügung.&lt;br /&gt;
[[Datei:Checklist-view.png|alt=Gespeichertes Formular|center|thumb|650x650px|Gespeichertes Formular]]&lt;br /&gt;
==Weitere Formularelemente hinzufügen==&lt;br /&gt;
Nun können weitere Felder hinzugefügt werden:&lt;br /&gt;
[[Handbuch:Erweiterung/Forms/Formularelemente|Übersicht aller Formularelemente, die Formularen hinzugefügt werden können.]]&lt;br /&gt;
==Eine Checklisteninstanz erstellen==&lt;br /&gt;
Um eine Checkliste aus dem Formular zu erstellen:&lt;br /&gt;
# Einen Veranstaltungsnamen &#039;&#039;&#039;eingeben&#039;&#039;&#039;&lt;br /&gt;
# Die Formularfelder &#039;&#039;&#039;ausfüllen&#039;&#039;&#039;&lt;br /&gt;
# Auf &#039;&#039;Abschicken&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;&lt;br /&gt;
Die Checkliste wird nun im Wiki gespeichert und kann anschließend weiter bearbeitet werden.&lt;br /&gt;
==Alternatives Ziel: E-Mail==&lt;br /&gt;
Anstatt beim Speichern des Formulars eine Wikiseite zu erstellen, können die Formulardaten an ein E-Mail-Konto gesendet werden.&lt;br /&gt;
(&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der E-Mail-Empfänger muss durch einen Serveradministrator auf dem Server konfiguriert werden, damit er in Formularen verfügbar ist.)&lt;br /&gt;
[[Datei:E-mail image.png|alt=E-Mail-Ziel|center|thumb|650x650px|E-Mail-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Email&lt;br /&gt;
*&#039;&#039;&#039;Empfänger:&#039;&#039;&#039; Mögliche Empfänger müssen aus Sicherheitsgründen auf dem Server konfiguriert worden sein. Beispiel:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgFormsTargetEMailRecipients = [&lt;br /&gt;
    &#039;Marketing&#039; =&amp;gt; &amp;quot;marketing@example.com&amp;quot;,&lt;br /&gt;
    &#039;Administration&#039; =&amp;gt; &#039;WikiSysop&#039;&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Betreff:&#039;&#039;&#039; Vorhandene Formularfelder können hier als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
*&#039;&#039;&#039;Inhalt:&#039;&#039;&#039; Wie beim Betreff können auch hier vorhandene Formularfelder als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
[[mediawikiwiki:Help:Magic_words#Localisation|Lokalisierungsnachrichten]] können in Kombination mit Formularfeldern ebenfalls als Betreff oder E-Mail-Inhalt verwendet werden:&lt;br /&gt;
==Alternatives Ziel: Vorlage==&lt;br /&gt;
Anstatt eine Standard-Wikiseite zu erstellen oder die Formulardaten per E-Mail zu versenden, kann eine [[Handbuch:Vorlagen|Vorlage]] als Ziel für ein Formular verwendet werden. &amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall werden die übermittelten Formulardaten genutzt, um auf Basis einer vorhandenen Vorlagen-Struktur eine neue Wikiseite zu erstellen. Die Formularwerte werden dabei in die Platzhalter der Vorlage eingefügt.&lt;br /&gt;
*&#039;&#039;&#039;Voraussetzungen:&#039;&#039;&#039; Bevor ein Vorlagen-Ziel verwendet werden kann, muss bereits eine entsprechende Vorlagen-Seite im Wiki vorhanden sein. Die Vorlage dient als strukturelle Grundlage für die generierte Seite. Formularfelder werden den in der Vorlage definierten Platzhaltern zugeordnet.&lt;br /&gt;
[[Datei:Template Target.png|alt=Auswahl von Vorlage als Formularziel|center|thumb|550x550px|Template-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Vorlage&lt;br /&gt;
*&#039;&#039;&#039;Predefined title:&#039;&#039;&#039; Optionaler Standardtitel für die neu erstellte Seite oder zur Vorgabe eines Seitenpfads (z. B. um alle generierten Seiten als Unterseiten einer bestimmten Seite zu erstellen)&lt;br /&gt;
*&#039;&#039;&#039;Zu verwendende Vorlage:&#039;&#039;&#039; Name des vorhandenen Templates, das für die Seitenerstellung verwendet wird&lt;br /&gt;
Es wird empfohlen, für Formular und Template identische oder eindeutig zusammengehörige Bezeichnungen zu verwenden. Dies erleichtert die Wartung und macht Konfigurationsabhängigkeiten leichter nachvollziehbar.&lt;br /&gt;
Diese Zielart wird typischerweise verwendet, um standardisierte und lesbare Wikiseiten zu erzeugen. JSON-basierte Ziele werden dagegen häufiger für die strukturierte Weiterverarbeitung von Daten eingesetzt.&lt;br /&gt;
==Styling anpassen==&lt;br /&gt;
===Common.css===&lt;br /&gt;
Um einzelne Elemente im Formular zu gestalten, kann im Optionsdialog der Reiter &#039;&#039;Styling&#039;&#039; verwendet werden. Dort lässt sich ein CSS-Klassenname eintragen. Das eigentliche Styling wird anschließend auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; definiert (Administratorrechte erforderlich).&lt;br /&gt;
So wird die Abschnittsüberschrift gestaltet:&lt;br /&gt;
#Den Reiter &#039;&#039;Styling&#039;&#039; im Optionsmenü des Feldes &#039;&#039;Event heading&#039;&#039; &#039;&#039;&#039;öffnen&#039;&#039;&#039;&lt;br /&gt;
#Eine neue CSS-Klasse &#039;&#039;&#039;hinzufügen&#039;&#039;&#039; und einen Selektornamen im Feld &#039;&#039;CSS Classes&#039;&#039; eintragen, z. B. &#039;&#039;frm-sectionhd&#039;&#039;&lt;br /&gt;
[[Datei:forms-css-class-de.png|alt=CSS-Klasse hinzufügen|center|thumb|650x650px|CSS-Klasse hinzufügen]]&lt;br /&gt;
#Die folgenden Stildefinitionen auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; &#039;&#039;&#039;einfügen&#039;&#039;&#039;:&lt;br /&gt;
[[Datei:forms-css-class-view-de.png|alt=Abschnittsüberschrift mit individuellem Styling|center|thumb|650x650px|Abschnittsüberschrift mit individuellem Styling]] &amp;lt;br&amp;gt;&lt;br /&gt;
Falls keine Berechtigung zum Anzeigen oder Bearbeiten dieser Seite besteht, können Stilinformationen auch direkt über Inline-Styling für einzelne Formularelemente hinterlegt werden.&lt;br /&gt;
===Inline-Styling===&lt;br /&gt;
Ohne Zugriff auf &#039;&#039;MediaWiki:Common.css&#039;&#039; können Stilinformationen direkt im Formular eingetragen werden. Bei häufig wiederkehrenden Stildefinitionen ist dies jedoch weniger effizient als die Verwendung von CSS-Klassen in &#039;&#039;MediaWiki:Common.css&#039;&#039;. &amp;lt;br&amp;gt;​Im folgenden Beispiel wird das zuvor verwendete Styling der Abschnittsüberschrift direkt als Inline-Styling angewendet. Dazu erneut das Optionsmenü des Formularelements &#039;&#039;ech-event&#039;&#039; öffnen. Anschließend den folgenden Eintrag im Feld &#039;&#039;Styling&#039;&#039; hinterlegen und die Änderung speichern:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
border-bottom: 1px solid #a6a6a7;  background:#f1f3f9; padding:6px;margin:30px 0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:forms-css-inlinestyling-en.png|alt=Inline-Styling eines Formularelements|center|thumb|650x650px|Inline-Styling eines Formularelements]]&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Formularelemente&amp;diff=16579</id>
		<title>Handbuch:Erweiterung/Forms/Formularelemente</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Formularelemente&amp;diff=16579"/>
		<updated>2026-06-02T14:36:57Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Formularelemente ==&lt;br /&gt;
Folgende Formularfelder können zu einem Formular hinzugefügt werden:&lt;br /&gt;
&lt;br /&gt;
=== Eingabefelder ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Eingabetyp&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Buch&lt;br /&gt;
|book&lt;br /&gt;
|Auto-Vervollständigungsfeld zum Finden von Seiten im Namensraum „Book“&lt;br /&gt;
|-&lt;br /&gt;
|Text&lt;br /&gt;
|text&lt;br /&gt;
|Standard-Textfeld&lt;br /&gt;
|-&lt;br /&gt;
|Textbereich&lt;br /&gt;
|textarea&lt;br /&gt;
|Mehrzeiliges Textfeld&lt;br /&gt;
|-&lt;br /&gt;
|Wikitext-Eingabe&lt;br /&gt;
|wikitext&lt;br /&gt;
|Mehrzeiliges Textfeld für Wikitext-Syntax&lt;br /&gt;
|-&lt;br /&gt;
|Kategorie-Multiauswahl&lt;br /&gt;
|category_multiselect&lt;br /&gt;
|Token-Feld zum Hinzufügen einer oder mehrerer Kategorien zur Seite; Werte werden mit der &amp;lt;code&amp;gt;Eingabetaste&amp;lt;/code&amp;gt; getrennt&lt;br /&gt;
|-&lt;br /&gt;
|Kontrollkästchen&lt;br /&gt;
|checkbox&lt;br /&gt;
|Einzelnes Kontrollkästchen&lt;br /&gt;
|-&lt;br /&gt;
|Menü-Tag-Multiauswahl&lt;br /&gt;
|menutag_multiselect&lt;br /&gt;
|Mehrfachwert-Eingabe; Werte werden mit der &amp;lt;code&amp;gt;Eingabetaste&amp;lt;/code&amp;gt; getrennt&lt;br /&gt;
|-&lt;br /&gt;
|Kontrollkästchen-Multiauswahl&lt;br /&gt;
|checkbox_multiselect&lt;br /&gt;
|Gruppe von Kontrollkästchen (ermöglicht die Auswahl mehrerer Werte)&lt;br /&gt;
|-&lt;br /&gt;
|Dropdown&lt;br /&gt;
|dropdown&lt;br /&gt;
|Dropdown-Liste mit vordefinierten Optionen&lt;br /&gt;
|-&lt;br /&gt;
|Zahl&lt;br /&gt;
|number&lt;br /&gt;
|Ganzzahlfeld&lt;br /&gt;
|-&lt;br /&gt;
|Optionsfeld&lt;br /&gt;
|radio&lt;br /&gt;
|Einzelnes Optionsfeld (wird in manuell ausgefüllten Formularen normalerweise nicht verwendet)&lt;br /&gt;
|-&lt;br /&gt;
|Optionsfeldgruppe&lt;br /&gt;
|radio_multiselect&lt;br /&gt;
|Gruppe von Optionsfeldern (ermöglicht die Auswahl genau eines Wertes)&lt;br /&gt;
|-&lt;br /&gt;
|Dateiauswahl&lt;br /&gt;
|select_file&lt;br /&gt;
|Wählt eine Datei im Wiki aus&lt;br /&gt;
|-&lt;br /&gt;
|Titel-Eingabe&lt;br /&gt;
|title&lt;br /&gt;
|Auto-Vervollständigungsfeld für Wiki-Seiten&lt;br /&gt;
|-&lt;br /&gt;
|Kombinationsfeld&lt;br /&gt;
|combobox&lt;br /&gt;
|Kombiniert ein &#039;&#039;Textfeld&#039;&#039; und eine &#039;&#039;Dropdown-Liste&#039;&#039;. Benutzer können einen vordefinierten Wert auswählen oder einen eigenen Wert eingeben.&lt;br /&gt;
|-&lt;br /&gt;
|Passwort-Eingabe&lt;br /&gt;
|password&lt;br /&gt;
|Erstellt ein Passwortfeld mit Passwort- und Passwort-Wiederholungsfeld. Wird für die Zieltypen &amp;lt;code&amp;gt;JSON on wikipage&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Template&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;Email&amp;lt;/code&amp;gt; nicht verwendet, da das Passwort im Klartext gespeichert wird.&lt;br /&gt;
|-&lt;br /&gt;
|Tag-Eingabe&lt;br /&gt;
|tag&lt;br /&gt;
|Token-Feld zum Hinzufügen mehrerer Werte; Werte werden mit der &amp;lt;code&amp;gt;Eingabetaste&amp;lt;/code&amp;gt; getrennt&lt;br /&gt;
|-&lt;br /&gt;
|Datum&lt;br /&gt;
|date&lt;br /&gt;
|Entspricht &#039;&#039;Date Picker&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Titel-Eingabe&lt;br /&gt;
|title&lt;br /&gt;
|Wählt Seitentitel im Wiki aus&lt;br /&gt;
|-&lt;br /&gt;
|Benutzer-Eingabe&lt;br /&gt;
|user_picker&lt;br /&gt;
|Im Wiki vorhandener Benutzername&lt;br /&gt;
|-&lt;br /&gt;
|Gruppen-Eingabe&lt;br /&gt;
|group_picker&lt;br /&gt;
|Im Wiki vorhandener Gruppenname&lt;br /&gt;
|-&lt;br /&gt;
|Gruppen-Multiauswahl&lt;br /&gt;
|group_multiselect&lt;br /&gt;
|Mehrere Gruppennamen&lt;br /&gt;
|-&lt;br /&gt;
|Benutzer-Multiauswahl&lt;br /&gt;
|user_multiselect&lt;br /&gt;
|Mehrere Benutzernamen&lt;br /&gt;
|-&lt;br /&gt;
|Titel-Multiauswahl&lt;br /&gt;
|title_multiselect&lt;br /&gt;
|Mehrere Seitentitel&lt;br /&gt;
|-&lt;br /&gt;
|Date Picker&lt;br /&gt;
|date_picker&lt;br /&gt;
|Kalender-Widget&lt;br /&gt;
|-&lt;br /&gt;
|Prozent&lt;br /&gt;
|percent&lt;br /&gt;
|Ganzzahliger Wert&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Weitere Elemente ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!Element&lt;br /&gt;
!Eingabetyp&lt;br /&gt;
!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|Statischer Wikitext&lt;br /&gt;
|static_wikitext&lt;br /&gt;
|Nicht bearbeitbarer Text&lt;br /&gt;
|-&lt;br /&gt;
|Schaltfläche&lt;br /&gt;
|button&lt;br /&gt;
|Löst eine Aktion aus (erfordert einen definierten Event-Listener)&lt;br /&gt;
|-&lt;br /&gt;
|Meldungsbanner&lt;br /&gt;
|message&lt;br /&gt;
|Meldung, die an beliebiger Stelle im Formular angezeigt werden kann; der gewählte Typ (Hinweis, Fehler, Warnung, Erfolg) bestimmt die visuelle Darstellung&lt;br /&gt;
|-&lt;br /&gt;
|Teilformular-Import&lt;br /&gt;
|form_input&lt;br /&gt;
|Fügt Formularfelder aus einem anderen Formular hinzu&lt;br /&gt;
|-&lt;br /&gt;
|Symbol&lt;br /&gt;
|icon&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Indikator&lt;br /&gt;
|indicator&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Beschriftung&lt;br /&gt;
|label&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|[[Handbuch:Erweiterung/Forms/Fortschrittsbalken|Fortschrittsbalken]]&lt;br /&gt;
|progress_bar&lt;br /&gt;
|Visuelle Darstellung der Anzahl abgeschlossener Schritte in einem Formular, beispielsweise einer Checkliste&lt;br /&gt;
|-&lt;br /&gt;
|Abschnittsüberschrift&lt;br /&gt;
|section_label&lt;br /&gt;
|Überschrift eines Formularabschnitts&lt;br /&gt;
|-&lt;br /&gt;
|Horizontale Linie&lt;br /&gt;
|hr&lt;br /&gt;
|Visuelle Trennlinie&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Optionen für Eingabefelder ===&lt;br /&gt;
Jedes Eingabefeld kann eine beliebige Kombination der folgenden Optionen besitzen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|+Allgemein&lt;br /&gt;
!Typ&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |(alle)&lt;br /&gt;
|Name&lt;br /&gt;
|In der Datenbank gespeicherter Feldname (Sonderzeichen vermeiden)&lt;br /&gt;
|-&lt;br /&gt;
|Beschriftung&lt;br /&gt;
|Dem Benutzer angezeigte Feldbezeichnung&lt;br /&gt;
|-&lt;br /&gt;
|Hilfe&lt;br /&gt;
|Erstellt einen Tooltip neben der Beschriftung&lt;br /&gt;
|-&lt;br /&gt;
|Kein Layout&lt;br /&gt;
|Blendet die Beschriftung aus&lt;br /&gt;
|-&lt;br /&gt;
|Anzeigen bei&lt;br /&gt;
|Modus, in dem dieses Feld sichtbar ist&lt;br /&gt;
|-&lt;br /&gt;
|Bearbeitbar bei&lt;br /&gt;
|Legt fest, wann der Feldwert bearbeitet werden kann&lt;br /&gt;
|-&lt;br /&gt;
|Buch&lt;br /&gt;
|Rückgabe-Eigenschaft&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
|+Darstellung&lt;br /&gt;
!Typ&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |(alle)&lt;br /&gt;
|CSS-Klassen&lt;br /&gt;
|Fügt individuelle CSS-Klassen zur Verwendung in &#039;&#039;MediaWiki:Common.css&#039;&#039; hinzu.&lt;br /&gt;
* Die Klasse wird direkt auf das Formularfeld angewendet und umfasst nicht die Beschriftung.&lt;br /&gt;
* Mehrere Klassen können gemeinsam oder einzeln angegeben werden.&lt;br /&gt;
|-&lt;br /&gt;
|Stil&lt;br /&gt;
|Definiert einen Inline-Stil, der nur dieses Feld betrifft. Der Stil wird auf den Wrapper angewendet und umfasst sowohl die Beschriftung als auch das Feld.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Textbereich, Wikitext-Eingabe&lt;br /&gt;
|Anzahl Zeilen&lt;br /&gt;
|Wird für Textbereiche verwendet&lt;br /&gt;
|-&lt;br /&gt;
|Platzhalter&lt;br /&gt;
|Text, der angezeigt wird, bevor der Benutzer einen Wert eingibt (hat keine Wirkung, wenn bereits ein Standardwert definiert ist)&lt;br /&gt;
|-&lt;br /&gt;
|Optionsfeldgruppe&lt;br /&gt;
|Kein Standardwert&lt;br /&gt;
|Stellt sicher, dass kein Optionsfeld vorausgewählt ist, wenn eine Vorauswahl nicht sinnvoll wäre&lt;br /&gt;
|-&lt;br /&gt;
|Optionsfeldgruppe, Kontrollkästchen-Multiauswahl&lt;br /&gt;
|Horizontales Layout&lt;br /&gt;
|Ordnet Kontrollkästchen oder Optionsfelder horizontal an&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Schaltfläche&lt;br /&gt;
|Symbol&lt;br /&gt;
|Zeigt ein Symbol vor dem Text an (z. B. ein Bootstrap-Icon wie &amp;lt;code&amp;gt;bi bi-calendar&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|Indikator&lt;br /&gt;
|Zeigt ein Symbol nach dem Text an (z. B. ein Bootstrap-Icon wie &amp;lt;code&amp;gt;bi bi-arrow-right&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|Mit Rahmen&lt;br /&gt;
|Wenn deaktiviert, wird die Schaltfläche wie normaler Text dargestellt (und kann über CSS-Klassen wie &amp;lt;code&amp;gt;btn button-warning&amp;lt;/code&amp;gt; gestaltet werden)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
|+Weitere Optionen&lt;br /&gt;
!Typ&lt;br /&gt;
!Feldgruppe&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |(alle)&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Benutzerdefinierte Widget-Eigenschaften&lt;br /&gt;
|Schlüssel&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Wert&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Listener&lt;br /&gt;
|Ereignis&lt;br /&gt;
|Von [https://doc.wikimedia.org/oojs-ui/master/js/OO.ui.html OO.ui-Widgets] unterstütztes Ereignis, z. B. &#039;&#039;change&#039;&#039;, &#039;&#039;enter&#039;&#039;, &#039;&#039;focus&#039;&#039;, &#039;&#039;blur&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Callback&lt;br /&gt;
|Funktion, die beim Auftreten des Ereignisses aufgerufen wird (kann beispielsweise in MediaWiki:Common.js definiert werden)&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|Standardwert / Vorausgewählt&lt;br /&gt;
|Wert, der verwendet wird, wenn der Benutzer keinen Wert angibt; beim Feldtyp &#039;&#039;checkbox&#039;&#039; lautet die Option stattdessen &#039;&#039;Vorausgewählt&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Pflichtfeld&lt;br /&gt;
|Das Formular kann ohne einen Wert in diesem Feld nicht abgesendet werden&lt;br /&gt;
|-&lt;br /&gt;
|Passwort&lt;br /&gt;
|&lt;br /&gt;
|Passwortstärke&lt;br /&gt;
|schwach:&amp;lt;br&amp;gt;&lt;br /&gt;
mittel:&amp;lt;br&amp;gt;&lt;br /&gt;
stark:&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Tag&lt;br /&gt;
|&lt;br /&gt;
|Eingabeposition&lt;br /&gt;
|inline:&amp;lt;br&amp;gt;&lt;br /&gt;
outline:&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Beliebige Werte zulassen&lt;br /&gt;
|Erlaubt die Eingabe anderer Werte als der definierten zulässigen Werte (nur erforderlich, wenn zulässige Werte definiert wurden)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Formulareinstellungen ==&lt;br /&gt;
&lt;br /&gt;
=== Darstellung ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Titel&lt;br /&gt;
|Anzeigetitel des Formulars&lt;br /&gt;
|-&lt;br /&gt;
|Titel anzeigen&lt;br /&gt;
|Zeigt den Formulartitel oberhalb jeder Formularinstanz an&lt;br /&gt;
|-&lt;br /&gt;
|Formularname anzeigen&lt;br /&gt;
|Zeigt den Namen des Formulars als erstes Formularelement mit der Beschriftung &#039;&#039;Verwendetes Formular&#039;&#039; an&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Verhalten ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Kategorien&lt;br /&gt;
|Fügt jeder Formularinstanz Kategorien hinzu; Werte werden mit der &amp;lt;code&amp;gt;Eingabetaste&amp;lt;/code&amp;gt; getrennt&lt;br /&gt;
|-&lt;br /&gt;
|Nach Erstellung versiegeln&lt;br /&gt;
|Formularinstanzen können nach dem ersten Speichern nicht mehr bearbeitet werden&lt;br /&gt;
|-&lt;br /&gt;
|Zwischenspeichern aktivieren&lt;br /&gt;
|Formularinstanzen zeigen sowohl eine &amp;lt;code&amp;gt;Speichern&amp;lt;/code&amp;gt;- als auch eine &amp;lt;code&amp;gt;Speichern &amp;amp; Schließen&amp;lt;/code&amp;gt;-Schaltfläche an;&lt;br /&gt;
die Schaltfläche &amp;lt;code&amp;gt;Speichern&amp;lt;/code&amp;gt; speichert die aktuellen Formularwerte und belässt das Formular im Bearbeitungsmodus.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Infrastruktur ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Resource-Loader-Abhängigkeiten&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Versionen nachverfolgen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Einbindbar&lt;br /&gt;
|Erweitert ein Formular&lt;br /&gt;
|-&lt;br /&gt;
|Abstrakt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Teilformular&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ziel ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Zieltyp&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Vordefinierter Seitentitel für mit diesem Formular erstellte Seiten&lt;br /&gt;
|Verwenden Sie den Feldnamen, um den Wert eines Formularfeldes einzusetzen.&lt;br /&gt;
Beispiel: Wenn ein Feld den Namen &amp;lt;code&amp;gt;company_name&amp;lt;/code&amp;gt; besitzt, kann &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{company_name}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; als Seitentitel oder als Teil des Seitentitels verwendet werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Listener ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Ereignis&lt;br /&gt;
|Jeder Listener reagiert auf eines der folgenden Ereignisse:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;initCompleteForm:&#039;&#039; Das Objekt wurde initialisiert&lt;br /&gt;
* &#039;&#039;parseComplete:&#039;&#039; JSON, Schema oder Konfiguration wurden vollständig verarbeitet&lt;br /&gt;
* &#039;&#039;renderComplete:&#039;&#039; Die Benutzeroberfläche wurde vollständig im DOM gerendert&lt;br /&gt;
* &#039;&#039;beforeSubmitData:&#039;&#039; Direkt vor dem Absenden der Daten&lt;br /&gt;
|-&lt;br /&gt;
|Callback&lt;br /&gt;
|Ruft eine Funktion auf, wenn das Ereignis eintritt;&lt;br /&gt;
siehe das Beispiel zum [[Handbuch:Erweiterung/Forms/Fortschrittsbalken|Fortschrittsbalken]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{translation}}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16578</id>
		<title>Handbuch:Erweiterung/Forms/Fortschrittsbalken</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16578"/>
		<updated>2026-06-02T14:36:01Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Fortschrittsbalken zeigt einen berechneten Fortschrittswert basierend auf den ausgewählten Optionen in einem Formular an. In diesem Beispiel wird er für eine Checkliste verwendet, kann jedoch auch für andere Anwendungsfälle eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== Hinzufügen eines Fortschrittsbalkens ==&lt;br /&gt;
Dieses Beispiel zeigt eine mögliche Implementierung eines Fortschrittsbalkens für eine Checkliste.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extension Forms Progress bar example.png|alt=Checkliste mit zwei Gruppen von Kontrollkästchen für Onboarding-Aufgaben|center|thumb|550x550px|Beispiel eines Fortschrittsbalkens für Checklistenpunkte]]&lt;br /&gt;
&lt;br /&gt;
Um dieses Formular nachzubilden, werden folgende Komponenten benötigt:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Bereitstellen der JavaScript-Logik&#039;&#039;&#039; in &#039;&#039;MediaWiki:Common.js&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Definition&#039;&#039;&#039; der passenden Syntax für Kontrollkästchenfelder und deren &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Hinzufügen eines Event-Listeners&#039;&#039;&#039; in den Formulareigenschaften&lt;br /&gt;
&lt;br /&gt;
=== Bereitstellen der Logik in &#039;&#039;MediaWiki:Common.js&#039;&#039; ===&lt;br /&gt;
Fügen Sie die folgende JavaScript-Funktion zu [https://de.wiki.bluespice.com/wiki/Handbuch:Das_Konzept_der_Namensr%C3%A4ume#Namensraum_.22MediaWiki.22 &#039;&#039;MediaWiki:Common.js&#039;&#039;] hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
/*Extension:Forms - Add a progress bar for checkbox items */&lt;br /&gt;
function CalcProgress( data ) {&lt;br /&gt;
	var dfd = $.Deferred();&lt;br /&gt;
	var checked = 0;&lt;br /&gt;
	var ItemCheckboxes = this.$element.find( &#039;input[value^=check]&#039; );&lt;br /&gt;
	var total = ItemCheckboxes.length;&lt;br /&gt;
	if ( total &amp;lt; 1 ) {&lt;br /&gt;
		dfd.resolve( data );&lt;br /&gt;
		return dfd.promise();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var items = this.getItems();&lt;br /&gt;
	for( var name in data ) {&lt;br /&gt;
		if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		var checkedCheckboxes = data[name];&lt;br /&gt;
		for ( var i = 0; i &amp;lt; checkedCheckboxes.length; i++ ) {&lt;br /&gt;
			checked++;	&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	data.progress = ( 100 * checked ) / total;&lt;br /&gt;
	dfd.resolve( data );&lt;br /&gt;
&lt;br /&gt;
	return dfd.promise();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Zeile 5 wird das Präfix für jedes Kontrollkästchen definiert, das in die Fortschrittsberechnung einbezogen werden soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input[value^=check]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass der Wert &#039;&#039;data&#039;&#039; Ihrer Kontrollkästchen mit &#039;&#039;check&#039;&#039; beginnen muss. Dies bezieht sich auf den &#039;&#039;data&#039;&#039;-Wert, der in jeder Kontrollkästchenoption definiert wird:&lt;br /&gt;
&lt;br /&gt;
[[File:checkbox data value check.png|thumb|center|Datendefinition im Formular, hier beginnend mit „check-“]]&lt;br /&gt;
&lt;br /&gt;
In Zeile 14 werden nur diejenigen Felder berücksichtigt, deren Name mit &#039;&#039;checkbox_multi&#039;&#039; beginnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basierend auf diesem Implementierungsbeispiel wird eine Kontrollkästchenoption nur dann in die Fortschrittsberechnung einbezogen, wenn der Feldname mit &#039;&#039;checkbox_multi-&#039;&#039; beginnt und der &#039;&#039;data&#039;&#039;-Wert der Option mit &#039;&#039;check&#039;&#039; anfängt.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie andere Präfixe für Feldnamen oder Optionswerte verwenden, müssen Sie den JavaScript-Code entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Anwenden der Syntax auf die Checklistenpunkte ===&lt;br /&gt;
Das folgende Feld vom Typ &amp;lt;code&amp;gt;checkbox_multiselect&amp;lt;/code&amp;gt; verwendet sowohl das korrekte Namenspräfix als auch das korrekte &#039;&#039;data&#039;&#039;-Präfix. Das Feld wird daher in die Berechnung einbezogen, und alle drei Optionen tragen zum Fortschrittswert bei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			...&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Ausstattung bereitstellen (Laptop, Telefon)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Zugriff auf erforderliche Systeme gewähren&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Vorstellung im Team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erstellen eines Event-Listeners in den Formulareigenschaften ===&lt;br /&gt;
Um Ihr Formular mit der JavaScript-Funktion zu verbinden, müssen Sie in den Formulareigenschaften den [https://en.wiki.bluespice.com/wiki/Manual:Extension/Forms/Form_elements_and_settings#Listeners Listener] anlegen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extension Forms Progress bar listener.png|center|thumb|650x650px|Hinzufügen des Listeners zu den Formulareigenschaften]]&lt;br /&gt;
&lt;br /&gt;
So fügen Sie den Listener hinzu:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Öffnen&#039;&#039;&#039; Sie die Formulareigenschaften.&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf &#039;&#039;Listeners&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Wählen&#039;&#039;&#039; Sie das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; aus und geben Sie den Namen Ihrer JavaScript-Funktion ein. In unserem Beispiel lautet dieser &amp;lt;code&amp;gt;CalcProgress&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; wird beim Speichern des Formulars ausgelöst. Änderungen an Kontrollkästchen-Auswahlen werden daher während der Bearbeitung nicht unmittelbar berücksichtigt. Der Fortschrittsbalken wird erst nach dem Speichern des Formulars aktualisiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vollständiges Implementierungsbeispiel ===&lt;br /&gt;
Dieses Beispiel basiert auf der oben beschriebenen JavaScript-Logik (insbesondere den erforderlichen Namenskonventionen). Zusätzlich wird in der untenstehenden JSON-Konfiguration ein Schema für die Seitennamensgebung definiert. Jede Checkliste wird als eigene Wiki-Seite unter dem Präfix &#039;&#039;ExampleChecklist/&#039;&#039; gespeichert, wobei der Name der Checkliste Bestandteil des Seitentitels ist.&lt;br /&gt;
&lt;br /&gt;
Um dieses Beispiel zu verwenden, speichern Sie ein neues Formular (z. B. &#039;&#039;ExampleChecklist.form&#039;&#039;) und kopieren Sie die folgende Konfiguration in die Definitionsquelle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;title&amp;quot;: &amp;quot;Beispiel Fortschrittsbalken&amp;quot;,&lt;br /&gt;
	&amp;quot;showTitle&amp;quot;: true,&lt;br /&gt;
	&amp;quot;showFormName&amp;quot;: false,&lt;br /&gt;
	&amp;quot;buttonsFloat&amp;quot;: false,&lt;br /&gt;
	&amp;quot;categories&amp;quot;: [],&lt;br /&gt;
	&amp;quot;sealAfterCreation&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableProgressSave&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableEditSummary&amp;quot;: false,&lt;br /&gt;
	&amp;quot;rlDependencies&amp;quot;: [],&lt;br /&gt;
	&amp;quot;useFormRevs&amp;quot;: false,&lt;br /&gt;
	&amp;quot;includable&amp;quot;: false,&lt;br /&gt;
	&amp;quot;extends&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
	&amp;quot;abstract&amp;quot;: false,&lt;br /&gt;
	&amp;quot;partial&amp;quot;: false,&lt;br /&gt;
	&amp;quot;target&amp;quot;: {&lt;br /&gt;
		&amp;quot;type&amp;quot;: &amp;quot;json-on-wikipage&amp;quot;,&lt;br /&gt;
		&amp;quot;predefined_title&amp;quot;: &amp;quot;BeispielCheckliste/{{checklistname}}&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;show_target_afterAction&amp;quot;: false,&lt;br /&gt;
	&amp;quot;listeners&amp;quot;: {&lt;br /&gt;
		&amp;quot;beforeSubmitData&amp;quot;: &amp;quot;jscb:CalcProgress&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;lang&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
	&amp;quot;items&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checklistname&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Checkliste Name&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;progress&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Fortschritt&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: true,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;margin:1em auto!important; max-width:100%&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: {&lt;br /&gt;
				&amp;quot;widget_progress&amp;quot;: &amp;quot;0&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;progress_bar&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-getting_started&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Loslegen&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-profile&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Persönliche Angaben und Rolleninformationen bereitstellen&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-documents&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Erforderliche Dokumente einreichen&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Einführungsmaterialien durchsehen&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Einrichtung des Arbeitsplatzes&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Ausstattung bereitstellen (Laptop, Telefon)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Zugriff auf erforderliche Systeme gewähren&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Vorstellung im Team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:Extension_Forms_Progress_bar_listener.png&amp;diff=16577</id>
		<title>Datei:Extension Forms Progress bar listener.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:Extension_Forms_Progress_bar_listener.png&amp;diff=16577"/>
		<updated>2026-06-02T14:33:12Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16576</id>
		<title>Handbuch:Erweiterung/Forms/Fortschrittsbalken</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16576"/>
		<updated>2026-06-02T14:33:03Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Fortschrittsbalken zeigt einen berechneten Fortschrittswert basierend auf den ausgewählten Optionen in einem Formular an. In diesem Beispiel wird er für eine Checkliste verwendet, kann jedoch auch für andere Anwendungsfälle eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== Hinzufügen eines Fortschrittsbalkens ==&lt;br /&gt;
Dieses Beispiel zeigt eine mögliche Implementierung eines Fortschrittsbalkens für eine Checkliste.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extension Forms Progress bar example.png|alt=Checkliste mit zwei Gruppen von Kontrollkästchen für Onboarding-Aufgaben|center|thumb|550x550px|Beispiel eines Fortschrittsbalkens für Checklistenpunkte]]&lt;br /&gt;
&lt;br /&gt;
Um dieses Formular nachzubilden, werden folgende Komponenten benötigt:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Bereitstellen der JavaScript-Logik&#039;&#039;&#039; in &#039;&#039;MediaWiki:Common.js&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Definition&#039;&#039;&#039; der passenden Syntax für Kontrollkästchenfelder und deren &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Hinzufügen eines Event-Listeners&#039;&#039;&#039; in den Formulareigenschaften&lt;br /&gt;
&lt;br /&gt;
=== Bereitstellen der Logik in &#039;&#039;MediaWiki:Common.js&#039;&#039; ===&lt;br /&gt;
Fügen Sie die folgende JavaScript-Funktion zu [https://de.wiki.bluespice.com/wiki/Handbuch:Das_Konzept_der_Namensr%C3%A4ume#Namensraum_.22MediaWiki.22 &#039;&#039;MediaWiki:Common.js&#039;&#039;] hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
/*Extension:Forms - Add a progress bar for checkbox items */&lt;br /&gt;
function CalcProgress( data ) {&lt;br /&gt;
	var dfd = $.Deferred();&lt;br /&gt;
	var checked = 0;&lt;br /&gt;
	var ItemCheckboxes = this.$element.find( &#039;input[value^=check]&#039; );&lt;br /&gt;
	var total = ItemCheckboxes.length;&lt;br /&gt;
	if ( total &amp;lt; 1 ) {&lt;br /&gt;
		dfd.resolve( data );&lt;br /&gt;
		return dfd.promise();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var items = this.getItems();&lt;br /&gt;
	for( var name in data ) {&lt;br /&gt;
		if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		var checkedCheckboxes = data[name];&lt;br /&gt;
		for ( var i = 0; i &amp;lt; checkedCheckboxes.length; i++ ) {&lt;br /&gt;
			checked++;	&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	data.progress = ( 100 * checked ) / total;&lt;br /&gt;
	dfd.resolve( data );&lt;br /&gt;
&lt;br /&gt;
	return dfd.promise();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Zeile 5 wird das Präfix für jedes Kontrollkästchen definiert, das in die Fortschrittsberechnung einbezogen werden soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input[value^=check]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass der Wert &#039;&#039;data&#039;&#039; Ihrer Kontrollkästchen mit &#039;&#039;check&#039;&#039; beginnen muss. Dies bezieht sich auf den &#039;&#039;data&#039;&#039;-Wert, der in jeder Kontrollkästchenoption definiert wird:&lt;br /&gt;
&lt;br /&gt;
[[File:checkbox data value check.png|thumb|center|Datendefinition im Formular, hier beginnend mit „check-“]]&lt;br /&gt;
&lt;br /&gt;
In Zeile 14 werden nur diejenigen Felder berücksichtigt, deren Name mit &#039;&#039;checkbox_multi&#039;&#039; beginnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basierend auf diesem Implementierungsbeispiel wird eine Kontrollkästchenoption nur dann in die Fortschrittsberechnung einbezogen, wenn der Feldname mit &#039;&#039;checkbox_multi-&#039;&#039; beginnt und der &#039;&#039;data&#039;&#039;-Wert der Option mit &#039;&#039;check&#039;&#039; anfängt.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie andere Präfixe für Feldnamen oder Optionswerte verwenden, müssen Sie den JavaScript-Code entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Anwenden der Syntax auf die Checklistenpunkte ===&lt;br /&gt;
Das folgende Feld vom Typ &amp;lt;code&amp;gt;checkbox_multiselect&amp;lt;/code&amp;gt; verwendet sowohl das korrekte Namenspräfix als auch das korrekte &#039;&#039;data&#039;&#039;-Präfix. Das Feld wird daher in die Berechnung einbezogen, und alle drei Optionen tragen zum Fortschrittswert bei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			...&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Ausstattung bereitstellen (Laptop, Telefon)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Zugriff auf erforderliche Systeme gewähren&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Vorstellung im Team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erstellen eines Event-Listeners in den Formulareigenschaften ===&lt;br /&gt;
Um Ihr Formular mit der JavaScript-Funktion zu verbinden, müssen Sie in den Formulareigenschaften den [https://en.wiki.bluespice.com/wiki/Manual:Extension/Forms/Form_elements_and_settings#Listeners Listener] anlegen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extension Forms Progress bar listener.png|center|thumb|650x650px|Hinzufügen des Listeners zu den Formulareigenschaften]]&lt;br /&gt;
&lt;br /&gt;
So fügen Sie den Listener hinzu:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Öffnen&#039;&#039;&#039; Sie die Formulareigenschaften.&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf &#039;&#039;Listeners&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Wählen&#039;&#039;&#039; Sie das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; aus und geben Sie den Namen Ihrer JavaScript-Funktion ein. In unserem Beispiel lautet dieser &amp;lt;code&amp;gt;CalcProgress&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; wird beim Speichern des Formulars ausgelöst. Änderungen an Kontrollkästchen-Auswahlen werden daher während der Bearbeitung nicht unmittelbar berücksichtigt. Der Fortschrittsbalken wird erst nach dem Speichern des Formulars aktualisiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vollständiges Implementierungsbeispiel ===&lt;br /&gt;
Dieses Beispiel basiert auf der oben beschriebenen JavaScript-Logik (insbesondere den erforderlichen Namenskonventionen). Zusätzlich wird in der untenstehenden JSON-Konfiguration ein Schema für die Seitennamensgebung definiert. Jede Checkliste wird als eigene Wiki-Seite unter dem Präfix &#039;&#039;ExampleChecklist/&#039;&#039; gespeichert, wobei der Name der Checkliste Bestandteil des Seitentitels ist.&lt;br /&gt;
&lt;br /&gt;
Um dieses Beispiel zu verwenden, speichern Sie ein neues Formular (z. B. &#039;&#039;ExampleChecklist.form&#039;&#039;) und kopieren Sie die folgende Konfiguration in die Definitionsquelle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;title&amp;quot;: &amp;quot;Example Progress Bar&amp;quot;,&lt;br /&gt;
	&amp;quot;showTitle&amp;quot;: true,&lt;br /&gt;
	&amp;quot;showFormName&amp;quot;: false,&lt;br /&gt;
	&amp;quot;buttonsFloat&amp;quot;: false,&lt;br /&gt;
	&amp;quot;categories&amp;quot;: [],&lt;br /&gt;
	&amp;quot;sealAfterCreation&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableProgressSave&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableEditSummary&amp;quot;: false,&lt;br /&gt;
	&amp;quot;rlDependencies&amp;quot;: [],&lt;br /&gt;
	&amp;quot;useFormRevs&amp;quot;: false,&lt;br /&gt;
	&amp;quot;includable&amp;quot;: false,&lt;br /&gt;
	&amp;quot;extends&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
	&amp;quot;abstract&amp;quot;: false,&lt;br /&gt;
	&amp;quot;partial&amp;quot;: false,&lt;br /&gt;
	&amp;quot;target&amp;quot;: {&lt;br /&gt;
		&amp;quot;type&amp;quot;: &amp;quot;json-on-wikipage&amp;quot;,&lt;br /&gt;
		&amp;quot;predefined_title&amp;quot;: &amp;quot;ExampleChecklist/{{checklistname}}&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;show_target_afterAction&amp;quot;: false,&lt;br /&gt;
	&amp;quot;listeners&amp;quot;: {&lt;br /&gt;
		&amp;quot;beforeSubmitData&amp;quot;: &amp;quot;jscb:CalcProgress&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;lang&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
	&amp;quot;items&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checklistname&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Checklist name&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;progress&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Progress&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: true,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;margin:1em auto!important; max-width:100%&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: {&lt;br /&gt;
				&amp;quot;widget_progress&amp;quot;: &amp;quot;0&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;progress_bar&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-getting_started&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Getting started&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-profile&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide personal and role information&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-documents&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Submit required documents&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Review introduction materials&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16575</id>
		<title>Handbuch:Erweiterung/Forms/Fortschrittsbalken</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16575"/>
		<updated>2026-06-02T14:31:06Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Fortschrittsbalken zeigt einen berechneten Fortschrittswert basierend auf den ausgewählten Optionen in einem Formular an. In diesem Beispiel wird er für eine Checkliste verwendet, kann jedoch auch für andere Anwendungsfälle eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== Hinzufügen eines Fortschrittsbalkens ==&lt;br /&gt;
Dieses Beispiel zeigt eine mögliche Implementierung eines Fortschrittsbalkens für eine Checkliste.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extension Forms Progress bar example.png|alt=Checkliste mit zwei Gruppen von Kontrollkästchen für Onboarding-Aufgaben|center|thumb|550x550px|Beispiel eines Fortschrittsbalkens für Checklistenpunkte]]&lt;br /&gt;
&lt;br /&gt;
Um dieses Formular nachzubilden, werden folgende Komponenten benötigt:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Bereitstellen der JavaScript-Logik&#039;&#039;&#039; in &#039;&#039;MediaWiki:Common.js&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Definition&#039;&#039;&#039; der passenden Syntax für Kontrollkästchenfelder und deren &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Hinzufügen eines Event-Listeners&#039;&#039;&#039; in den Formulareigenschaften&lt;br /&gt;
&lt;br /&gt;
=== Bereitstellen der Logik in &#039;&#039;MediaWiki:Common.js&#039;&#039; ===&lt;br /&gt;
Fügen Sie die folgende JavaScript-Funktion zu [https://de.wiki.bluespice.com/wiki/Handbuch:Das_Konzept_der_Namensr%C3%A4ume#Namensraum_.22MediaWiki.22 &#039;&#039;MediaWiki:Common.js&#039;&#039;] hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
/*Extension:Forms - Add a progress bar for checkbox items */&lt;br /&gt;
function CalcProgress( data ) {&lt;br /&gt;
	var dfd = $.Deferred();&lt;br /&gt;
	var checked = 0;&lt;br /&gt;
	var ItemCheckboxes = this.$element.find( &#039;input[value^=check]&#039; );&lt;br /&gt;
	var total = ItemCheckboxes.length;&lt;br /&gt;
	if ( total &amp;lt; 1 ) {&lt;br /&gt;
		dfd.resolve( data );&lt;br /&gt;
		return dfd.promise();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var items = this.getItems();&lt;br /&gt;
	for( var name in data ) {&lt;br /&gt;
		if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		var checkedCheckboxes = data[name];&lt;br /&gt;
		for ( var i = 0; i &amp;lt; checkedCheckboxes.length; i++ ) {&lt;br /&gt;
			checked++;	&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	data.progress = ( 100 * checked ) / total;&lt;br /&gt;
	dfd.resolve( data );&lt;br /&gt;
&lt;br /&gt;
	return dfd.promise();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Zeile 5 wird das Präfix für jedes Kontrollkästchen definiert, das in die Fortschrittsberechnung einbezogen werden soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input[value^=check]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass der Wert &#039;&#039;data&#039;&#039; Ihrer Kontrollkästchen mit &#039;&#039;check&#039;&#039; beginnen muss. Dies bezieht sich auf den &#039;&#039;data&#039;&#039;-Wert, der in jeder Kontrollkästchenoption definiert wird:&lt;br /&gt;
&lt;br /&gt;
[[File:checkbox data value check.png|thumb|center|Datendefinition im Formular, hier beginnend mit „check-“]]&lt;br /&gt;
&lt;br /&gt;
In Zeile 14 werden nur diejenigen Felder berücksichtigt, deren Name mit &#039;&#039;checkbox_multi&#039;&#039; beginnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basierend auf diesem Implementierungsbeispiel wird eine Kontrollkästchenoption nur dann in die Fortschrittsberechnung einbezogen, wenn der Feldname mit &#039;&#039;checkbox_multi-&#039;&#039; beginnt und der &#039;&#039;data&#039;&#039;-Wert der Option mit &#039;&#039;check&#039;&#039; anfängt.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie andere Präfixe für Feldnamen oder Optionswerte verwenden, müssen Sie den JavaScript-Code entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Anwenden der Syntax auf die Checklistenpunkte ===&lt;br /&gt;
Das folgende Feld vom Typ &amp;lt;code&amp;gt;checkbox_multiselect&amp;lt;/code&amp;gt; verwendet sowohl das korrekte Namenspräfix als auch das korrekte &#039;&#039;data&#039;&#039;-Präfix. Das Feld wird daher in die Berechnung einbezogen, und alle drei Optionen tragen zum Fortschrittswert bei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			...&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Ausstattung bereitstellen (Laptop, Telefon)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Zugriff auf erforderliche Systeme gewähren&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Vorstellung im Team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erstellen eines Event-Listeners in den Formulareigenschaften ===&lt;br /&gt;
Um Ihr Formular mit der JavaScript-Funktion zu verbinden, müssen Sie in den Formulareigenschaften den [https://en.wiki.bluespice.com/wiki/Manual:Extension/Forms/Form_elements_and_settings#Listeners Listener] anlegen:&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Forms Progress bar listener.png|center|thumb|650x650px|Hinzufügen des Listeners zu den Formulareigenschaften]]&lt;br /&gt;
&lt;br /&gt;
So fügen Sie den Listener hinzu:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Öffnen&#039;&#039;&#039; Sie die Formulareigenschaften.&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf &#039;&#039;Listeners&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Wählen&#039;&#039;&#039; Sie das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; aus und geben Sie den Namen Ihrer JavaScript-Funktion ein. In unserem Beispiel lautet dieser &amp;lt;code&amp;gt;CalcProgress&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; wird beim Speichern des Formulars ausgelöst. Änderungen an Kontrollkästchen-Auswahlen werden daher während der Bearbeitung nicht unmittelbar berücksichtigt. Der Fortschrittsbalken wird erst nach dem Speichern des Formulars aktualisiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vollständiges Implementierungsbeispiel ===&lt;br /&gt;
Dieses Beispiel basiert auf der oben beschriebenen JavaScript-Logik (insbesondere den erforderlichen Namenskonventionen). Zusätzlich wird in der untenstehenden JSON-Konfiguration ein Schema für die Seitennamensgebung definiert. Jede Checkliste wird als eigene Wiki-Seite unter dem Präfix &#039;&#039;ExampleChecklist/&#039;&#039; gespeichert, wobei der Name der Checkliste Bestandteil des Seitentitels ist.&lt;br /&gt;
&lt;br /&gt;
Um dieses Beispiel zu verwenden, speichern Sie ein neues Formular (z. B. &#039;&#039;ExampleChecklist.form&#039;&#039;) und kopieren Sie die folgende Konfiguration in die Definitionsquelle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;title&amp;quot;: &amp;quot;Example Progress Bar&amp;quot;,&lt;br /&gt;
	&amp;quot;showTitle&amp;quot;: true,&lt;br /&gt;
	&amp;quot;showFormName&amp;quot;: false,&lt;br /&gt;
	&amp;quot;buttonsFloat&amp;quot;: false,&lt;br /&gt;
	&amp;quot;categories&amp;quot;: [],&lt;br /&gt;
	&amp;quot;sealAfterCreation&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableProgressSave&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableEditSummary&amp;quot;: false,&lt;br /&gt;
	&amp;quot;rlDependencies&amp;quot;: [],&lt;br /&gt;
	&amp;quot;useFormRevs&amp;quot;: false,&lt;br /&gt;
	&amp;quot;includable&amp;quot;: false,&lt;br /&gt;
	&amp;quot;extends&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
	&amp;quot;abstract&amp;quot;: false,&lt;br /&gt;
	&amp;quot;partial&amp;quot;: false,&lt;br /&gt;
	&amp;quot;target&amp;quot;: {&lt;br /&gt;
		&amp;quot;type&amp;quot;: &amp;quot;json-on-wikipage&amp;quot;,&lt;br /&gt;
		&amp;quot;predefined_title&amp;quot;: &amp;quot;ExampleChecklist/{{checklistname}}&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;show_target_afterAction&amp;quot;: false,&lt;br /&gt;
	&amp;quot;listeners&amp;quot;: {&lt;br /&gt;
		&amp;quot;beforeSubmitData&amp;quot;: &amp;quot;jscb:CalcProgress&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;lang&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
	&amp;quot;items&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checklistname&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Checklist name&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;progress&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Progress&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: true,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;margin:1em auto!important; max-width:100%&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: {&lt;br /&gt;
				&amp;quot;widget_progress&amp;quot;: &amp;quot;0&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;progress_bar&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-getting_started&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Getting started&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-profile&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide personal and role information&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-documents&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Submit required documents&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Review introduction materials&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:checkbox_data_value_check.png&amp;diff=16574</id>
		<title>Datei:checkbox data value check.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:checkbox_data_value_check.png&amp;diff=16574"/>
		<updated>2026-06-02T14:28:35Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16573</id>
		<title>Handbuch:Erweiterung/Forms/Fortschrittsbalken</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16573"/>
		<updated>2026-06-02T14:28:27Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Fortschrittsbalken zeigt einen berechneten Fortschrittswert basierend auf den ausgewählten Optionen in einem Formular an. In diesem Beispiel wird er für eine Checkliste verwendet, kann jedoch auch für andere Anwendungsfälle eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== Hinzufügen eines Fortschrittsbalkens ==&lt;br /&gt;
Dieses Beispiel zeigt eine mögliche Implementierung eines Fortschrittsbalkens für eine Checkliste.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extension Forms Progress bar example.png|alt=Checkliste mit zwei Gruppen von Kontrollkästchen für Onboarding-Aufgaben|center|thumb|550x550px|Beispiel eines Fortschrittsbalkens für Checklistenpunkte]]&lt;br /&gt;
&lt;br /&gt;
Um dieses Formular nachzubilden, werden folgende Komponenten benötigt:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Bereitstellen der JavaScript-Logik&#039;&#039;&#039; in &#039;&#039;MediaWiki:Common.js&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Definition&#039;&#039;&#039; der passenden Syntax für Kontrollkästchenfelder und deren &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Hinzufügen eines Event-Listeners&#039;&#039;&#039; in den Formulareigenschaften&lt;br /&gt;
&lt;br /&gt;
=== Bereitstellen der Logik in &#039;&#039;MediaWiki:Common.js&#039;&#039; ===&lt;br /&gt;
Fügen Sie die folgende JavaScript-Funktion zu [https://de.wiki.bluespice.com/wiki/Handbuch:Das_Konzept_der_Namensr%C3%A4ume#Namensraum_.22MediaWiki.22 &#039;&#039;MediaWiki:Common.js&#039;&#039;] hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
/*Extension:Forms - Add a progress bar for checkbox items */&lt;br /&gt;
function CalcProgress( data ) {&lt;br /&gt;
	var dfd = $.Deferred();&lt;br /&gt;
	var checked = 0;&lt;br /&gt;
	var ItemCheckboxes = this.$element.find( &#039;input[value^=check]&#039; );&lt;br /&gt;
	var total = ItemCheckboxes.length;&lt;br /&gt;
	if ( total &amp;lt; 1 ) {&lt;br /&gt;
		dfd.resolve( data );&lt;br /&gt;
		return dfd.promise();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var items = this.getItems();&lt;br /&gt;
	for( var name in data ) {&lt;br /&gt;
		if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		var checkedCheckboxes = data[name];&lt;br /&gt;
		for ( var i = 0; i &amp;lt; checkedCheckboxes.length; i++ ) {&lt;br /&gt;
			checked++;	&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	data.progress = ( 100 * checked ) / total;&lt;br /&gt;
	dfd.resolve( data );&lt;br /&gt;
&lt;br /&gt;
	return dfd.promise();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Zeile 5 wird das Präfix für jedes Kontrollkästchen definiert, das in die Fortschrittsberechnung einbezogen werden soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input[value^=check]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass der Wert &#039;&#039;data&#039;&#039; Ihrer Kontrollkästchen mit &#039;&#039;check&#039;&#039; beginnen muss. Dies bezieht sich auf den &#039;&#039;data&#039;&#039;-Wert, der in jeder Kontrollkästchenoption definiert wird:&lt;br /&gt;
&lt;br /&gt;
[[File:checkbox data value check.png|thumb|center|Datendefinition im Formular, hier beginnend mit „check-“]]&lt;br /&gt;
&lt;br /&gt;
In Zeile 14 werden nur diejenigen Felder berücksichtigt, deren Name mit &#039;&#039;checkbox_multi&#039;&#039; beginnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basierend auf diesem Implementierungsbeispiel wird eine Kontrollkästchenoption nur dann in die Fortschrittsberechnung einbezogen, wenn der Feldname mit &#039;&#039;checkbox_multi-&#039;&#039; beginnt und der &#039;&#039;data&#039;&#039;-Wert der Option mit &#039;&#039;check&#039;&#039; anfängt.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie andere Präfixe für Feldnamen oder Optionswerte verwenden, müssen Sie den JavaScript-Code entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Anwenden der Syntax auf die Checklistenpunkte ===&lt;br /&gt;
Das folgende Feld vom Typ &amp;lt;code&amp;gt;checkbox_multiselect&amp;lt;/code&amp;gt; verwendet sowohl das korrekte Namenspräfix als auch das korrekte &#039;&#039;data&#039;&#039;-Präfix. Das Feld wird daher in die Berechnung einbezogen, und alle drei Optionen tragen zum Fortschrittswert bei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			...&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erstellen eines Event-Listeners in den Formulareigenschaften ===&lt;br /&gt;
Um Ihr Formular mit der JavaScript-Funktion zu verbinden, müssen Sie in den Formulareigenschaften den [https://en.wiki.bluespice.com/wiki/Manual:Extension/Forms/Form_elements_and_settings#Listeners Listener] anlegen:&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Forms Progress bar listener.png|center|thumb|650x650px|Hinzufügen des Listeners zu den Formulareigenschaften]]&lt;br /&gt;
&lt;br /&gt;
So fügen Sie den Listener hinzu:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Öffnen&#039;&#039;&#039; Sie die Formulareigenschaften.&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf &#039;&#039;Listeners&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Wählen&#039;&#039;&#039; Sie das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; aus und geben Sie den Namen Ihrer JavaScript-Funktion ein. In unserem Beispiel lautet dieser &amp;lt;code&amp;gt;CalcProgress&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; wird beim Speichern des Formulars ausgelöst. Änderungen an Kontrollkästchen-Auswahlen werden daher während der Bearbeitung nicht unmittelbar berücksichtigt. Der Fortschrittsbalken wird erst nach dem Speichern des Formulars aktualisiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vollständiges Implementierungsbeispiel ===&lt;br /&gt;
Dieses Beispiel basiert auf der oben beschriebenen JavaScript-Logik (insbesondere den erforderlichen Namenskonventionen). Zusätzlich wird in der untenstehenden JSON-Konfiguration ein Schema für die Seitennamensgebung definiert. Jede Checkliste wird als eigene Wiki-Seite unter dem Präfix &#039;&#039;ExampleChecklist/&#039;&#039; gespeichert, wobei der Name der Checkliste Bestandteil des Seitentitels ist.&lt;br /&gt;
&lt;br /&gt;
Um dieses Beispiel zu verwenden, speichern Sie ein neues Formular (z. B. &#039;&#039;ExampleChecklist.form&#039;&#039;) und kopieren Sie die folgende Konfiguration in die Definitionsquelle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;title&amp;quot;: &amp;quot;Example Progress Bar&amp;quot;,&lt;br /&gt;
	&amp;quot;showTitle&amp;quot;: true,&lt;br /&gt;
	&amp;quot;showFormName&amp;quot;: false,&lt;br /&gt;
	&amp;quot;buttonsFloat&amp;quot;: false,&lt;br /&gt;
	&amp;quot;categories&amp;quot;: [],&lt;br /&gt;
	&amp;quot;sealAfterCreation&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableProgressSave&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableEditSummary&amp;quot;: false,&lt;br /&gt;
	&amp;quot;rlDependencies&amp;quot;: [],&lt;br /&gt;
	&amp;quot;useFormRevs&amp;quot;: false,&lt;br /&gt;
	&amp;quot;includable&amp;quot;: false,&lt;br /&gt;
	&amp;quot;extends&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
	&amp;quot;abstract&amp;quot;: false,&lt;br /&gt;
	&amp;quot;partial&amp;quot;: false,&lt;br /&gt;
	&amp;quot;target&amp;quot;: {&lt;br /&gt;
		&amp;quot;type&amp;quot;: &amp;quot;json-on-wikipage&amp;quot;,&lt;br /&gt;
		&amp;quot;predefined_title&amp;quot;: &amp;quot;ExampleChecklist/{{checklistname}}&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;show_target_afterAction&amp;quot;: false,&lt;br /&gt;
	&amp;quot;listeners&amp;quot;: {&lt;br /&gt;
		&amp;quot;beforeSubmitData&amp;quot;: &amp;quot;jscb:CalcProgress&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;lang&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
	&amp;quot;items&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checklistname&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Checklist name&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;progress&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Progress&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: true,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;margin:1em auto!important; max-width:100%&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: {&lt;br /&gt;
				&amp;quot;widget_progress&amp;quot;: &amp;quot;0&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;progress_bar&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-getting_started&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Getting started&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-profile&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide personal and role information&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-documents&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Submit required documents&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Review introduction materials&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16572</id>
		<title>Handbuch:Erweiterung/Forms/Fortschrittsbalken</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16572"/>
		<updated>2026-06-02T14:27:54Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Fortschrittsbalken zeigt einen berechneten Fortschrittswert basierend auf den ausgewählten Optionen in einem Formular an. In diesem Beispiel wird er für eine Checkliste verwendet, kann jedoch auch für andere Anwendungsfälle eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== Hinzufügen eines Fortschrittsbalkens ==&lt;br /&gt;
Dieses Beispiel zeigt eine mögliche Implementierung eines Fortschrittsbalkens für eine Checkliste.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extension Forms Progress bar example.png|alt=Checkliste mit zwei Gruppen von Kontrollkästchen für Onboarding-Aufgaben|center|thumb|550x550px|Beispiel eines Fortschrittsbalkens für Checklistenpunkte]]&lt;br /&gt;
&lt;br /&gt;
Um dieses Formular nachzubilden, werden folgende Komponenten benötigt:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Bereitstellen der JavaScript-Logik&#039;&#039;&#039; in &#039;&#039;MediaWiki:Common.js&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Definition&#039;&#039;&#039; der passenden Syntax für Kontrollkästchenfelder und deren &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Hinzufügen eines Event-Listeners&#039;&#039;&#039; in den Formulareigenschaften&lt;br /&gt;
&lt;br /&gt;
=== Bereitstellen der Logik in &#039;&#039;MediaWiki:Common.js&#039;&#039; ===&lt;br /&gt;
Fügen Sie die folgende JavaScript-Funktion zu [https://de.wiki.bluespice.com/wiki/Handbuch:Das_Konzept_der_Namensr%C3%A4ume#Namensraum_.22MediaWiki.22 &#039;&#039;MediaWiki:Common.js&#039;&#039;] hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
/*Extension:Forms - Add a progress bar for checkbox items */&lt;br /&gt;
function CalcProgress( data ) {&lt;br /&gt;
	var dfd = $.Deferred();&lt;br /&gt;
	var checked = 0;&lt;br /&gt;
	var ItemCheckboxes = this.$element.find( &#039;input[value^=check]&#039; );&lt;br /&gt;
	var total = ItemCheckboxes.length;&lt;br /&gt;
	if ( total &amp;lt; 1 ) {&lt;br /&gt;
		dfd.resolve( data );&lt;br /&gt;
		return dfd.promise();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var items = this.getItems();&lt;br /&gt;
	for( var name in data ) {&lt;br /&gt;
		if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		var checkedCheckboxes = data[name];&lt;br /&gt;
		for ( var i = 0; i &amp;lt; checkedCheckboxes.length; i++ ) {&lt;br /&gt;
			checked++;	&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	data.progress = ( 100 * checked ) / total;&lt;br /&gt;
	dfd.resolve( data );&lt;br /&gt;
&lt;br /&gt;
	return dfd.promise();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Zeile 5 wird das Präfix für jedes Kontrollkästchen definiert, das in die Fortschrittsberechnung einbezogen werden soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input[value^=check]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass der Wert &#039;&#039;data&#039;&#039; Ihrer Kontrollkästchen mit &#039;&#039;check&#039;&#039; beginnen muss. Dies bezieht sich auf den &#039;&#039;data&#039;&#039;-Wert, der in jeder Kontrollkästchenoption definiert wird:&lt;br /&gt;
&lt;br /&gt;
[[File:checkbox data value check.jpg|thumb|center|Datendefinition im Formular, hier beginnend mit „check-“]]&lt;br /&gt;
&lt;br /&gt;
In Zeile 14 werden nur diejenigen Felder berücksichtigt, deren Name mit &#039;&#039;checkbox_multi&#039;&#039; beginnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basierend auf diesem Implementierungsbeispiel wird eine Kontrollkästchenoption nur dann in die Fortschrittsberechnung einbezogen, wenn der Feldname mit &#039;&#039;checkbox_multi-&#039;&#039; beginnt und der &#039;&#039;data&#039;&#039;-Wert der Option mit &#039;&#039;check&#039;&#039; anfängt.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie andere Präfixe für Feldnamen oder Optionswerte verwenden, müssen Sie den JavaScript-Code entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Anwenden der Syntax auf die Checklistenpunkte ===&lt;br /&gt;
Das folgende Feld vom Typ &amp;lt;code&amp;gt;checkbox_multiselect&amp;lt;/code&amp;gt; verwendet sowohl das korrekte Namenspräfix als auch das korrekte &#039;&#039;data&#039;&#039;-Präfix. Das Feld wird daher in die Berechnung einbezogen, und alle drei Optionen tragen zum Fortschrittswert bei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			...&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erstellen eines Event-Listeners in den Formulareigenschaften ===&lt;br /&gt;
Um Ihr Formular mit der JavaScript-Funktion zu verbinden, müssen Sie in den Formulareigenschaften den [https://en.wiki.bluespice.com/wiki/Manual:Extension/Forms/Form_elements_and_settings#Listeners Listener] anlegen:&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Forms Progress bar listener.png|center|thumb|650x650px|Hinzufügen des Listeners zu den Formulareigenschaften]]&lt;br /&gt;
&lt;br /&gt;
So fügen Sie den Listener hinzu:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Öffnen&#039;&#039;&#039; Sie die Formulareigenschaften.&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf &#039;&#039;Listeners&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Wählen&#039;&#039;&#039; Sie das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; aus und geben Sie den Namen Ihrer JavaScript-Funktion ein. In unserem Beispiel lautet dieser &amp;lt;code&amp;gt;CalcProgress&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; wird beim Speichern des Formulars ausgelöst. Änderungen an Kontrollkästchen-Auswahlen werden daher während der Bearbeitung nicht unmittelbar berücksichtigt. Der Fortschrittsbalken wird erst nach dem Speichern des Formulars aktualisiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vollständiges Implementierungsbeispiel ===&lt;br /&gt;
Dieses Beispiel basiert auf der oben beschriebenen JavaScript-Logik (insbesondere den erforderlichen Namenskonventionen). Zusätzlich wird in der untenstehenden JSON-Konfiguration ein Schema für die Seitennamensgebung definiert. Jede Checkliste wird als eigene Wiki-Seite unter dem Präfix &#039;&#039;ExampleChecklist/&#039;&#039; gespeichert, wobei der Name der Checkliste Bestandteil des Seitentitels ist.&lt;br /&gt;
&lt;br /&gt;
Um dieses Beispiel zu verwenden, speichern Sie ein neues Formular (z. B. &#039;&#039;ExampleChecklist.form&#039;&#039;) und kopieren Sie die folgende Konfiguration in die Definitionsquelle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;title&amp;quot;: &amp;quot;Example Progress Bar&amp;quot;,&lt;br /&gt;
	&amp;quot;showTitle&amp;quot;: true,&lt;br /&gt;
	&amp;quot;showFormName&amp;quot;: false,&lt;br /&gt;
	&amp;quot;buttonsFloat&amp;quot;: false,&lt;br /&gt;
	&amp;quot;categories&amp;quot;: [],&lt;br /&gt;
	&amp;quot;sealAfterCreation&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableProgressSave&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableEditSummary&amp;quot;: false,&lt;br /&gt;
	&amp;quot;rlDependencies&amp;quot;: [],&lt;br /&gt;
	&amp;quot;useFormRevs&amp;quot;: false,&lt;br /&gt;
	&amp;quot;includable&amp;quot;: false,&lt;br /&gt;
	&amp;quot;extends&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
	&amp;quot;abstract&amp;quot;: false,&lt;br /&gt;
	&amp;quot;partial&amp;quot;: false,&lt;br /&gt;
	&amp;quot;target&amp;quot;: {&lt;br /&gt;
		&amp;quot;type&amp;quot;: &amp;quot;json-on-wikipage&amp;quot;,&lt;br /&gt;
		&amp;quot;predefined_title&amp;quot;: &amp;quot;ExampleChecklist/{{checklistname}}&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;show_target_afterAction&amp;quot;: false,&lt;br /&gt;
	&amp;quot;listeners&amp;quot;: {&lt;br /&gt;
		&amp;quot;beforeSubmitData&amp;quot;: &amp;quot;jscb:CalcProgress&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;lang&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
	&amp;quot;items&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checklistname&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Checklist name&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;progress&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Progress&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: true,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;margin:1em auto!important; max-width:100%&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: {&lt;br /&gt;
				&amp;quot;widget_progress&amp;quot;: &amp;quot;0&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;progress_bar&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-getting_started&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Getting started&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-profile&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide personal and role information&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-documents&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Submit required documents&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Review introduction materials&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16571</id>
		<title>Handbuch:Erweiterung/Forms/Fortschrittsbalken</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16571"/>
		<updated>2026-06-02T14:25:09Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Fortschrittsbalken zeigt einen berechneten Fortschrittswert basierend auf den ausgewählten Optionen in einem Formular an. In diesem Beispiel wird er für eine Checkliste verwendet, kann jedoch auch für andere Anwendungsfälle eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== Hinzufügen eines Fortschrittsbalkens ==&lt;br /&gt;
Dieses Beispiel zeigt eine mögliche Implementierung eines Fortschrittsbalkens für eine Checkliste.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extension Forms Progress bar example.png|alt=Checkliste mit zwei Gruppen von Kontrollkästchen für Onboarding-Aufgaben|center|thumb|550x550px|Beispiel eines Fortschrittsbalkens für Checklistenpunkte]]&lt;br /&gt;
&lt;br /&gt;
Um dieses Formular nachzubilden, werden folgende Komponenten benötigt:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Bereitstellen der JavaScript-Logik&#039;&#039;&#039; in &#039;&#039;MediaWiki:Common.js&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Definition&#039;&#039;&#039; der passenden Syntax für Kontrollkästchenfelder und deren &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Hinzufügen eines Event-Listeners&#039;&#039;&#039; in den Formulareigenschaften&lt;br /&gt;
&lt;br /&gt;
=== Bereitstellen der Logik in &#039;&#039;MediaWiki:Common.js&#039;&#039; ===&lt;br /&gt;
Fügen Sie die folgende JavaScript-Funktion zu [https://de.wiki.bluespice.com/wiki/Handbuch:Das_Konzept_der_Namensr%C3%A4ume#Namensraum_.22MediaWiki.22 &#039;&#039;MediaWiki:Common.js&#039;&#039;] hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
/*Extension:Forms - Add a progress bar for checkbox items */&lt;br /&gt;
function CalcProgress( data ) {&lt;br /&gt;
	var dfd = $.Deferred();&lt;br /&gt;
	var checked = 0;&lt;br /&gt;
	var ItemCheckboxes = this.$element.find( &#039;input[value^=check]&#039; );&lt;br /&gt;
	var total = ItemCheckboxes.length;&lt;br /&gt;
	if ( total &amp;lt; 1 ) {&lt;br /&gt;
		dfd.resolve( data );&lt;br /&gt;
		return dfd.promise();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var items = this.getItems();&lt;br /&gt;
	for( var name in data ) {&lt;br /&gt;
		if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		var checkedCheckboxes = data[name];&lt;br /&gt;
		for ( var i = 0; i &amp;lt; checkedCheckboxes.length; i++ ) {&lt;br /&gt;
			checked++;	&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	data.progress = ( 100 * checked ) / total;&lt;br /&gt;
	dfd.resolve( data );&lt;br /&gt;
&lt;br /&gt;
	return dfd.promise();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Zeile 5 wird das Präfix für jedes Kontrollkästchen definiert, das in die Fortschrittsberechnung einbezogen werden soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input[value^=check]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass der Wert &#039;&#039;data&#039;&#039; Ihrer Kontrollkästchen mit &#039;&#039;check&#039;&#039; beginnen muss. Dies bezieht sich auf den &#039;&#039;data&#039;&#039;-Wert, der in jeder Kontrollkästchenoption definiert wird:&lt;br /&gt;
&lt;br /&gt;
[[File:Manual:checkbox data value check.jpg|thumb|center|Datendefinition im Formular, hier beginnend mit „check-“]]&lt;br /&gt;
&lt;br /&gt;
In Zeile 14 werden nur diejenigen Felder berücksichtigt, deren Name mit &#039;&#039;checkbox_multi&#039;&#039; beginnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basierend auf diesem Implementierungsbeispiel wird eine Kontrollkästchenoption nur dann in die Fortschrittsberechnung einbezogen, wenn der Feldname mit &#039;&#039;checkbox_multi-&#039;&#039; beginnt und der &#039;&#039;data&#039;&#039;-Wert der Option mit &#039;&#039;check&#039;&#039; anfängt.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie andere Präfixe für Feldnamen oder Optionswerte verwenden, müssen Sie den JavaScript-Code entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Anwenden der Syntax auf die Checklistenpunkte ===&lt;br /&gt;
Das folgende Feld vom Typ &amp;lt;code&amp;gt;checkbox_multiselect&amp;lt;/code&amp;gt; verwendet sowohl das korrekte Namenspräfix als auch das korrekte &#039;&#039;data&#039;&#039;-Präfix. Das Feld wird daher in die Berechnung einbezogen, und alle drei Optionen tragen zum Fortschrittswert bei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			...&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erstellen eines Event-Listeners in den Formulareigenschaften ===&lt;br /&gt;
Um Ihr Formular mit der JavaScript-Funktion zu verbinden, müssen Sie in den Formulareigenschaften den [https://en.wiki.bluespice.com/wiki/Manual:Extension/Forms/Form_elements_and_settings#Listeners Listener] anlegen:&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Forms Progress bar listener.png|center|thumb|650x650px|Hinzufügen des Listeners zu den Formulareigenschaften]]&lt;br /&gt;
&lt;br /&gt;
So fügen Sie den Listener hinzu:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Öffnen&#039;&#039;&#039; Sie die Formulareigenschaften.&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf &#039;&#039;Listeners&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Wählen&#039;&#039;&#039; Sie das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; aus und geben Sie den Namen Ihrer JavaScript-Funktion ein. In unserem Beispiel lautet dieser &amp;lt;code&amp;gt;CalcProgress&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; wird beim Speichern des Formulars ausgelöst. Änderungen an Kontrollkästchen-Auswahlen werden daher während der Bearbeitung nicht unmittelbar berücksichtigt. Der Fortschrittsbalken wird erst nach dem Speichern des Formulars aktualisiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vollständiges Implementierungsbeispiel ===&lt;br /&gt;
Dieses Beispiel basiert auf der oben beschriebenen JavaScript-Logik (insbesondere den erforderlichen Namenskonventionen). Zusätzlich wird in der untenstehenden JSON-Konfiguration ein Schema für die Seitennamensgebung definiert. Jede Checkliste wird als eigene Wiki-Seite unter dem Präfix &#039;&#039;ExampleChecklist/&#039;&#039; gespeichert, wobei der Name der Checkliste Bestandteil des Seitentitels ist.&lt;br /&gt;
&lt;br /&gt;
Um dieses Beispiel zu verwenden, speichern Sie ein neues Formular (z. B. &#039;&#039;ExampleChecklist.form&#039;&#039;) und kopieren Sie die folgende Konfiguration in die Definitionsquelle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;title&amp;quot;: &amp;quot;Example Progress Bar&amp;quot;,&lt;br /&gt;
	&amp;quot;showTitle&amp;quot;: true,&lt;br /&gt;
	&amp;quot;showFormName&amp;quot;: false,&lt;br /&gt;
	&amp;quot;buttonsFloat&amp;quot;: false,&lt;br /&gt;
	&amp;quot;categories&amp;quot;: [],&lt;br /&gt;
	&amp;quot;sealAfterCreation&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableProgressSave&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableEditSummary&amp;quot;: false,&lt;br /&gt;
	&amp;quot;rlDependencies&amp;quot;: [],&lt;br /&gt;
	&amp;quot;useFormRevs&amp;quot;: false,&lt;br /&gt;
	&amp;quot;includable&amp;quot;: false,&lt;br /&gt;
	&amp;quot;extends&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
	&amp;quot;abstract&amp;quot;: false,&lt;br /&gt;
	&amp;quot;partial&amp;quot;: false,&lt;br /&gt;
	&amp;quot;target&amp;quot;: {&lt;br /&gt;
		&amp;quot;type&amp;quot;: &amp;quot;json-on-wikipage&amp;quot;,&lt;br /&gt;
		&amp;quot;predefined_title&amp;quot;: &amp;quot;ExampleChecklist/{{checklistname}}&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;show_target_afterAction&amp;quot;: false,&lt;br /&gt;
	&amp;quot;listeners&amp;quot;: {&lt;br /&gt;
		&amp;quot;beforeSubmitData&amp;quot;: &amp;quot;jscb:CalcProgress&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;lang&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
	&amp;quot;items&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checklistname&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Checklist name&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;progress&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Progress&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: true,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;margin:1em auto!important; max-width:100%&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: {&lt;br /&gt;
				&amp;quot;widget_progress&amp;quot;: &amp;quot;0&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;progress_bar&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-getting_started&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Getting started&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-profile&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide personal and role information&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-documents&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Submit required documents&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Review introduction materials&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16570</id>
		<title>Handbuch:Erweiterung/Forms/Fortschrittsbalken</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16570"/>
		<updated>2026-06-02T14:24:37Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Fortschrittsbalken zeigt einen berechneten Fortschrittswert basierend auf den ausgewählten Optionen in einem Formular an. In diesem Beispiel wird er für eine Checkliste verwendet, kann jedoch auch für andere Anwendungsfälle eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== Hinzufügen eines Fortschrittsbalkens ==&lt;br /&gt;
Dieses Beispiel zeigt eine mögliche Implementierung eines Fortschrittsbalkens für eine Checkliste.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extension Forms Progress bar example.png|alt=Checkliste mit zwei Gruppen von Kontrollkästchen für Onboarding-Aufgaben|center|thumb|550x550px|Beispiel eines Fortschrittsbalkens für Checklistenpunkte]]&lt;br /&gt;
&lt;br /&gt;
Um dieses Formular nachzubilden, werden folgende Komponenten benötigt:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Bereitstellen der JavaScript-Logik&#039;&#039;&#039; in &#039;&#039;MediaWiki:Common.js&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Definieren&#039;&#039;&#039; der passenden Syntax für Kontrollkästchenfelder und deren &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Hinzufügen eines Event-Listeners&#039;&#039;&#039; in den Formulareigenschaften&lt;br /&gt;
&lt;br /&gt;
=== Bereitstellen der Logik in &#039;&#039;MediaWiki:Common.js&#039;&#039; ===&lt;br /&gt;
Fügen Sie die folgende JavaScript-Funktion zu [https://de.wiki.bluespice.com/wiki/Handbuch:Das_Konzept_der_Namensr%C3%A4ume#Namensraum_.22MediaWiki.22 &#039;&#039;MediaWiki:Common.js&#039;&#039;] hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
/*Extension:Forms - Add a progress bar for checkbox items */&lt;br /&gt;
function CalcProgress( data ) {&lt;br /&gt;
	var dfd = $.Deferred();&lt;br /&gt;
	var checked = 0;&lt;br /&gt;
	var ItemCheckboxes = this.$element.find( &#039;input[value^=check]&#039; );&lt;br /&gt;
	var total = ItemCheckboxes.length;&lt;br /&gt;
	if ( total &amp;lt; 1 ) {&lt;br /&gt;
		dfd.resolve( data );&lt;br /&gt;
		return dfd.promise();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var items = this.getItems();&lt;br /&gt;
	for( var name in data ) {&lt;br /&gt;
		if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		var checkedCheckboxes = data[name];&lt;br /&gt;
		for ( var i = 0; i &amp;lt; checkedCheckboxes.length; i++ ) {&lt;br /&gt;
			checked++;	&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	data.progress = ( 100 * checked ) / total;&lt;br /&gt;
	dfd.resolve( data );&lt;br /&gt;
&lt;br /&gt;
	return dfd.promise();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Zeile 5 wird das Präfix für jedes Kontrollkästchen definiert, das in die Fortschrittsberechnung einbezogen werden soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input[value^=check]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass der Wert &#039;&#039;data&#039;&#039; Ihrer Kontrollkästchen mit &#039;&#039;check&#039;&#039; beginnen muss. Dies bezieht sich auf den &#039;&#039;data&#039;&#039;-Wert, der in jeder Kontrollkästchenoption definiert wird:&lt;br /&gt;
&lt;br /&gt;
[[File:Manual:checkbox data value check.jpg|thumb|center|Datendefinition im Formular, hier beginnend mit „check-“]]&lt;br /&gt;
&lt;br /&gt;
In Zeile 14 werden nur diejenigen Felder berücksichtigt, deren Name mit &#039;&#039;checkbox_multi&#039;&#039; beginnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basierend auf diesem Implementierungsbeispiel wird eine Kontrollkästchenoption nur dann in die Fortschrittsberechnung einbezogen, wenn der Feldname mit &#039;&#039;checkbox_multi-&#039;&#039; beginnt und der &#039;&#039;data&#039;&#039;-Wert der Option mit &#039;&#039;check&#039;&#039; anfängt.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie andere Präfixe für Feldnamen oder Optionswerte verwenden, müssen Sie den JavaScript-Code entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Anwenden der Syntax auf die Checklistenpunkte ===&lt;br /&gt;
Das folgende Feld vom Typ &amp;lt;code&amp;gt;checkbox_multiselect&amp;lt;/code&amp;gt; verwendet sowohl das korrekte Namenspräfix als auch das korrekte &#039;&#039;data&#039;&#039;-Präfix. Das Feld wird daher in die Berechnung einbezogen, und alle drei Optionen tragen zum Fortschrittswert bei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			...&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erstellen eines Event-Listeners in den Formulareigenschaften ===&lt;br /&gt;
Um Ihr Formular mit der JavaScript-Funktion zu verbinden, müssen Sie in den Formulareigenschaften den [https://en.wiki.bluespice.com/wiki/Manual:Extension/Forms/Form_elements_and_settings#Listeners Listener] anlegen:&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Forms Progress bar listener.png|center|thumb|650x650px|Hinzufügen des Listeners zu den Formulareigenschaften]]&lt;br /&gt;
&lt;br /&gt;
So fügen Sie den Listener hinzu:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Öffnen&#039;&#039;&#039; Sie die Formulareigenschaften.&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf &#039;&#039;Listeners&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Wählen&#039;&#039;&#039; Sie das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; aus und geben Sie den Namen Ihrer JavaScript-Funktion ein. In unserem Beispiel lautet dieser &amp;lt;code&amp;gt;CalcProgress&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; wird beim Speichern des Formulars ausgelöst. Änderungen an Kontrollkästchen-Auswahlen werden daher während der Bearbeitung nicht unmittelbar berücksichtigt. Der Fortschrittsbalken wird erst nach dem Speichern des Formulars aktualisiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vollständiges Implementierungsbeispiel ===&lt;br /&gt;
Dieses Beispiel basiert auf der oben beschriebenen JavaScript-Logik (insbesondere den erforderlichen Namenskonventionen). Zusätzlich wird in der untenstehenden JSON-Konfiguration ein Schema für die Seitennamensgebung definiert. Jede Checkliste wird als eigene Wiki-Seite unter dem Präfix &#039;&#039;ExampleChecklist/&#039;&#039; gespeichert, wobei der Name der Checkliste Bestandteil des Seitentitels ist.&lt;br /&gt;
&lt;br /&gt;
Um dieses Beispiel zu verwenden, speichern Sie ein neues Formular (z. B. &#039;&#039;ExampleChecklist.form&#039;&#039;) und kopieren Sie die folgende Konfiguration in die Definitionsquelle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;title&amp;quot;: &amp;quot;Example Progress Bar&amp;quot;,&lt;br /&gt;
	&amp;quot;showTitle&amp;quot;: true,&lt;br /&gt;
	&amp;quot;showFormName&amp;quot;: false,&lt;br /&gt;
	&amp;quot;buttonsFloat&amp;quot;: false,&lt;br /&gt;
	&amp;quot;categories&amp;quot;: [],&lt;br /&gt;
	&amp;quot;sealAfterCreation&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableProgressSave&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableEditSummary&amp;quot;: false,&lt;br /&gt;
	&amp;quot;rlDependencies&amp;quot;: [],&lt;br /&gt;
	&amp;quot;useFormRevs&amp;quot;: false,&lt;br /&gt;
	&amp;quot;includable&amp;quot;: false,&lt;br /&gt;
	&amp;quot;extends&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
	&amp;quot;abstract&amp;quot;: false,&lt;br /&gt;
	&amp;quot;partial&amp;quot;: false,&lt;br /&gt;
	&amp;quot;target&amp;quot;: {&lt;br /&gt;
		&amp;quot;type&amp;quot;: &amp;quot;json-on-wikipage&amp;quot;,&lt;br /&gt;
		&amp;quot;predefined_title&amp;quot;: &amp;quot;ExampleChecklist/{{checklistname}}&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;show_target_afterAction&amp;quot;: false,&lt;br /&gt;
	&amp;quot;listeners&amp;quot;: {&lt;br /&gt;
		&amp;quot;beforeSubmitData&amp;quot;: &amp;quot;jscb:CalcProgress&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;lang&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
	&amp;quot;items&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checklistname&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Checklist name&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;progress&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Progress&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: true,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;margin:1em auto!important; max-width:100%&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: {&lt;br /&gt;
				&amp;quot;widget_progress&amp;quot;: &amp;quot;0&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;progress_bar&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-getting_started&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Getting started&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-profile&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide personal and role information&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-documents&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Submit required documents&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Review introduction materials&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:Extension_Forms_Progress_bar_example.png&amp;diff=16569</id>
		<title>Datei:Extension Forms Progress bar example.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:Extension_Forms_Progress_bar_example.png&amp;diff=16569"/>
		<updated>2026-06-02T14:22:13Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16568</id>
		<title>Handbuch:Erweiterung/Forms/Fortschrittsbalken</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16568"/>
		<updated>2026-06-02T14:22:03Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Fortschrittsbalken zeigt einen berechneten Fortschrittswert basierend auf den ausgewählten Optionen in einem Formular an. In diesem Beispiel wird er für eine Checkliste verwendet, kann jedoch auch für andere Anwendungsfälle eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== Hinzufügen eines Fortschrittsbalkens ==&lt;br /&gt;
Dieses Beispiel zeigt eine mögliche Implementierung eines Fortschrittsbalkens für eine Checkliste.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Extension Forms Progress bar example.png|alt=Checkliste mit zwei Gruppen von Kontrollkästchen für Onboarding-Aufgaben|center|thumb|550x550px|Beispiel eines Fortschrittsbalkens für Checklistenpunkte]]&lt;br /&gt;
&lt;br /&gt;
Um dieses Formular nachzubilden, werden folgende Komponenten benötigt:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Bereitstellen der JavaScript-Logik&#039;&#039;&#039; in &#039;&#039;MediaWiki:Common.js&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Definieren&#039;&#039;&#039; der passenden Syntax für Kontrollkästchenfelder und deren &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Hinzufügen eines Event-Listeners&#039;&#039;&#039; in den Formulareigenschaften&lt;br /&gt;
&lt;br /&gt;
=== Bereitstellen der Logik in &#039;&#039;MediaWiki:Common.js&#039;&#039; ===&lt;br /&gt;
Fügen Sie die folgende JavaScript-Funktion zu [https://en.wiki.bluespice.com/wiki/Manual:The_concept_of_namespaces#Namespace_.22MediaWiki.22 &#039;&#039;MediaWiki:Common.js&#039;&#039;] hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
/*Extension:Forms - Add a progress bar for checkbox items */&lt;br /&gt;
function CalcProgress( data ) {&lt;br /&gt;
	var dfd = $.Deferred();&lt;br /&gt;
	var checked = 0;&lt;br /&gt;
	var ItemCheckboxes = this.$element.find( &#039;input[value^=check]&#039; );&lt;br /&gt;
	var total = ItemCheckboxes.length;&lt;br /&gt;
	if ( total &amp;lt; 1 ) {&lt;br /&gt;
		dfd.resolve( data );&lt;br /&gt;
		return dfd.promise();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var items = this.getItems();&lt;br /&gt;
	for( var name in data ) {&lt;br /&gt;
		if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		var checkedCheckboxes = data[name];&lt;br /&gt;
		for ( var i = 0; i &amp;lt; checkedCheckboxes.length; i++ ) {&lt;br /&gt;
			checked++;	&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	data.progress = ( 100 * checked ) / total;&lt;br /&gt;
	dfd.resolve( data );&lt;br /&gt;
&lt;br /&gt;
	return dfd.promise();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Zeile 5 wird das Präfix für jedes Kontrollkästchen definiert, das in die Fortschrittsberechnung einbezogen werden soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input[value^=check]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass der Wert &#039;&#039;data&#039;&#039; Ihrer Kontrollkästchen mit &#039;&#039;check&#039;&#039; beginnen muss. Dies bezieht sich auf den &#039;&#039;data&#039;&#039;-Wert, der in jeder Kontrollkästchenoption definiert wird:&lt;br /&gt;
&lt;br /&gt;
[[File:Manual:checkbox data value check.jpg|thumb|center|Datendefinition im Formular, hier beginnend mit „check-“]]&lt;br /&gt;
&lt;br /&gt;
In Zeile 14 werden nur diejenigen Felder berücksichtigt, deren Name mit &#039;&#039;checkbox_multi&#039;&#039; beginnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basierend auf diesem Implementierungsbeispiel wird eine Kontrollkästchenoption nur dann in die Fortschrittsberechnung einbezogen, wenn der Feldname mit &#039;&#039;checkbox_multi-&#039;&#039; beginnt und der &#039;&#039;data&#039;&#039;-Wert der Option mit &#039;&#039;check&#039;&#039; anfängt.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie andere Präfixe für Feldnamen oder Optionswerte verwenden, müssen Sie den JavaScript-Code entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Anwenden der Syntax auf die Checklistenpunkte ===&lt;br /&gt;
Das folgende Feld vom Typ &amp;lt;code&amp;gt;checkbox_multiselect&amp;lt;/code&amp;gt; verwendet sowohl das korrekte Namenspräfix als auch das korrekte &#039;&#039;data&#039;&#039;-Präfix. Das Feld wird daher in die Berechnung einbezogen, und alle drei Optionen tragen zum Fortschrittswert bei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			...&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erstellen eines Event-Listeners in den Formulareigenschaften ===&lt;br /&gt;
Um Ihr Formular mit der JavaScript-Funktion zu verbinden, müssen Sie in den Formulareigenschaften den [https://en.wiki.bluespice.com/wiki/Manual:Extension/Forms/Form_elements_and_settings#Listeners Listener] anlegen:&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Forms Progress bar listener.png|center|thumb|650x650px|Hinzufügen des Listeners zu den Formulareigenschaften]]&lt;br /&gt;
&lt;br /&gt;
So fügen Sie den Listener hinzu:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Öffnen&#039;&#039;&#039; Sie die Formulareigenschaften.&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf &#039;&#039;Listeners&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Wählen&#039;&#039;&#039; Sie das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; aus und geben Sie den Namen Ihrer JavaScript-Funktion ein. In unserem Beispiel lautet dieser &amp;lt;code&amp;gt;CalcProgress&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; wird beim Speichern des Formulars ausgelöst. Änderungen an Kontrollkästchen-Auswahlen werden daher während der Bearbeitung nicht unmittelbar berücksichtigt. Der Fortschrittsbalken wird erst nach dem Speichern des Formulars aktualisiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vollständiges Implementierungsbeispiel ===&lt;br /&gt;
Dieses Beispiel basiert auf der oben beschriebenen JavaScript-Logik (insbesondere den erforderlichen Namenskonventionen). Zusätzlich wird in der untenstehenden JSON-Konfiguration ein Schema für die Seitennamensgebung definiert. Jede Checkliste wird als eigene Wiki-Seite unter dem Präfix &#039;&#039;ExampleChecklist/&#039;&#039; gespeichert, wobei der Name der Checkliste Bestandteil des Seitentitels ist.&lt;br /&gt;
&lt;br /&gt;
Um dieses Beispiel zu verwenden, speichern Sie ein neues Formular (z. B. &#039;&#039;ExampleChecklist.form&#039;&#039;) und kopieren Sie die folgende Konfiguration in die Definitionsquelle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;title&amp;quot;: &amp;quot;Example Progress Bar&amp;quot;,&lt;br /&gt;
	&amp;quot;showTitle&amp;quot;: true,&lt;br /&gt;
	&amp;quot;showFormName&amp;quot;: false,&lt;br /&gt;
	&amp;quot;buttonsFloat&amp;quot;: false,&lt;br /&gt;
	&amp;quot;categories&amp;quot;: [],&lt;br /&gt;
	&amp;quot;sealAfterCreation&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableProgressSave&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableEditSummary&amp;quot;: false,&lt;br /&gt;
	&amp;quot;rlDependencies&amp;quot;: [],&lt;br /&gt;
	&amp;quot;useFormRevs&amp;quot;: false,&lt;br /&gt;
	&amp;quot;includable&amp;quot;: false,&lt;br /&gt;
	&amp;quot;extends&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
	&amp;quot;abstract&amp;quot;: false,&lt;br /&gt;
	&amp;quot;partial&amp;quot;: false,&lt;br /&gt;
	&amp;quot;target&amp;quot;: {&lt;br /&gt;
		&amp;quot;type&amp;quot;: &amp;quot;json-on-wikipage&amp;quot;,&lt;br /&gt;
		&amp;quot;predefined_title&amp;quot;: &amp;quot;ExampleChecklist/{{checklistname}}&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;show_target_afterAction&amp;quot;: false,&lt;br /&gt;
	&amp;quot;listeners&amp;quot;: {&lt;br /&gt;
		&amp;quot;beforeSubmitData&amp;quot;: &amp;quot;jscb:CalcProgress&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;lang&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
	&amp;quot;items&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checklistname&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Checklist name&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;progress&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Progress&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: true,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;margin:1em auto!important; max-width:100%&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: {&lt;br /&gt;
				&amp;quot;widget_progress&amp;quot;: &amp;quot;0&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;progress_bar&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-getting_started&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Getting started&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-profile&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide personal and role information&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-documents&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Submit required documents&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Review introduction materials&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16567</id>
		<title>Handbuch:Erweiterung/Forms/Fortschrittsbalken</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Fortschrittsbalken&amp;diff=16567"/>
		<updated>2026-06-02T14:14:38Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: Die Seite wurde neu angelegt: „Der Fortschrittsbalken zeigt einen berechneten Fortschrittswert basierend auf den ausgewählten Optionen in einem Formular an. In diesem Beispiel wird er für eine Checkliste verwendet, kann jedoch auch für andere Anwendungsfälle eingesetzt werden.  == Hinzufügen eines Fortschrittsbalkens == Dieses Beispiel zeigt eine mögliche Implementierung eines Fortschrittsbalkens für eine Checkliste.  File:Extension Forms Progress bar example.png|alt=Checklist…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Fortschrittsbalken zeigt einen berechneten Fortschrittswert basierend auf den ausgewählten Optionen in einem Formular an. In diesem Beispiel wird er für eine Checkliste verwendet, kann jedoch auch für andere Anwendungsfälle eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== Hinzufügen eines Fortschrittsbalkens ==&lt;br /&gt;
Dieses Beispiel zeigt eine mögliche Implementierung eines Fortschrittsbalkens für eine Checkliste.&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Forms Progress bar example.png|alt=Checkliste mit zwei Gruppen von Kontrollkästchen für Onboarding-Aufgaben|center|thumb|550x550px|Beispiel eines Fortschrittsbalkens für Checklistenpunkte]]&lt;br /&gt;
&lt;br /&gt;
Um dieses Formular nachzubilden, werden folgende Komponenten benötigt:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Bereitstellen der JavaScript-Logik&#039;&#039;&#039; in &#039;&#039;MediaWiki:Common.js&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Definieren&#039;&#039;&#039; der passenden Syntax für Kontrollkästchenfelder und deren &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Hinzufügen eines Event-Listeners&#039;&#039;&#039; in den Formulareigenschaften&lt;br /&gt;
&lt;br /&gt;
=== Bereitstellen der Logik in &#039;&#039;MediaWiki:Common.js&#039;&#039; ===&lt;br /&gt;
Fügen Sie die folgende JavaScript-Funktion zu [https://en.wiki.bluespice.com/wiki/Manual:The_concept_of_namespaces#Namespace_.22MediaWiki.22 &#039;&#039;MediaWiki:Common.js&#039;&#039;] hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
/*Extension:Forms - Add a progress bar for checkbox items */&lt;br /&gt;
function CalcProgress( data ) {&lt;br /&gt;
	var dfd = $.Deferred();&lt;br /&gt;
	var checked = 0;&lt;br /&gt;
	var ItemCheckboxes = this.$element.find( &#039;input[value^=check]&#039; );&lt;br /&gt;
	var total = ItemCheckboxes.length;&lt;br /&gt;
	if ( total &amp;lt; 1 ) {&lt;br /&gt;
		dfd.resolve( data );&lt;br /&gt;
		return dfd.promise();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var items = this.getItems();&lt;br /&gt;
	for( var name in data ) {&lt;br /&gt;
		if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
			continue;&lt;br /&gt;
		}&lt;br /&gt;
		var checkedCheckboxes = data[name];&lt;br /&gt;
		for ( var i = 0; i &amp;lt; checkedCheckboxes.length; i++ ) {&lt;br /&gt;
			checked++;	&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	data.progress = ( 100 * checked ) / total;&lt;br /&gt;
	dfd.resolve( data );&lt;br /&gt;
&lt;br /&gt;
	return dfd.promise();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Zeile 5 wird das Präfix für jedes Kontrollkästchen definiert, das in die Fortschrittsberechnung einbezogen werden soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input[value^=check]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass der Wert &#039;&#039;data&#039;&#039; Ihrer Kontrollkästchen mit &#039;&#039;check&#039;&#039; beginnen muss. Dies bezieht sich auf den &#039;&#039;data&#039;&#039;-Wert, der in jeder Kontrollkästchenoption definiert wird:&lt;br /&gt;
&lt;br /&gt;
[[File:Manual:checkbox data value check.jpg|thumb|center|Datendefinition im Formular, hier beginnend mit „check-“]]&lt;br /&gt;
&lt;br /&gt;
In Zeile 14 werden nur diejenigen Felder berücksichtigt, deren Name mit &#039;&#039;checkbox_multi&#039;&#039; beginnt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	if ( !name.startsWith( &#039;checkbox_multi-&#039; ) ) {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basierend auf diesem Implementierungsbeispiel wird eine Kontrollkästchenoption nur dann in die Fortschrittsberechnung einbezogen, wenn der Feldname mit &#039;&#039;checkbox_multi-&#039;&#039; beginnt und der &#039;&#039;data&#039;&#039;-Wert der Option mit &#039;&#039;check&#039;&#039; anfängt.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie andere Präfixe für Feldnamen oder Optionswerte verwenden, müssen Sie den JavaScript-Code entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Anwenden der Syntax auf die Checklistenpunkte ===&lt;br /&gt;
Das folgende Feld vom Typ &amp;lt;code&amp;gt;checkbox_multiselect&amp;lt;/code&amp;gt; verwendet sowohl das korrekte Namenspräfix als auch das korrekte &#039;&#039;data&#039;&#039;-Präfix. Das Feld wird daher in die Berechnung einbezogen, und alle drei Optionen tragen zum Fortschrittswert bei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			...&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erstellen eines Event-Listeners in den Formulareigenschaften ===&lt;br /&gt;
Um Ihr Formular mit der JavaScript-Funktion zu verbinden, müssen Sie in den Formulareigenschaften den [https://en.wiki.bluespice.com/wiki/Manual:Extension/Forms/Form_elements_and_settings#Listeners Listener] anlegen:&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Forms Progress bar listener.png|center|thumb|650x650px|Hinzufügen des Listeners zu den Formulareigenschaften]]&lt;br /&gt;
&lt;br /&gt;
So fügen Sie den Listener hinzu:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Öffnen&#039;&#039;&#039; Sie die Formulareigenschaften.&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf &#039;&#039;Listeners&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Wählen&#039;&#039;&#039; Sie das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; aus und geben Sie den Namen Ihrer JavaScript-Funktion ein. In unserem Beispiel lautet dieser &amp;lt;code&amp;gt;CalcProgress&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &amp;lt;code&amp;gt;beforeSubmitData&amp;lt;/code&amp;gt; wird beim Speichern des Formulars ausgelöst. Änderungen an Kontrollkästchen-Auswahlen werden daher während der Bearbeitung nicht unmittelbar berücksichtigt. Der Fortschrittsbalken wird erst nach dem Speichern des Formulars aktualisiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vollständiges Implementierungsbeispiel ===&lt;br /&gt;
Dieses Beispiel basiert auf der oben beschriebenen JavaScript-Logik (insbesondere den erforderlichen Namenskonventionen). Zusätzlich wird in der untenstehenden JSON-Konfiguration ein Schema für die Seitennamensgebung definiert. Jede Checkliste wird als eigene Wiki-Seite unter dem Präfix &#039;&#039;ExampleChecklist/&#039;&#039; gespeichert, wobei der Name der Checkliste Bestandteil des Seitentitels ist.&lt;br /&gt;
&lt;br /&gt;
Um dieses Beispiel zu verwenden, speichern Sie ein neues Formular (z. B. &#039;&#039;ExampleChecklist.form&#039;&#039;) und kopieren Sie die folgende Konfiguration in die Definitionsquelle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;title&amp;quot;: &amp;quot;Example Progress Bar&amp;quot;,&lt;br /&gt;
	&amp;quot;showTitle&amp;quot;: true,&lt;br /&gt;
	&amp;quot;showFormName&amp;quot;: false,&lt;br /&gt;
	&amp;quot;buttonsFloat&amp;quot;: false,&lt;br /&gt;
	&amp;quot;categories&amp;quot;: [],&lt;br /&gt;
	&amp;quot;sealAfterCreation&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableProgressSave&amp;quot;: false,&lt;br /&gt;
	&amp;quot;enableEditSummary&amp;quot;: false,&lt;br /&gt;
	&amp;quot;rlDependencies&amp;quot;: [],&lt;br /&gt;
	&amp;quot;useFormRevs&amp;quot;: false,&lt;br /&gt;
	&amp;quot;includable&amp;quot;: false,&lt;br /&gt;
	&amp;quot;extends&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
	&amp;quot;abstract&amp;quot;: false,&lt;br /&gt;
	&amp;quot;partial&amp;quot;: false,&lt;br /&gt;
	&amp;quot;target&amp;quot;: {&lt;br /&gt;
		&amp;quot;type&amp;quot;: &amp;quot;json-on-wikipage&amp;quot;,&lt;br /&gt;
		&amp;quot;predefined_title&amp;quot;: &amp;quot;ExampleChecklist/{{checklistname}}&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;show_target_afterAction&amp;quot;: false,&lt;br /&gt;
	&amp;quot;listeners&amp;quot;: {&lt;br /&gt;
		&amp;quot;beforeSubmitData&amp;quot;: &amp;quot;jscb:CalcProgress&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;lang&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
	&amp;quot;items&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checklistname&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Checklist name&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;progress&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Progress&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: true,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;margin:1em auto!important; max-width:100%&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: {&lt;br /&gt;
				&amp;quot;widget_progress&amp;quot;: &amp;quot;0&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;progress_bar&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-getting_started&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Getting started&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-profile&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide personal and role information&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-documents&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Submit required documents&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Review introduction materials&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;name&amp;quot;: &amp;quot;checkbox_multi-workplace_setup&amp;quot;,&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Workplace setup&amp;quot;,&lt;br /&gt;
			&amp;quot;help&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;noLayout&amp;quot;: false,&lt;br /&gt;
			&amp;quot;showOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;,&lt;br /&gt;
				&amp;quot;view&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;editableOn&amp;quot;: [&lt;br /&gt;
				&amp;quot;create&amp;quot;,&lt;br /&gt;
				&amp;quot;edit&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;widget_classes&amp;quot;: [],&lt;br /&gt;
			&amp;quot;style&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;widgetCustomProps&amp;quot;: [],&lt;br /&gt;
			&amp;quot;widget_listeners&amp;quot;: [],&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;horizontal&amp;quot;: false,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-equipment&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Provide equipment (laptop, phone)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-access&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Grant access to required systems&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;data&amp;quot;: &amp;quot;check-intro&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Meet the team&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;checkbox_multiselect&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16566</id>
		<title>Handbuch:Erweiterung/Forms</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16566"/>
		<updated>2026-06-02T14:11:32Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die &#039;&#039;&#039;Forms&#039;&#039;&#039;-Erweiterung ermöglicht es, eine Wikiseite oder einen Benutzerdialog als Formular zu gestalten. Sie wird außerdem in Verbindung mit der Erweiterung [[Handbuch:Erweiterung/Workflows|Workflows]] verwendet, um Eingabeformulare für Workflow-Daten bereitzustellen.&lt;br /&gt;
==Einführung==&lt;br /&gt;
Um beispielsweise eine Checkliste als Formular zu erstellen, sind folgende Schritte erforderlich:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen der Checklisten-Formulardefinition&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen von Checklisteninstanzen direkt über die Formulardefinitionsseite&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel werden die ersten Felder für eine Veranstaltung erstellt, bei der hygienerelevante Informationen im Zusammenhang mit Lebensmitteln dokumentiert werden müssen.&lt;br /&gt;
[[Datei:checklist-event-screenshot.png|alt=Beispiel einer Veranstaltungs-Checkliste|center|thumb|550x550px|Beispiel einer Veranstaltungs-Checkliste]]&lt;br /&gt;
&lt;br /&gt;
==Ein Checklistenformular erstellen==&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Seite &#039;&#039;EventChecklisteHygiene.form&#039;&#039;.&lt;br /&gt;
[[Datei:Extension Forms create form.png|center|thumb|400x400px|alt=Dialog zum Erstellen einer Seite|Neue Formularseite erstellen]]&lt;br /&gt;
Dadurch wird der Formulareditor geöffnet.&lt;br /&gt;
[[Datei:Extension Forms form editor.png|alt=Elemente des Formulareditors|center|thumb|700x700px|Formulareditor]]&lt;br /&gt;
#&#039;&#039;&#039;Hinzufügen&#039;&#039;&#039; eines Formularabschnitts:&lt;br /&gt;
##Das Element &#039;&#039;Section label&#039;&#039; unter &#039;&#039;Form Elements &amp;gt; Other&#039;&#039; &#039;&#039;&#039;auswählen&#039;&#039;&#039; (siehe Markierung 2 im Screenshot) und bei gedrückter linker Maustaste in den interaktiven Formulareditor ziehen.&lt;br /&gt;
##Irgendwo in die Zeile &#039;&#039;Section label&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als Feld-ID in der Datenbank gespeichert und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Den &#039;&#039;Title&#039;&#039; für die Abschnittsüberschrift &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als sichtbare Beschriftung angezeigt.&lt;br /&gt;
[[Datei:Extension Forms add section header.png|alt=Inspektor für das Element Section label|center|thumb|700x700px|Erste Abschnittsüberschrift hinzufügen]]&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Formularfelder für den Abschnitt &#039;&#039;Event&#039;&#039;. Im folgenden Beispiel wird ein Textfeld hinzugefügt.&lt;br /&gt;
##Das Element &#039;&#039;Text&#039;&#039; aus &#039;&#039;Form Elements &amp;gt; Inputs&#039;&#039; unter die Abschnittsüberschrift &#039;&#039;&#039;ziehen&#039;&#039;&#039;.&lt;br /&gt;
##Irgendwo in die Zeile des Textfelds &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser dient als Datenbank-ID für das Feld und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Das &#039;&#039;Label&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;. Dieses wird als sichtbare Feldbeschriftung angezeigt.&lt;br /&gt;
##Weitere Formularelemente &#039;&#039;&#039;hinzufügen&#039;&#039;&#039;.&lt;br /&gt;
#Auf &#039;&#039;Speichern&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;. Das Formular steht nun als &#039;&#039;EventChecklisteHygiene.form&#039;&#039; zur Verfügung.&lt;br /&gt;
[[Datei:Checklist-view.png|alt=Gespeichertes Formular|center|thumb|650x650px|Gespeichertes Formular]]&lt;br /&gt;
==Weitere Formularelemente hinzufügen==&lt;br /&gt;
Nun können weitere Felder hinzugefügt werden:&lt;br /&gt;
[[Handbuch:Erweiterung/Forms/Formularelemente|Übersicht aller Formularelemente, die Formularen hinzugefügt werden können.]]&lt;br /&gt;
==Eine Checklisteninstanz erstellen==&lt;br /&gt;
Um eine Checkliste aus dem Formular zu erstellen:&lt;br /&gt;
# Einen Veranstaltungsnamen &#039;&#039;&#039;eingeben&#039;&#039;&#039;&lt;br /&gt;
# Die Formularfelder &#039;&#039;&#039;ausfüllen&#039;&#039;&#039;&lt;br /&gt;
# Auf &#039;&#039;Abschicken&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;&lt;br /&gt;
Die Checkliste wird nun im Wiki gespeichert und kann anschließend weiter bearbeitet werden.&lt;br /&gt;
==Alternatives Ziel: E-Mail==&lt;br /&gt;
Anstatt beim Speichern des Formulars eine Wikiseite zu erstellen, können die Formulardaten an ein E-Mail-Konto gesendet werden.&lt;br /&gt;
(&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der E-Mail-Empfänger muss durch einen Serveradministrator auf dem Server konfiguriert werden, damit er in Formularen verfügbar ist.)&lt;br /&gt;
[[Datei:E-mail image.png|alt=E-Mail-Ziel|center|thumb|650x650px|E-Mail-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Email&lt;br /&gt;
*&#039;&#039;&#039;Empfänger:&#039;&#039;&#039; Mögliche Empfänger müssen aus Sicherheitsgründen auf dem Server konfiguriert worden sein. Beispiel:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&#039;Marketing&#039; =&amp;gt; &amp;quot;marketing@example.com&amp;quot;,&lt;br /&gt;
&#039;Administration&#039; =&amp;gt; &#039;WikiSysop&#039;&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Betreff:&#039;&#039;&#039; Vorhandene Formularfelder können hier als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
*&#039;&#039;&#039;Inhalt:&#039;&#039;&#039; Wie beim Betreff können auch hier vorhandene Formularfelder als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
[[mediawikiwiki:Help:Magic_words#Localisation|Lokalisierungsnachrichten]] können in Kombination mit Formularfeldern ebenfalls als Betreff oder E-Mail-Inhalt verwendet werden:&lt;br /&gt;
==Alternatives Ziel: Vorlage==&lt;br /&gt;
Anstatt eine Standard-Wikiseite zu erstellen oder die Formulardaten per E-Mail zu versenden, kann eine [[Handbuch:Vorlagen|Vorlage]] als Ziel für ein Formular verwendet werden. &amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall werden die übermittelten Formulardaten genutzt, um auf Basis einer vorhandenen Vorlagen-Struktur eine neue Wikiseite zu erstellen. Die Formularwerte werden dabei in die Platzhalter der Vorlage eingefügt.&lt;br /&gt;
*&#039;&#039;&#039;Voraussetzungen:&#039;&#039;&#039; Bevor ein Vorlagen-Ziel verwendet werden kann, muss bereits eine entsprechende Vorlagen-Seite im Wiki vorhanden sein. Die Vorlage dient als strukturelle Grundlage für die generierte Seite. Formularfelder werden den in der Vorlage definierten Platzhaltern zugeordnet.&lt;br /&gt;
[[Datei:Template Target.png|alt=Auswahl von Vorlage als Formularziel|center|thumb|550x550px|Template-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Vorlage&lt;br /&gt;
*&#039;&#039;&#039;Predefined title:&#039;&#039;&#039; Optionaler Standardtitel für die neu erstellte Seite oder zur Vorgabe eines Seitenpfads (z. B. um alle generierten Seiten als Unterseiten einer bestimmten Seite zu erstellen)&lt;br /&gt;
*&#039;&#039;&#039;Zu verwendende Vorlage:&#039;&#039;&#039; Name des vorhandenen Templates, das für die Seitenerstellung verwendet wird&lt;br /&gt;
Es wird empfohlen, für Formular und Template identische oder eindeutig zusammengehörige Bezeichnungen zu verwenden. Dies erleichtert die Wartung und macht Konfigurationsabhängigkeiten leichter nachvollziehbar.&lt;br /&gt;
Diese Zielart wird typischerweise verwendet, um standardisierte und lesbare Wikiseiten zu erzeugen. JSON-basierte Ziele werden dagegen häufiger für die strukturierte Weiterverarbeitung von Daten eingesetzt.&lt;br /&gt;
==Styling anpassen==&lt;br /&gt;
===Common.css===&lt;br /&gt;
Um einzelne Elemente im Formular zu gestalten, kann im Optionsdialog der Reiter &#039;&#039;Styling&#039;&#039; verwendet werden. Dort lässt sich ein CSS-Klassenname eintragen. Das eigentliche Styling wird anschließend auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; definiert (Administratorrechte erforderlich).&lt;br /&gt;
So wird die Abschnittsüberschrift gestaltet:&lt;br /&gt;
#Den Reiter &#039;&#039;Styling&#039;&#039; im Optionsmenü des Feldes &#039;&#039;Event heading&#039;&#039; &#039;&#039;&#039;öffnen&#039;&#039;&#039;&lt;br /&gt;
#Eine neue CSS-Klasse &#039;&#039;&#039;hinzufügen&#039;&#039;&#039; und einen Selektornamen im Feld &#039;&#039;CSS Classes&#039;&#039; eintragen, z. B. &#039;&#039;frm-sectionhd&#039;&#039;&lt;br /&gt;
[[Datei:forms-css-class-de.png|alt=CSS-Klasse hinzufügen|center|thumb|650x650px|CSS-Klasse hinzufügen]]&lt;br /&gt;
#Die folgenden Stildefinitionen auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; &#039;&#039;&#039;einfügen&#039;&#039;&#039;:&lt;br /&gt;
[[Datei:forms-css-class-view-de.png|alt=Abschnittsüberschrift mit individuellem Styling|center|thumb|650x650px|Abschnittsüberschrift mit individuellem Styling]] &amp;lt;br&amp;gt;&lt;br /&gt;
Falls keine Berechtigung zum Anzeigen oder Bearbeiten dieser Seite besteht, können Stilinformationen auch direkt über Inline-Styling für einzelne Formularelemente hinterlegt werden.&lt;br /&gt;
===Inline-Styling===&lt;br /&gt;
Ohne Zugriff auf &#039;&#039;MediaWiki:Common.css&#039;&#039; können Stilinformationen direkt im Formular eingetragen werden. Bei häufig wiederkehrenden Stildefinitionen ist dies jedoch weniger effizient als die Verwendung von CSS-Klassen in &#039;&#039;MediaWiki:Common.css&#039;&#039;. &amp;lt;br&amp;gt;​Im folgenden Beispiel wird das zuvor verwendete Styling der Abschnittsüberschrift direkt als Inline-Styling angewendet. Dazu erneut das Optionsmenü des Formularelements &#039;&#039;ech-event&#039;&#039; öffnen. Anschließend den folgenden Eintrag im Feld &#039;&#039;Styling&#039;&#039; hinterlegen und die Änderung speichern:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
border-bottom: 1px solid #a6a6a7;  background:#f1f3f9; padding:6px;margin:30px 0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:forms-css-inlinestyling-en.png|alt=Inline-Styling eines Formularelements|center|thumb|650x650px|Inline-Styling eines Formularelements]]&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Formularelemente&amp;diff=16565</id>
		<title>Handbuch:Erweiterung/Forms/Formularelemente</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms/Formularelemente&amp;diff=16565"/>
		<updated>2026-06-02T14:10:05Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: Die Seite wurde neu angelegt: „== Formularelemente == Folgende Formularfelder können zu einem Formular hinzugefügt werden:  === Eingabefelder === {| class=&amp;quot;wikitable compact&amp;quot; style=&amp;quot;width: 100%;&amp;quot; !Feld !Eingabetyp !Funktion |- |Buch |book |Auto-Vervollständigungsfeld zum Finden von Seiten im Namensraum „Book“ |- |Text |text |Standard-Textfeld |- |Textbereich |textarea |Mehrzeiliges Textfeld |- |Wikitext-Eingabe |wikitext |Mehrzeiliges Textfeld für Wikitext-Syntax |- |Kategorie-…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Formularelemente ==&lt;br /&gt;
Folgende Formularfelder können zu einem Formular hinzugefügt werden:&lt;br /&gt;
&lt;br /&gt;
=== Eingabefelder ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Eingabetyp&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Buch&lt;br /&gt;
|book&lt;br /&gt;
|Auto-Vervollständigungsfeld zum Finden von Seiten im Namensraum „Book“&lt;br /&gt;
|-&lt;br /&gt;
|Text&lt;br /&gt;
|text&lt;br /&gt;
|Standard-Textfeld&lt;br /&gt;
|-&lt;br /&gt;
|Textbereich&lt;br /&gt;
|textarea&lt;br /&gt;
|Mehrzeiliges Textfeld&lt;br /&gt;
|-&lt;br /&gt;
|Wikitext-Eingabe&lt;br /&gt;
|wikitext&lt;br /&gt;
|Mehrzeiliges Textfeld für Wikitext-Syntax&lt;br /&gt;
|-&lt;br /&gt;
|Kategorie-Multiauswahl&lt;br /&gt;
|category_multiselect&lt;br /&gt;
|Token-Feld zum Hinzufügen einer oder mehrerer Kategorien zur Seite; Werte werden mit der &amp;lt;code&amp;gt;Eingabetaste&amp;lt;/code&amp;gt; getrennt&lt;br /&gt;
|-&lt;br /&gt;
|Kontrollkästchen&lt;br /&gt;
|checkbox&lt;br /&gt;
|Einzelnes Kontrollkästchen&lt;br /&gt;
|-&lt;br /&gt;
|Menü-Tag-Multiauswahl&lt;br /&gt;
|menutag_multiselect&lt;br /&gt;
|Mehrfachwert-Eingabe; Werte werden mit der &amp;lt;code&amp;gt;Eingabetaste&amp;lt;/code&amp;gt; getrennt&lt;br /&gt;
|-&lt;br /&gt;
|Kontrollkästchen-Multiauswahl&lt;br /&gt;
|checkbox_multiselect&lt;br /&gt;
|Gruppe von Kontrollkästchen (ermöglicht die Auswahl mehrerer Werte)&lt;br /&gt;
|-&lt;br /&gt;
|Dropdown&lt;br /&gt;
|dropdown&lt;br /&gt;
|Dropdown-Liste mit vordefinierten Optionen&lt;br /&gt;
|-&lt;br /&gt;
|Zahl&lt;br /&gt;
|number&lt;br /&gt;
|Ganzzahlfeld&lt;br /&gt;
|-&lt;br /&gt;
|Optionsfeld&lt;br /&gt;
|radio&lt;br /&gt;
|Einzelnes Optionsfeld (wird in manuell ausgefüllten Formularen normalerweise nicht verwendet)&lt;br /&gt;
|-&lt;br /&gt;
|Optionsfeldgruppe&lt;br /&gt;
|radio_multiselect&lt;br /&gt;
|Gruppe von Optionsfeldern (ermöglicht die Auswahl genau eines Wertes)&lt;br /&gt;
|-&lt;br /&gt;
|Dateiauswahl&lt;br /&gt;
|select_file&lt;br /&gt;
|Wählt eine Datei im Wiki aus&lt;br /&gt;
|-&lt;br /&gt;
|Titel-Eingabe&lt;br /&gt;
|title&lt;br /&gt;
|Auto-Vervollständigungsfeld für Wiki-Seiten&lt;br /&gt;
|-&lt;br /&gt;
|Kombinationsfeld&lt;br /&gt;
|combobox&lt;br /&gt;
|Kombiniert ein &#039;&#039;Textfeld&#039;&#039; und eine &#039;&#039;Dropdown-Liste&#039;&#039;. Benutzer können einen vordefinierten Wert auswählen oder einen eigenen Wert eingeben.&lt;br /&gt;
|-&lt;br /&gt;
|Passwort-Eingabe&lt;br /&gt;
|password&lt;br /&gt;
|Erstellt ein Passwortfeld mit Passwort- und Passwort-Wiederholungsfeld. Wird für die Zieltypen &amp;lt;code&amp;gt;JSON on wikipage&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Template&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;Email&amp;lt;/code&amp;gt; nicht verwendet, da das Passwort im Klartext gespeichert wird.&lt;br /&gt;
|-&lt;br /&gt;
|Tag-Eingabe&lt;br /&gt;
|tag&lt;br /&gt;
|Token-Feld zum Hinzufügen mehrerer Werte; Werte werden mit der &amp;lt;code&amp;gt;Eingabetaste&amp;lt;/code&amp;gt; getrennt&lt;br /&gt;
|-&lt;br /&gt;
|Datum&lt;br /&gt;
|date&lt;br /&gt;
|Entspricht &#039;&#039;Date Picker&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Titel-Eingabe&lt;br /&gt;
|title&lt;br /&gt;
|Wählt Seitentitel im Wiki aus&lt;br /&gt;
|-&lt;br /&gt;
|Benutzer-Eingabe&lt;br /&gt;
|user_picker&lt;br /&gt;
|Im Wiki vorhandener Benutzername&lt;br /&gt;
|-&lt;br /&gt;
|Gruppen-Eingabe&lt;br /&gt;
|group_picker&lt;br /&gt;
|Im Wiki vorhandener Gruppenname&lt;br /&gt;
|-&lt;br /&gt;
|Gruppen-Multiauswahl&lt;br /&gt;
|group_multiselect&lt;br /&gt;
|Mehrere Gruppennamen&lt;br /&gt;
|-&lt;br /&gt;
|Benutzer-Multiauswahl&lt;br /&gt;
|user_multiselect&lt;br /&gt;
|Mehrere Benutzernamen&lt;br /&gt;
|-&lt;br /&gt;
|Titel-Multiauswahl&lt;br /&gt;
|title_multiselect&lt;br /&gt;
|Mehrere Seitentitel&lt;br /&gt;
|-&lt;br /&gt;
|Date Picker&lt;br /&gt;
|date_picker&lt;br /&gt;
|Kalender-Widget&lt;br /&gt;
|-&lt;br /&gt;
|Prozent&lt;br /&gt;
|percent&lt;br /&gt;
|Ganzzahliger Wert&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Weitere Elemente ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!Element&lt;br /&gt;
!Eingabetyp&lt;br /&gt;
!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|Statischer Wikitext&lt;br /&gt;
|static_wikitext&lt;br /&gt;
|Nicht bearbeitbarer Text&lt;br /&gt;
|-&lt;br /&gt;
|Schaltfläche&lt;br /&gt;
|button&lt;br /&gt;
|Löst eine Aktion aus (erfordert einen definierten Event-Listener)&lt;br /&gt;
|-&lt;br /&gt;
|Meldungsbanner&lt;br /&gt;
|message&lt;br /&gt;
|Meldung, die an beliebiger Stelle im Formular angezeigt werden kann; der gewählte Typ (Hinweis, Fehler, Warnung, Erfolg) bestimmt die visuelle Darstellung&lt;br /&gt;
|-&lt;br /&gt;
|Teilformular-Import&lt;br /&gt;
|form_input&lt;br /&gt;
|Fügt Formularfelder aus einem anderen Formular hinzu&lt;br /&gt;
|-&lt;br /&gt;
|Symbol&lt;br /&gt;
|icon&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Indikator&lt;br /&gt;
|indicator&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Beschriftung&lt;br /&gt;
|label&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|[[Manual:Extension/Forms/Progress bar|Fortschrittsbalken]]&lt;br /&gt;
|progress_bar&lt;br /&gt;
|Visuelle Darstellung der Anzahl abgeschlossener Schritte in einem Formular, beispielsweise einer Checkliste&lt;br /&gt;
|-&lt;br /&gt;
|Abschnittsüberschrift&lt;br /&gt;
|section_label&lt;br /&gt;
|Überschrift eines Formularabschnitts&lt;br /&gt;
|-&lt;br /&gt;
|Horizontale Linie&lt;br /&gt;
|hr&lt;br /&gt;
|Visuelle Trennlinie&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Optionen für Eingabefelder ===&lt;br /&gt;
Jedes Eingabefeld kann eine beliebige Kombination der folgenden Optionen besitzen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|+Allgemein&lt;br /&gt;
!Typ&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |(alle)&lt;br /&gt;
|Name&lt;br /&gt;
|In der Datenbank gespeicherter Feldname (Sonderzeichen vermeiden)&lt;br /&gt;
|-&lt;br /&gt;
|Beschriftung&lt;br /&gt;
|Dem Benutzer angezeigte Feldbezeichnung&lt;br /&gt;
|-&lt;br /&gt;
|Hilfe&lt;br /&gt;
|Erstellt einen Tooltip neben der Beschriftung&lt;br /&gt;
|-&lt;br /&gt;
|Kein Layout&lt;br /&gt;
|Blendet die Beschriftung aus&lt;br /&gt;
|-&lt;br /&gt;
|Anzeigen bei&lt;br /&gt;
|Modus, in dem dieses Feld sichtbar ist&lt;br /&gt;
|-&lt;br /&gt;
|Bearbeitbar bei&lt;br /&gt;
|Legt fest, wann der Feldwert bearbeitet werden kann&lt;br /&gt;
|-&lt;br /&gt;
|Buch&lt;br /&gt;
|Rückgabe-Eigenschaft&lt;br /&gt;
|?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
|+Darstellung&lt;br /&gt;
!Typ&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |(alle)&lt;br /&gt;
|CSS-Klassen&lt;br /&gt;
|Fügt individuelle CSS-Klassen zur Verwendung in &#039;&#039;MediaWiki:Common.css&#039;&#039; hinzu.&lt;br /&gt;
* Die Klasse wird direkt auf das Formularfeld angewendet und umfasst nicht die Beschriftung.&lt;br /&gt;
* Mehrere Klassen können gemeinsam oder einzeln angegeben werden.&lt;br /&gt;
|-&lt;br /&gt;
|Stil&lt;br /&gt;
|Definiert einen Inline-Stil, der nur dieses Feld betrifft. Der Stil wird auf den Wrapper angewendet und umfasst sowohl die Beschriftung als auch das Feld.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Textbereich, Wikitext-Eingabe&lt;br /&gt;
|Anzahl Zeilen&lt;br /&gt;
|Wird für Textbereiche verwendet&lt;br /&gt;
|-&lt;br /&gt;
|Platzhalter&lt;br /&gt;
|Text, der angezeigt wird, bevor der Benutzer einen Wert eingibt (hat keine Wirkung, wenn bereits ein Standardwert definiert ist)&lt;br /&gt;
|-&lt;br /&gt;
|Optionsfeldgruppe&lt;br /&gt;
|Kein Standardwert&lt;br /&gt;
|Stellt sicher, dass kein Optionsfeld vorausgewählt ist, wenn eine Vorauswahl nicht sinnvoll wäre&lt;br /&gt;
|-&lt;br /&gt;
|Optionsfeldgruppe, Kontrollkästchen-Multiauswahl&lt;br /&gt;
|Horizontales Layout&lt;br /&gt;
|Ordnet Kontrollkästchen oder Optionsfelder horizontal an&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Schaltfläche&lt;br /&gt;
|Symbol&lt;br /&gt;
|Zeigt ein Symbol vor dem Text an (z. B. ein Bootstrap-Icon wie &amp;lt;code&amp;gt;bi bi-calendar&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|Indikator&lt;br /&gt;
|Zeigt ein Symbol nach dem Text an (z. B. ein Bootstrap-Icon wie &amp;lt;code&amp;gt;bi bi-arrow-right&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|Mit Rahmen&lt;br /&gt;
|Wenn deaktiviert, wird die Schaltfläche wie normaler Text dargestellt (und kann über CSS-Klassen wie &amp;lt;code&amp;gt;btn button-warning&amp;lt;/code&amp;gt; gestaltet werden)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
|+Weitere Optionen&lt;br /&gt;
!Typ&lt;br /&gt;
!Feldgruppe&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |(alle)&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Benutzerdefinierte Widget-Eigenschaften&lt;br /&gt;
|Schlüssel&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Wert&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Listener&lt;br /&gt;
|Ereignis&lt;br /&gt;
|Von [https://doc.wikimedia.org/oojs-ui/master/js/OO.ui.html OO.ui-Widgets] unterstütztes Ereignis, z. B. &#039;&#039;change&#039;&#039;, &#039;&#039;enter&#039;&#039;, &#039;&#039;focus&#039;&#039;, &#039;&#039;blur&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Callback&lt;br /&gt;
|Funktion, die beim Auftreten des Ereignisses aufgerufen wird (kann beispielsweise in MediaWiki:Common.js definiert werden)&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|Standardwert / Vorausgewählt&lt;br /&gt;
|Wert, der verwendet wird, wenn der Benutzer keinen Wert angibt; beim Feldtyp &#039;&#039;checkbox&#039;&#039; lautet die Option stattdessen &#039;&#039;Vorausgewählt&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Pflichtfeld&lt;br /&gt;
|Das Formular kann ohne einen Wert in diesem Feld nicht abgesendet werden&lt;br /&gt;
|-&lt;br /&gt;
|Passwort&lt;br /&gt;
|&lt;br /&gt;
|Passwortstärke&lt;br /&gt;
|schwach:&amp;lt;br&amp;gt;&lt;br /&gt;
mittel:&amp;lt;br&amp;gt;&lt;br /&gt;
stark:&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Tag&lt;br /&gt;
|&lt;br /&gt;
|Eingabeposition&lt;br /&gt;
|inline:&amp;lt;br&amp;gt;&lt;br /&gt;
outline:&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Beliebige Werte zulassen&lt;br /&gt;
|Erlaubt die Eingabe anderer Werte als der definierten zulässigen Werte (nur erforderlich, wenn zulässige Werte definiert wurden)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Formulareinstellungen ==&lt;br /&gt;
&lt;br /&gt;
=== Darstellung ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Titel&lt;br /&gt;
|Anzeigetitel des Formulars&lt;br /&gt;
|-&lt;br /&gt;
|Titel anzeigen&lt;br /&gt;
|Zeigt den Formulartitel oberhalb jeder Formularinstanz an&lt;br /&gt;
|-&lt;br /&gt;
|Formularname anzeigen&lt;br /&gt;
|Zeigt den Namen des Formulars als erstes Formularelement mit der Beschriftung &#039;&#039;Verwendetes Formular&#039;&#039; an&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Verhalten ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Kategorien&lt;br /&gt;
|Fügt jeder Formularinstanz Kategorien hinzu; Werte werden mit der &amp;lt;code&amp;gt;Eingabetaste&amp;lt;/code&amp;gt; getrennt&lt;br /&gt;
|-&lt;br /&gt;
|Nach Erstellung versiegeln&lt;br /&gt;
|Formularinstanzen können nach dem ersten Speichern nicht mehr bearbeitet werden&lt;br /&gt;
|-&lt;br /&gt;
|Zwischenspeichern aktivieren&lt;br /&gt;
|Formularinstanzen zeigen sowohl eine &amp;lt;code&amp;gt;Speichern&amp;lt;/code&amp;gt;- als auch eine &amp;lt;code&amp;gt;Speichern &amp;amp; Schließen&amp;lt;/code&amp;gt;-Schaltfläche an;&lt;br /&gt;
die Schaltfläche &amp;lt;code&amp;gt;Speichern&amp;lt;/code&amp;gt; speichert die aktuellen Formularwerte und belässt das Formular im Bearbeitungsmodus.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Infrastruktur ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Resource-Loader-Abhängigkeiten&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Versionen nachverfolgen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Einbindbar&lt;br /&gt;
|Erweitert ein Formular&lt;br /&gt;
|-&lt;br /&gt;
|Abstrakt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Teilformular&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ziel ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Zieltyp&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Vordefinierter Seitentitel für mit diesem Formular erstellte Seiten&lt;br /&gt;
|Verwenden Sie den Feldnamen, um den Wert eines Formularfeldes einzusetzen.&lt;br /&gt;
Beispiel: Wenn ein Feld den Namen &amp;lt;code&amp;gt;company_name&amp;lt;/code&amp;gt; besitzt, kann &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{company_name}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; als Seitentitel oder als Teil des Seitentitels verwendet werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Listener ===&lt;br /&gt;
{| class=&amp;quot;wikitable compact&amp;quot;&lt;br /&gt;
!Feld&lt;br /&gt;
!Funktion&lt;br /&gt;
|-&lt;br /&gt;
|Ereignis&lt;br /&gt;
|Jeder Listener reagiert auf eines der folgenden Ereignisse:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;initCompleteForm:&#039;&#039; Das Objekt wurde initialisiert&lt;br /&gt;
* &#039;&#039;parseComplete:&#039;&#039; JSON, Schema oder Konfiguration wurden vollständig verarbeitet&lt;br /&gt;
* &#039;&#039;renderComplete:&#039;&#039; Die Benutzeroberfläche wurde vollständig im DOM gerendert&lt;br /&gt;
* &#039;&#039;beforeSubmitData:&#039;&#039; Direkt vor dem Absenden der Daten&lt;br /&gt;
|-&lt;br /&gt;
|Callback&lt;br /&gt;
|Ruft eine Funktion auf, wenn das Ereignis eintritt;&lt;br /&gt;
siehe das Beispiel zum [[Manual:Extension/Forms/Progress bar|Fortschrittsbalken]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{translation}}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:forms-css-inlinestyling-en.png&amp;diff=16564</id>
		<title>Datei:forms-css-inlinestyling-en.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:forms-css-inlinestyling-en.png&amp;diff=16564"/>
		<updated>2026-06-02T11:48:52Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:forms-css-class-view-de.png&amp;diff=16563</id>
		<title>Datei:forms-css-class-view-de.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:forms-css-class-view-de.png&amp;diff=16563"/>
		<updated>2026-06-02T11:48:15Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:forms-css-class-de.png&amp;diff=16562</id>
		<title>Datei:forms-css-class-de.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:forms-css-class-de.png&amp;diff=16562"/>
		<updated>2026-06-02T11:48:05Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16561</id>
		<title>Handbuch:Erweiterung/Forms</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16561"/>
		<updated>2026-06-02T11:47:50Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die &#039;&#039;&#039;Forms&#039;&#039;&#039;-Erweiterung ermöglicht es, eine Wikiseite oder einen Benutzerdialog als Formular zu gestalten. Sie wird außerdem in Verbindung mit der Erweiterung [[Handbuch:Erweiterung/Workflows|Workflows]] verwendet, um Eingabeformulare für Workflow-Daten bereitzustellen.&lt;br /&gt;
==Einführung==&lt;br /&gt;
Um beispielsweise eine Checkliste als Formular zu erstellen, sind folgende Schritte erforderlich:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen der Checklisten-Formulardefinition&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen von Checklisteninstanzen direkt über die Formulardefinitionsseite&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel werden die ersten Felder für eine Veranstaltung erstellt, bei der hygienerelevante Informationen im Zusammenhang mit Lebensmitteln dokumentiert werden müssen.&lt;br /&gt;
[[Datei:checklist-event-screenshot.png|alt=Beispiel einer Veranstaltungs-Checkliste|center|thumb|550x550px|Beispiel einer Veranstaltungs-Checkliste]]&lt;br /&gt;
&lt;br /&gt;
==Ein Checklistenformular erstellen==&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Seite &#039;&#039;EventChecklisteHygiene.form&#039;&#039;.&lt;br /&gt;
[[Datei:Extension Forms create form.png|center|thumb|400x400px|alt=Dialog zum Erstellen einer Seite|Neue Formularseite erstellen]]&lt;br /&gt;
Dadurch wird der Formulareditor geöffnet.&lt;br /&gt;
[[Datei:Extension Forms form editor.png|alt=Elemente des Formulareditors|center|thumb|700x700px|Formulareditor]]&lt;br /&gt;
#&#039;&#039;&#039;Hinzufügen&#039;&#039;&#039; eines Formularabschnitts:&lt;br /&gt;
##Das Element &#039;&#039;Section label&#039;&#039; unter &#039;&#039;Form Elements &amp;gt; Other&#039;&#039; &#039;&#039;&#039;auswählen&#039;&#039;&#039; (siehe Markierung 2 im Screenshot) und bei gedrückter linker Maustaste in den interaktiven Formulareditor ziehen.&lt;br /&gt;
##Irgendwo in die Zeile &#039;&#039;Section label&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als Feld-ID in der Datenbank gespeichert und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Den &#039;&#039;Title&#039;&#039; für die Abschnittsüberschrift &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als sichtbare Beschriftung angezeigt.&lt;br /&gt;
[[Datei:Extension Forms add section header.png|alt=Inspektor für das Element Section label|center|thumb|700x700px|Erste Abschnittsüberschrift hinzufügen]]&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Formularfelder für den Abschnitt &#039;&#039;Event&#039;&#039;. Im folgenden Beispiel wird ein Textfeld hinzugefügt.&lt;br /&gt;
##Das Element &#039;&#039;Text&#039;&#039; aus &#039;&#039;Form Elements &amp;gt; Inputs&#039;&#039; unter die Abschnittsüberschrift &#039;&#039;&#039;ziehen&#039;&#039;&#039;.&lt;br /&gt;
##Irgendwo in die Zeile des Textfelds &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser dient als Datenbank-ID für das Feld und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Das &#039;&#039;Label&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;. Dieses wird als sichtbare Feldbeschriftung angezeigt.&lt;br /&gt;
##Weitere Formularelemente &#039;&#039;&#039;hinzufügen&#039;&#039;&#039;.&lt;br /&gt;
#Auf &#039;&#039;Speichern&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;. Das Formular steht nun als &#039;&#039;EventChecklisteHygiene.form&#039;&#039; zur Verfügung.&lt;br /&gt;
[[Datei:Checklist-view.png|alt=Gespeichertes Formular|center|thumb|650x650px|Gespeichertes Formular]]&lt;br /&gt;
==Weitere Formularelemente hinzufügen==&lt;br /&gt;
Nun können weitere Felder hinzugefügt werden:&lt;br /&gt;
[[Extension/Forms/Form elements and settings|Übersicht aller Formularelemente, die Formularen hinzugefügt werden können.]]&lt;br /&gt;
==Eine Checklisteninstanz erstellen==&lt;br /&gt;
Um eine Checkliste aus dem Formular zu erstellen:&lt;br /&gt;
# Einen Veranstaltungsnamen &#039;&#039;&#039;eingeben&#039;&#039;&#039;&lt;br /&gt;
# Die Formularfelder &#039;&#039;&#039;ausfüllen&#039;&#039;&#039;&lt;br /&gt;
# Auf &#039;&#039;Abschicken&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;&lt;br /&gt;
Die Checkliste wird nun im Wiki gespeichert und kann anschließend weiter bearbeitet werden.&lt;br /&gt;
==Alternatives Ziel: E-Mail==&lt;br /&gt;
Anstatt beim Speichern des Formulars eine Wikiseite zu erstellen, können die Formulardaten an ein E-Mail-Konto gesendet werden.&lt;br /&gt;
(&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der E-Mail-Empfänger muss durch einen Serveradministrator auf dem Server konfiguriert werden, damit er in Formularen verfügbar ist.)&lt;br /&gt;
[[Datei:E-mail image.png|alt=E-Mail-Ziel|center|thumb|650x650px|E-Mail-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Email&lt;br /&gt;
*&#039;&#039;&#039;Empfänger:&#039;&#039;&#039; Mögliche Empfänger müssen aus Sicherheitsgründen auf dem Server konfiguriert worden sein. Beispiel:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&#039;Marketing&#039; =&amp;gt; &amp;quot;marketing@example.com&amp;quot;,&lt;br /&gt;
&#039;Administration&#039; =&amp;gt; &#039;WikiSysop&#039;&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Betreff:&#039;&#039;&#039; Vorhandene Formularfelder können hier als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
*&#039;&#039;&#039;Inhalt:&#039;&#039;&#039; Wie beim Betreff können auch hier vorhandene Formularfelder als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
[[mediawikiwiki:Help:Magic_words#Localisation|Lokalisierungsnachrichten]] können in Kombination mit Formularfeldern ebenfalls als Betreff oder E-Mail-Inhalt verwendet werden:&lt;br /&gt;
==Alternatives Ziel: Vorlage==&lt;br /&gt;
Anstatt eine Standard-Wikiseite zu erstellen oder die Formulardaten per E-Mail zu versenden, kann eine [[Handbuch:Vorlagen|Vorlage]] als Ziel für ein Formular verwendet werden. &amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall werden die übermittelten Formulardaten genutzt, um auf Basis einer vorhandenen Vorlagen-Struktur eine neue Wikiseite zu erstellen. Die Formularwerte werden dabei in die Platzhalter der Vorlage eingefügt.&lt;br /&gt;
*&#039;&#039;&#039;Voraussetzungen:&#039;&#039;&#039; Bevor ein Vorlagen-Ziel verwendet werden kann, muss bereits eine entsprechende Vorlagen-Seite im Wiki vorhanden sein. Die Vorlage dient als strukturelle Grundlage für die generierte Seite. Formularfelder werden den in der Vorlage definierten Platzhaltern zugeordnet.&lt;br /&gt;
[[Datei:Template Target.png|alt=Auswahl von Vorlage als Formularziel|center|thumb|550x550px|Template-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Vorlage&lt;br /&gt;
*&#039;&#039;&#039;Predefined title:&#039;&#039;&#039; Optionaler Standardtitel für die neu erstellte Seite oder zur Vorgabe eines Seitenpfads (z. B. um alle generierten Seiten als Unterseiten einer bestimmten Seite zu erstellen)&lt;br /&gt;
*&#039;&#039;&#039;Zu verwendende Vorlage:&#039;&#039;&#039; Name des vorhandenen Templates, das für die Seitenerstellung verwendet wird&lt;br /&gt;
Es wird empfohlen, für Formular und Template identische oder eindeutig zusammengehörige Bezeichnungen zu verwenden. Dies erleichtert die Wartung und macht Konfigurationsabhängigkeiten leichter nachvollziehbar.&lt;br /&gt;
Diese Zielart wird typischerweise verwendet, um standardisierte und lesbare Wikiseiten zu erzeugen. JSON-basierte Ziele werden dagegen häufiger für die strukturierte Weiterverarbeitung von Daten eingesetzt.&lt;br /&gt;
==Styling anpassen==&lt;br /&gt;
===Common.css===&lt;br /&gt;
Um einzelne Elemente im Formular zu gestalten, kann im Optionsdialog der Reiter &#039;&#039;Styling&#039;&#039; verwendet werden. Dort lässt sich ein CSS-Klassenname eintragen. Das eigentliche Styling wird anschließend auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; definiert (Administratorrechte erforderlich).&lt;br /&gt;
So wird die Abschnittsüberschrift gestaltet:&lt;br /&gt;
#Den Reiter &#039;&#039;Styling&#039;&#039; im Optionsmenü des Feldes &#039;&#039;Event heading&#039;&#039; &#039;&#039;&#039;öffnen&#039;&#039;&#039;&lt;br /&gt;
#Eine neue CSS-Klasse &#039;&#039;&#039;hinzufügen&#039;&#039;&#039; und einen Selektornamen im Feld &#039;&#039;CSS Classes&#039;&#039; eintragen, z. B. &#039;&#039;frm-sectionhd&#039;&#039;&lt;br /&gt;
[[Datei:forms-css-class-de.png|alt=CSS-Klasse hinzufügen|center|thumb|650x650px|CSS-Klasse hinzufügen]]&lt;br /&gt;
#Die folgenden Stildefinitionen auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; &#039;&#039;&#039;einfügen&#039;&#039;&#039;:&lt;br /&gt;
[[Datei:forms-css-class-view-de.png|alt=Abschnittsüberschrift mit individuellem Styling|center|thumb|650x650px|Abschnittsüberschrift mit individuellem Styling]] &amp;lt;br&amp;gt;&lt;br /&gt;
Falls keine Berechtigung zum Anzeigen oder Bearbeiten dieser Seite besteht, können Stilinformationen auch direkt über Inline-Styling für einzelne Formularelemente hinterlegt werden.&lt;br /&gt;
===Inline-Styling===&lt;br /&gt;
Ohne Zugriff auf &#039;&#039;MediaWiki:Common.css&#039;&#039; können Stilinformationen direkt im Formular eingetragen werden. Bei häufig wiederkehrenden Stildefinitionen ist dies jedoch weniger effizient als die Verwendung von CSS-Klassen in &#039;&#039;MediaWiki:Common.css&#039;&#039;. &amp;lt;br&amp;gt;​Im folgenden Beispiel wird das zuvor verwendete Styling der Abschnittsüberschrift direkt als Inline-Styling angewendet. Dazu erneut das Optionsmenü des Formularelements &#039;&#039;ech-event&#039;&#039; öffnen. Anschließend den folgenden Eintrag im Feld &#039;&#039;Styling&#039;&#039; hinterlegen und die Änderung speichern:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
border-bottom: 1px solid #a6a6a7;  background:#f1f3f9; padding:6px;margin:30px 0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:forms-css-inlinestyling-en.png|alt=Inline-Styling eines Formularelements|center|thumb|650x650px|Inline-Styling eines Formularelements]]&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:Template_Target.png&amp;diff=16560</id>
		<title>Datei:Template Target.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:Template_Target.png&amp;diff=16560"/>
		<updated>2026-06-02T11:45:03Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16559</id>
		<title>Handbuch:Erweiterung/Forms</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16559"/>
		<updated>2026-06-02T11:44:50Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die &#039;&#039;&#039;Forms&#039;&#039;&#039;-Erweiterung ermöglicht es, eine Wikiseite oder einen Benutzerdialog als Formular zu gestalten. Sie wird außerdem in Verbindung mit der Erweiterung [[Handbuch:Erweiterung/Workflows|Workflows]] verwendet, um Eingabeformulare für Workflow-Daten bereitzustellen.&lt;br /&gt;
==Einführung==&lt;br /&gt;
Um beispielsweise eine Checkliste als Formular zu erstellen, sind folgende Schritte erforderlich:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen der Checklisten-Formulardefinition&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen von Checklisteninstanzen direkt über die Formulardefinitionsseite&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel werden die ersten Felder für eine Veranstaltung erstellt, bei der hygienerelevante Informationen im Zusammenhang mit Lebensmitteln dokumentiert werden müssen.&lt;br /&gt;
[[Datei:checklist-event-screenshot.png|alt=Beispiel einer Veranstaltungs-Checkliste|center|thumb|550x550px|Beispiel einer Veranstaltungs-Checkliste]]&lt;br /&gt;
&lt;br /&gt;
==Ein Checklistenformular erstellen==&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Seite &#039;&#039;EventChecklisteHygiene.form&#039;&#039;.&lt;br /&gt;
[[Datei:Extension Forms create form.png|center|thumb|400x400px|alt=Dialog zum Erstellen einer Seite|Neue Formularseite erstellen]]&lt;br /&gt;
Dadurch wird der Formulareditor geöffnet.&lt;br /&gt;
[[Datei:Extension Forms form editor.png|alt=Elemente des Formulareditors|center|thumb|700x700px|Formulareditor]]&lt;br /&gt;
#&#039;&#039;&#039;Hinzufügen&#039;&#039;&#039; eines Formularabschnitts:&lt;br /&gt;
##Das Element &#039;&#039;Section label&#039;&#039; unter &#039;&#039;Form Elements &amp;gt; Other&#039;&#039; &#039;&#039;&#039;auswählen&#039;&#039;&#039; (siehe Markierung 2 im Screenshot) und bei gedrückter linker Maustaste in den interaktiven Formulareditor ziehen.&lt;br /&gt;
##Irgendwo in die Zeile &#039;&#039;Section label&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als Feld-ID in der Datenbank gespeichert und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Den &#039;&#039;Title&#039;&#039; für die Abschnittsüberschrift &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als sichtbare Beschriftung angezeigt.&lt;br /&gt;
[[Datei:Extension Forms add section header.png|alt=Inspektor für das Element Section label|center|thumb|700x700px|Erste Abschnittsüberschrift hinzufügen]]&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Formularfelder für den Abschnitt &#039;&#039;Event&#039;&#039;. Im folgenden Beispiel wird ein Textfeld hinzugefügt.&lt;br /&gt;
##Das Element &#039;&#039;Text&#039;&#039; aus &#039;&#039;Form Elements &amp;gt; Inputs&#039;&#039; unter die Abschnittsüberschrift &#039;&#039;&#039;ziehen&#039;&#039;&#039;.&lt;br /&gt;
##Irgendwo in die Zeile des Textfelds &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser dient als Datenbank-ID für das Feld und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Das &#039;&#039;Label&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;. Dieses wird als sichtbare Feldbeschriftung angezeigt.&lt;br /&gt;
##Weitere Formularelemente &#039;&#039;&#039;hinzufügen&#039;&#039;&#039;.&lt;br /&gt;
#Auf &#039;&#039;Speichern&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;. Das Formular steht nun als &#039;&#039;EventChecklisteHygiene.form&#039;&#039; zur Verfügung.&lt;br /&gt;
[[Datei:Checklist-view.png|alt=Gespeichertes Formular|center|thumb|650x650px|Gespeichertes Formular]]&lt;br /&gt;
==Weitere Formularelemente hinzufügen==&lt;br /&gt;
Nun können weitere Felder hinzugefügt werden:&lt;br /&gt;
[[Extension/Forms/Form elements and settings|Übersicht aller Formularelemente, die Formularen hinzugefügt werden können.]]&lt;br /&gt;
==Eine Checklisteninstanz erstellen==&lt;br /&gt;
Um eine Checkliste aus dem Formular zu erstellen:&lt;br /&gt;
# Einen Veranstaltungsnamen &#039;&#039;&#039;eingeben&#039;&#039;&#039;&lt;br /&gt;
# Die Formularfelder &#039;&#039;&#039;ausfüllen&#039;&#039;&#039;&lt;br /&gt;
# Auf &#039;&#039;Abschicken&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;&lt;br /&gt;
Die Checkliste wird nun im Wiki gespeichert und kann anschließend weiter bearbeitet werden.&lt;br /&gt;
==Alternatives Ziel: E-Mail==&lt;br /&gt;
Anstatt beim Speichern des Formulars eine Wikiseite zu erstellen, können die Formulardaten an ein E-Mail-Konto gesendet werden.&lt;br /&gt;
(&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der E-Mail-Empfänger muss durch einen Serveradministrator auf dem Server konfiguriert werden, damit er in Formularen verfügbar ist.)&lt;br /&gt;
[[Datei:E-mail image.png|alt=E-Mail-Ziel|center|thumb|650x650px|E-Mail-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Email&lt;br /&gt;
*&#039;&#039;&#039;Empfänger:&#039;&#039;&#039; Mögliche Empfänger müssen aus Sicherheitsgründen auf dem Server konfiguriert worden sein. Beispiel:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&#039;Marketing&#039; =&amp;gt; &amp;quot;marketing@example.com&amp;quot;,&lt;br /&gt;
&#039;Administration&#039; =&amp;gt; &#039;WikiSysop&#039;&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Betreff:&#039;&#039;&#039; Vorhandene Formularfelder können hier als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
*&#039;&#039;&#039;Inhalt:&#039;&#039;&#039; Wie beim Betreff können auch hier vorhandene Formularfelder als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
[[mediawikiwiki:Help:Magic_words#Localisation|Lokalisierungsnachrichten]] können in Kombination mit Formularfeldern ebenfalls als Betreff oder E-Mail-Inhalt verwendet werden:&lt;br /&gt;
==Alternatives Ziel: Vorlage==&lt;br /&gt;
Anstatt eine Standard-Wikiseite zu erstellen oder die Formulardaten per E-Mail zu versenden, kann eine [[Handbuch:Vorlagen|Vorlage]] als Ziel für ein Formular verwendet werden. &amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall werden die übermittelten Formulardaten genutzt, um auf Basis einer vorhandenen Vorlagen-Struktur eine neue Wikiseite zu erstellen. Die Formularwerte werden dabei in die Platzhalter der Vorlage eingefügt.&lt;br /&gt;
*&#039;&#039;&#039;Voraussetzungen:&#039;&#039;&#039; Bevor ein Vorlagen-Ziel verwendet werden kann, muss bereits eine entsprechende Vorlagen-Seite im Wiki vorhanden sein. Die Vorlage dient als strukturelle Grundlage für die generierte Seite. Formularfelder werden den in der Vorlage definierten Platzhaltern zugeordnet.&lt;br /&gt;
[[Datei:Template Target.png|alt=Auswahl von Vorlage als Formularziel|center|thumb|550x550px|Template-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Vorlage&lt;br /&gt;
*&#039;&#039;&#039;Predefined title:&#039;&#039;&#039; Optionaler Standardtitel für die neu erstellte Seite oder zur Vorgabe eines Seitenpfads (z. B. um alle generierten Seiten als Unterseiten einer bestimmten Seite zu erstellen)&lt;br /&gt;
*&#039;&#039;&#039;Zu verwendende Vorlage:&#039;&#039;&#039; Name des vorhandenen Templates, das für die Seitenerstellung verwendet wird&lt;br /&gt;
Es wird empfohlen, für Formular und Template identische oder eindeutig zusammengehörige Bezeichnungen zu verwenden. Dies erleichtert die Wartung und macht Konfigurationsabhängigkeiten leichter nachvollziehbar.&lt;br /&gt;
Diese Zielart wird typischerweise verwendet, um standardisierte und lesbare Wikiseiten zu erzeugen. JSON-basierte Ziele werden dagegen häufiger für die strukturierte Weiterverarbeitung von Daten eingesetzt.&lt;br /&gt;
==Styling anpassen==&lt;br /&gt;
===Common.css===&lt;br /&gt;
Um einzelne Elemente im Formular zu gestalten, kann im Optionsdialog der Reiter &#039;&#039;Styling&#039;&#039; verwendet werden. Dort lässt sich ein CSS-Klassenname eintragen. Das eigentliche Styling wird anschließend auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; definiert (Administratorrechte erforderlich).&lt;br /&gt;
So wird die Abschnittsüberschrift gestaltet:&lt;br /&gt;
#Den Reiter &#039;&#039;Styling&#039;&#039; im Optionsmenü des Feldes &#039;&#039;Event heading&#039;&#039; &#039;&#039;&#039;öffnen&#039;&#039;&#039;&lt;br /&gt;
#Eine neue CSS-Klasse &#039;&#039;&#039;hinzufügen&#039;&#039;&#039; und einen Selektornamen im Feld &#039;&#039;CSS Classes&#039;&#039; eintragen, z. B. &#039;&#039;frm-sectionhd&#039;&#039;&lt;br /&gt;
[[Datei:forms-css-class-en.png|alt=CSS-Klasse hinzufügen|center|thumb|650x650px|CSS-Klasse hinzufügen]]&lt;br /&gt;
#Die folgenden Stildefinitionen auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; &#039;&#039;&#039;einfügen&#039;&#039;&#039;:&lt;br /&gt;
[[Datei:forms-css-class-view-en.png|alt=Abschnittsüberschrift mit individuellem Styling|center|thumb|650x650px|Abschnittsüberschrift mit individuellem Styling]] &amp;lt;br&amp;gt;&lt;br /&gt;
Falls keine Berechtigung zum Anzeigen oder Bearbeiten dieser Seite besteht, können Stilinformationen auch direkt über Inline-Styling für einzelne Formularelemente hinterlegt werden.&lt;br /&gt;
===Inline-Styling===&lt;br /&gt;
Ohne Zugriff auf &#039;&#039;MediaWiki:Common.css&#039;&#039; können Stilinformationen direkt im Formular eingetragen werden. Bei häufig wiederkehrenden Stildefinitionen ist dies jedoch weniger effizient als die Verwendung von CSS-Klassen in &#039;&#039;MediaWiki:Common.css&#039;&#039;. &amp;lt;br&amp;gt;​Im folgenden Beispiel wird das zuvor verwendete Styling der Abschnittsüberschrift direkt als Inline-Styling angewendet. Dazu erneut das Optionsmenü des Formularelements &#039;&#039;ech-event&#039;&#039; öffnen. Anschließend den folgenden Eintrag im Feld &#039;&#039;Styling&#039;&#039; hinterlegen und die Änderung speichern:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
border-bottom: 1px solid #a6a6a7;  background:#f1f3f9; padding:6px;margin:30px 0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:forms-css-inlinestyling-en.png|alt=Inline-Styling eines Formularelements|center|thumb|650x650px|Inline-Styling eines Formularelements]]&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:E-mail_image.png&amp;diff=16558</id>
		<title>Datei:E-mail image.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:E-mail_image.png&amp;diff=16558"/>
		<updated>2026-06-02T11:42:30Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16557</id>
		<title>Handbuch:Erweiterung/Forms</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16557"/>
		<updated>2026-06-02T11:42:16Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die &#039;&#039;&#039;Forms&#039;&#039;&#039;-Erweiterung ermöglicht es, eine Wikiseite oder einen Benutzerdialog als Formular zu gestalten. Sie wird außerdem in Verbindung mit der Erweiterung [[Handbuch:Erweiterung/Workflows|Workflows]] verwendet, um Eingabeformulare für Workflow-Daten bereitzustellen.&lt;br /&gt;
==Einführung==&lt;br /&gt;
Um beispielsweise eine Checkliste als Formular zu erstellen, sind folgende Schritte erforderlich:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen der Checklisten-Formulardefinition&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen von Checklisteninstanzen direkt über die Formulardefinitionsseite&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel werden die ersten Felder für eine Veranstaltung erstellt, bei der hygienerelevante Informationen im Zusammenhang mit Lebensmitteln dokumentiert werden müssen.&lt;br /&gt;
[[Datei:checklist-event-screenshot.png|alt=Beispiel einer Veranstaltungs-Checkliste|center|thumb|550x550px|Beispiel einer Veranstaltungs-Checkliste]]&lt;br /&gt;
&lt;br /&gt;
==Ein Checklistenformular erstellen==&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Seite &#039;&#039;EventChecklisteHygiene.form&#039;&#039;.&lt;br /&gt;
[[Datei:Extension Forms create form.png|center|thumb|400x400px|alt=Dialog zum Erstellen einer Seite|Neue Formularseite erstellen]]&lt;br /&gt;
Dadurch wird der Formulareditor geöffnet.&lt;br /&gt;
[[Datei:Extension Forms form editor.png|alt=Elemente des Formulareditors|center|thumb|700x700px|Formulareditor]]&lt;br /&gt;
#&#039;&#039;&#039;Hinzufügen&#039;&#039;&#039; eines Formularabschnitts:&lt;br /&gt;
##Das Element &#039;&#039;Section label&#039;&#039; unter &#039;&#039;Form Elements &amp;gt; Other&#039;&#039; &#039;&#039;&#039;auswählen&#039;&#039;&#039; (siehe Markierung 2 im Screenshot) und bei gedrückter linker Maustaste in den interaktiven Formulareditor ziehen.&lt;br /&gt;
##Irgendwo in die Zeile &#039;&#039;Section label&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als Feld-ID in der Datenbank gespeichert und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Den &#039;&#039;Title&#039;&#039; für die Abschnittsüberschrift &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als sichtbare Beschriftung angezeigt.&lt;br /&gt;
[[Datei:Extension Forms add section header.png|alt=Inspektor für das Element Section label|center|thumb|700x700px|Erste Abschnittsüberschrift hinzufügen]]&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Formularfelder für den Abschnitt &#039;&#039;Event&#039;&#039;. Im folgenden Beispiel wird ein Textfeld hinzugefügt.&lt;br /&gt;
##Das Element &#039;&#039;Text&#039;&#039; aus &#039;&#039;Form Elements &amp;gt; Inputs&#039;&#039; unter die Abschnittsüberschrift &#039;&#039;&#039;ziehen&#039;&#039;&#039;.&lt;br /&gt;
##Irgendwo in die Zeile des Textfelds &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser dient als Datenbank-ID für das Feld und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Das &#039;&#039;Label&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;. Dieses wird als sichtbare Feldbeschriftung angezeigt.&lt;br /&gt;
##Weitere Formularelemente &#039;&#039;&#039;hinzufügen&#039;&#039;&#039;.&lt;br /&gt;
#Auf &#039;&#039;Speichern&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;. Das Formular steht nun als &#039;&#039;EventChecklisteHygiene.form&#039;&#039; zur Verfügung.&lt;br /&gt;
[[Datei:Checklist-view.png|alt=Gespeichertes Formular|center|thumb|650x650px|Gespeichertes Formular]]&lt;br /&gt;
==Weitere Formularelemente hinzufügen==&lt;br /&gt;
Nun können weitere Felder hinzugefügt werden:&lt;br /&gt;
[[Extension/Forms/Form elements and settings|Übersicht aller Formularelemente, die Formularen hinzugefügt werden können.]]&lt;br /&gt;
==Eine Checklisteninstanz erstellen==&lt;br /&gt;
Um eine Checkliste aus dem Formular zu erstellen:&lt;br /&gt;
# Einen Veranstaltungsnamen &#039;&#039;&#039;eingeben&#039;&#039;&#039;&lt;br /&gt;
# Die Formularfelder &#039;&#039;&#039;ausfüllen&#039;&#039;&#039;&lt;br /&gt;
# Auf &#039;&#039;Abschicken&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;&lt;br /&gt;
Die Checkliste wird nun im Wiki gespeichert und kann anschließend weiter bearbeitet werden.&lt;br /&gt;
==Alternatives Ziel: E-Mail==&lt;br /&gt;
Anstatt beim Speichern des Formulars eine Wikiseite zu erstellen, können die Formulardaten an ein E-Mail-Konto gesendet werden.&lt;br /&gt;
(&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der E-Mail-Empfänger muss durch einen Serveradministrator auf dem Server konfiguriert werden, damit er in Formularen verfügbar ist.)&lt;br /&gt;
[[Datei:E-mail image.png|alt=E-Mail-Ziel|center|thumb|650x650px|E-Mail-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Email&lt;br /&gt;
*&#039;&#039;&#039;Empfänger:&#039;&#039;&#039; Mögliche Empfänger müssen aus Sicherheitsgründen auf dem Server konfiguriert worden sein. Beispiel:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&#039;Marketing&#039; =&amp;gt; &amp;quot;marketing@example.com&amp;quot;,&lt;br /&gt;
&#039;Administration&#039; =&amp;gt; &#039;WikiSysop&#039;&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Betreff:&#039;&#039;&#039; Vorhandene Formularfelder können hier als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
*&#039;&#039;&#039;Inhalt:&#039;&#039;&#039; Wie beim Betreff können auch hier vorhandene Formularfelder als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
[[mediawikiwiki:Help:Magic_words#Localisation|Lokalisierungsnachrichten]] können in Kombination mit Formularfeldern ebenfalls als Betreff oder E-Mail-Inhalt verwendet werden:&lt;br /&gt;
==Alternatives Ziel: Vorlage==&lt;br /&gt;
Anstatt eine Standard-Wikiseite zu erstellen oder die Formulardaten per E-Mail zu versenden, kann eine [[Handbuch:Vorlagen|Vorlage]] als Ziel für ein Formular verwendet werden. &amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall werden die übermittelten Formulardaten genutzt, um auf Basis einer vorhandenen Vorlagen-Struktur eine neue Wikiseite zu erstellen. Die Formularwerte werden dabei in die Platzhalter der Vorlage eingefügt.&lt;br /&gt;
*&#039;&#039;&#039;Voraussetzungen:&#039;&#039;&#039; Bevor ein Vorlagen-Ziel verwendet werden kann, muss bereits eine entsprechende Vorlagen-Seite im Wiki vorhanden sein. Die Vorlage dient als strukturelle Grundlage für die generierte Seite. Formularfelder werden den in der Vorlage definierten Platzhaltern zugeordnet.&lt;br /&gt;
[[Datei:Template Target.jpg|alt=Auswahl von Vorlage als Formularziel|center|thumb|550x550px|Template-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Vorlage&lt;br /&gt;
*&#039;&#039;&#039;Predefined title:&#039;&#039;&#039; Optionaler Standardtitel für die neu erstellte Seite oder zur Vorgabe eines Seitenpfads (z. B. um alle generierten Seiten als Unterseiten einer bestimmten Seite zu erstellen)&lt;br /&gt;
*&#039;&#039;&#039;Zu verwendende Vorlage:&#039;&#039;&#039; Name des vorhandenen Templates, das für die Seitenerstellung verwendet wird&lt;br /&gt;
Es wird empfohlen, für Formular und Template identische oder eindeutig zusammengehörige Bezeichnungen zu verwenden. Dies erleichtert die Wartung und macht Konfigurationsabhängigkeiten leichter nachvollziehbar.&lt;br /&gt;
Diese Zielart wird typischerweise verwendet, um standardisierte und lesbare Wikiseiten zu erzeugen. JSON-basierte Ziele werden dagegen häufiger für die strukturierte Weiterverarbeitung von Daten eingesetzt.&lt;br /&gt;
==Styling anpassen==&lt;br /&gt;
===Common.css===&lt;br /&gt;
Um einzelne Elemente im Formular zu gestalten, kann im Optionsdialog der Reiter &#039;&#039;Styling&#039;&#039; verwendet werden. Dort lässt sich ein CSS-Klassenname eintragen. Das eigentliche Styling wird anschließend auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; definiert (Administratorrechte erforderlich).&lt;br /&gt;
So wird die Abschnittsüberschrift gestaltet:&lt;br /&gt;
#Den Reiter &#039;&#039;Styling&#039;&#039; im Optionsmenü des Feldes &#039;&#039;Event heading&#039;&#039; &#039;&#039;&#039;öffnen&#039;&#039;&#039;&lt;br /&gt;
#Eine neue CSS-Klasse &#039;&#039;&#039;hinzufügen&#039;&#039;&#039; und einen Selektornamen im Feld &#039;&#039;CSS Classes&#039;&#039; eintragen, z. B. &#039;&#039;frm-sectionhd&#039;&#039;&lt;br /&gt;
[[Datei:forms-css-class-en.png|alt=CSS-Klasse hinzufügen|center|thumb|650x650px|CSS-Klasse hinzufügen]]&lt;br /&gt;
#Die folgenden Stildefinitionen auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; &#039;&#039;&#039;einfügen&#039;&#039;&#039;:&lt;br /&gt;
[[Datei:forms-css-class-view-en.png|alt=Abschnittsüberschrift mit individuellem Styling|center|thumb|650x650px|Abschnittsüberschrift mit individuellem Styling]] &amp;lt;br&amp;gt;&lt;br /&gt;
Falls keine Berechtigung zum Anzeigen oder Bearbeiten dieser Seite besteht, können Stilinformationen auch direkt über Inline-Styling für einzelne Formularelemente hinterlegt werden.&lt;br /&gt;
===Inline-Styling===&lt;br /&gt;
Ohne Zugriff auf &#039;&#039;MediaWiki:Common.css&#039;&#039; können Stilinformationen direkt im Formular eingetragen werden. Bei häufig wiederkehrenden Stildefinitionen ist dies jedoch weniger effizient als die Verwendung von CSS-Klassen in &#039;&#039;MediaWiki:Common.css&#039;&#039;. &amp;lt;br&amp;gt;​Im folgenden Beispiel wird das zuvor verwendete Styling der Abschnittsüberschrift direkt als Inline-Styling angewendet. Dazu erneut das Optionsmenü des Formularelements &#039;&#039;ech-event&#039;&#039; öffnen. Anschließend den folgenden Eintrag im Feld &#039;&#039;Styling&#039;&#039; hinterlegen und die Änderung speichern:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
border-bottom: 1px solid #a6a6a7;  background:#f1f3f9; padding:6px;margin:30px 0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:forms-css-inlinestyling-en.png|alt=Inline-Styling eines Formularelements|center|thumb|650x650px|Inline-Styling eines Formularelements]]&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:Checklist-view.png&amp;diff=16556</id>
		<title>Datei:Checklist-view.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:Checklist-view.png&amp;diff=16556"/>
		<updated>2026-06-02T11:39:50Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16555</id>
		<title>Handbuch:Erweiterung/Forms</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16555"/>
		<updated>2026-06-02T11:39:38Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die &#039;&#039;&#039;Forms&#039;&#039;&#039;-Erweiterung ermöglicht es, eine Wikiseite oder einen Benutzerdialog als Formular zu gestalten. Sie wird außerdem in Verbindung mit der Erweiterung [[Handbuch:Erweiterung/Workflows|Workflows]] verwendet, um Eingabeformulare für Workflow-Daten bereitzustellen.&lt;br /&gt;
==Einführung==&lt;br /&gt;
Um beispielsweise eine Checkliste als Formular zu erstellen, sind folgende Schritte erforderlich:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen der Checklisten-Formulardefinition&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen von Checklisteninstanzen direkt über die Formulardefinitionsseite&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel werden die ersten Felder für eine Veranstaltung erstellt, bei der hygienerelevante Informationen im Zusammenhang mit Lebensmitteln dokumentiert werden müssen.&lt;br /&gt;
[[Datei:checklist-event-screenshot.png|alt=Beispiel einer Veranstaltungs-Checkliste|center|thumb|550x550px|Beispiel einer Veranstaltungs-Checkliste]]&lt;br /&gt;
&lt;br /&gt;
==Ein Checklistenformular erstellen==&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Seite &#039;&#039;EventChecklisteHygiene.form&#039;&#039;.&lt;br /&gt;
[[Datei:Extension Forms create form.png|center|thumb|400x400px|alt=Dialog zum Erstellen einer Seite|Neue Formularseite erstellen]]&lt;br /&gt;
Dadurch wird der Formulareditor geöffnet.&lt;br /&gt;
[[Datei:Extension Forms form editor.png|alt=Elemente des Formulareditors|center|thumb|700x700px|Formulareditor]]&lt;br /&gt;
#&#039;&#039;&#039;Hinzufügen&#039;&#039;&#039; eines Formularabschnitts:&lt;br /&gt;
##Das Element &#039;&#039;Section label&#039;&#039; unter &#039;&#039;Form Elements &amp;gt; Other&#039;&#039; &#039;&#039;&#039;auswählen&#039;&#039;&#039; (siehe Markierung 2 im Screenshot) und bei gedrückter linker Maustaste in den interaktiven Formulareditor ziehen.&lt;br /&gt;
##Irgendwo in die Zeile &#039;&#039;Section label&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als Feld-ID in der Datenbank gespeichert und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Den &#039;&#039;Title&#039;&#039; für die Abschnittsüberschrift &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als sichtbare Beschriftung angezeigt.&lt;br /&gt;
[[Datei:Extension Forms add section header.png|alt=Inspektor für das Element Section label|center|thumb|700x700px|Erste Abschnittsüberschrift hinzufügen]]&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Formularfelder für den Abschnitt &#039;&#039;Event&#039;&#039;. Im folgenden Beispiel wird ein Textfeld hinzugefügt.&lt;br /&gt;
##Das Element &#039;&#039;Text&#039;&#039; aus &#039;&#039;Form Elements &amp;gt; Inputs&#039;&#039; unter die Abschnittsüberschrift &#039;&#039;&#039;ziehen&#039;&#039;&#039;.&lt;br /&gt;
##Irgendwo in die Zeile des Textfelds &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser dient als Datenbank-ID für das Feld und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Das &#039;&#039;Label&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;. Dieses wird als sichtbare Feldbeschriftung angezeigt.&lt;br /&gt;
##Weitere Formularelemente &#039;&#039;&#039;hinzufügen&#039;&#039;&#039;.&lt;br /&gt;
#Auf &#039;&#039;Speichern&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;. Das Formular steht nun als &#039;&#039;EventChecklisteHygiene.form&#039;&#039; zur Verfügung.&lt;br /&gt;
[[Datei:Checklist-view.png|alt=Gespeichertes Formular|center|thumb|650x650px|Gespeichertes Formular]]&lt;br /&gt;
==Weitere Formularelemente hinzufügen==&lt;br /&gt;
Nun können weitere Felder hinzugefügt werden:&lt;br /&gt;
[[Datei:Extension/Forms/Form elements and settings|Übersicht aller Formularelemente, die Formularen hinzugefügt werden können.]]&lt;br /&gt;
==Eine Checklisteninstanz erstellen==&lt;br /&gt;
Um eine Checkliste aus dem Formular zu erstellen:&lt;br /&gt;
# Einen Veranstaltungsnamen &#039;&#039;&#039;eingeben&#039;&#039;&#039;&lt;br /&gt;
# Die Formularfelder &#039;&#039;&#039;ausfüllen&#039;&#039;&#039;&lt;br /&gt;
# Auf &#039;&#039;Abschicken&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;&lt;br /&gt;
Die Checkliste wird nun im Wiki gespeichert und kann anschließend weiter bearbeitet werden.&lt;br /&gt;
==Alternatives Ziel: E-Mail==&lt;br /&gt;
Anstatt beim Speichern des Formulars eine Wikiseite zu erstellen, können die Formulardaten an ein E-Mail-Konto gesendet werden.&lt;br /&gt;
(&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der E-Mail-Empfänger muss durch einen Serveradministrator auf dem Server konfiguriert werden, damit er in Formularen verfügbar ist.)&lt;br /&gt;
[[Datei:E-mail image.png|alt=E-Mail-Ziel|center|thumb|650x650px|E-Mail-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Email&lt;br /&gt;
*&#039;&#039;&#039;Empfänger:&#039;&#039;&#039; Mögliche Empfänger müssen aus Sicherheitsgründen auf dem Server konfiguriert worden sein. Beispiel:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&#039;Marketing&#039; =&amp;gt; &amp;quot;marketing@example.com&amp;quot;,&lt;br /&gt;
&#039;Administration&#039; =&amp;gt; &#039;WikiSysop&#039;&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Betreff:&#039;&#039;&#039; Vorhandene Formularfelder können hier als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
*&#039;&#039;&#039;Inhalt:&#039;&#039;&#039; Wie beim Betreff können auch hier vorhandene Formularfelder als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
[[mediawikiwiki:Help:Magic_words#Localisation|Lokalisierungsnachrichten]] können in Kombination mit Formularfeldern ebenfalls als Betreff oder E-Mail-Inhalt verwendet werden:&lt;br /&gt;
==Alternatives Ziel: Vorlage==&lt;br /&gt;
Anstatt eine Standard-Wikiseite zu erstellen oder die Formulardaten per E-Mail zu versenden, kann eine [[Handbuch:Vorlagen|Vorlage]] als Ziel für ein Formular verwendet werden. &amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall werden die übermittelten Formulardaten genutzt, um auf Basis einer vorhandenen Vorlagen-Struktur eine neue Wikiseite zu erstellen. Die Formularwerte werden dabei in die Platzhalter der Vorlage eingefügt.&lt;br /&gt;
*&#039;&#039;&#039;Voraussetzungen:&#039;&#039;&#039; Bevor ein Vorlagen-Ziel verwendet werden kann, muss bereits eine entsprechende Vorlagen-Seite im Wiki vorhanden sein. Die Vorlage dient als strukturelle Grundlage für die generierte Seite. Formularfelder werden den in der Vorlage definierten Platzhaltern zugeordnet.&lt;br /&gt;
[[Datei:Template Target.jpg|alt=Auswahl von Vorlage als Formularziel|center|thumb|550x550px|Template-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Vorlage&lt;br /&gt;
*&#039;&#039;&#039;Predefined title:&#039;&#039;&#039; Optionaler Standardtitel für die neu erstellte Seite oder zur Vorgabe eines Seitenpfads (z. B. um alle generierten Seiten als Unterseiten einer bestimmten Seite zu erstellen)&lt;br /&gt;
*&#039;&#039;&#039;Zu verwendende Vorlage:&#039;&#039;&#039; Name des vorhandenen Templates, das für die Seitenerstellung verwendet wird&lt;br /&gt;
Es wird empfohlen, für Formular und Template identische oder eindeutig zusammengehörige Bezeichnungen zu verwenden. Dies erleichtert die Wartung und macht Konfigurationsabhängigkeiten leichter nachvollziehbar.&lt;br /&gt;
Diese Zielart wird typischerweise verwendet, um standardisierte und lesbare Wikiseiten zu erzeugen. JSON-basierte Ziele werden dagegen häufiger für die strukturierte Weiterverarbeitung von Daten eingesetzt.&lt;br /&gt;
==Styling anpassen==&lt;br /&gt;
===Common.css===&lt;br /&gt;
Um einzelne Elemente im Formular zu gestalten, kann im Optionsdialog der Reiter &#039;&#039;Styling&#039;&#039; verwendet werden. Dort lässt sich ein CSS-Klassenname eintragen. Das eigentliche Styling wird anschließend auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; definiert (Administratorrechte erforderlich).&lt;br /&gt;
So wird die Abschnittsüberschrift gestaltet:&lt;br /&gt;
#Den Reiter &#039;&#039;Styling&#039;&#039; im Optionsmenü des Feldes &#039;&#039;Event heading&#039;&#039; &#039;&#039;&#039;öffnen&#039;&#039;&#039;&lt;br /&gt;
#Eine neue CSS-Klasse &#039;&#039;&#039;hinzufügen&#039;&#039;&#039; und einen Selektornamen im Feld &#039;&#039;CSS Classes&#039;&#039; eintragen, z. B. &#039;&#039;frm-sectionhd&#039;&#039;&lt;br /&gt;
[[Datei:forms-css-class-en.png|alt=CSS-Klasse hinzufügen|center|thumb|650x650px|CSS-Klasse hinzufügen]]&lt;br /&gt;
#Die folgenden Stildefinitionen auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; &#039;&#039;&#039;einfügen&#039;&#039;&#039;:&lt;br /&gt;
[[Datei:forms-css-class-view-en.png|alt=Abschnittsüberschrift mit individuellem Styling|center|thumb|650x650px|Abschnittsüberschrift mit individuellem Styling]] &amp;lt;br&amp;gt;&lt;br /&gt;
Falls keine Berechtigung zum Anzeigen oder Bearbeiten dieser Seite besteht, können Stilinformationen auch direkt über Inline-Styling für einzelne Formularelemente hinterlegt werden.&lt;br /&gt;
===Inline-Styling===&lt;br /&gt;
Ohne Zugriff auf &#039;&#039;MediaWiki:Common.css&#039;&#039; können Stilinformationen direkt im Formular eingetragen werden. Bei häufig wiederkehrenden Stildefinitionen ist dies jedoch weniger effizient als die Verwendung von CSS-Klassen in &#039;&#039;MediaWiki:Common.css&#039;&#039;. &amp;lt;br&amp;gt;​Im folgenden Beispiel wird das zuvor verwendete Styling der Abschnittsüberschrift direkt als Inline-Styling angewendet. Dazu erneut das Optionsmenü des Formularelements &#039;&#039;ech-event&#039;&#039; öffnen. Anschließend den folgenden Eintrag im Feld &#039;&#039;Styling&#039;&#039; hinterlegen und die Änderung speichern:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
border-bottom: 1px solid #a6a6a7;  background:#f1f3f9; padding:6px;margin:30px 0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:forms-css-inlinestyling-en.png|alt=Inline-Styling eines Formularelements|center|thumb|650x650px|Inline-Styling eines Formularelements]]&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:Extension_Forms_add_section_header.png&amp;diff=16554</id>
		<title>Datei:Extension Forms add section header.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:Extension_Forms_add_section_header.png&amp;diff=16554"/>
		<updated>2026-06-02T11:36:43Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:Extension_Forms_form_editor.png&amp;diff=16553</id>
		<title>Datei:Extension Forms form editor.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:Extension_Forms_form_editor.png&amp;diff=16553"/>
		<updated>2026-06-02T11:33:55Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:Extension_Forms_create_form.png&amp;diff=16552</id>
		<title>Datei:Extension Forms create form.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:Extension_Forms_create_form.png&amp;diff=16552"/>
		<updated>2026-06-02T11:32:04Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:checklist-event-screenshot.png&amp;diff=16551</id>
		<title>Datei:checklist-event-screenshot.png</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:checklist-event-screenshot.png&amp;diff=16551"/>
		<updated>2026-06-02T11:27:17Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16550</id>
		<title>Handbuch:Erweiterung/Forms</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16550"/>
		<updated>2026-06-02T08:55:56Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die &#039;&#039;&#039;Forms&#039;&#039;&#039;-Erweiterung ermöglicht es, eine Wikiseite oder einen Benutzerdialog als Formular zu gestalten. Sie wird außerdem in Verbindung mit der Erweiterung [[Handbuch:Erweiterung/Workflows|Workflows]] verwendet, um Eingabeformulare für Workflow-Daten bereitzustellen.&lt;br /&gt;
==Einführung==&lt;br /&gt;
Um beispielsweise eine Checkliste als Formular zu erstellen, sind folgende Schritte erforderlich:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen der Checklisten-Formulardefinition&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen von Checklisteninstanzen direkt über die Formulardefinitionsseite&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel werden die ersten Felder für eine Veranstaltung erstellt, bei der hygienerelevante Informationen im Zusammenhang mit Lebensmitteln dokumentiert werden müssen.&lt;br /&gt;
[[Datei:checklist-event-screenshot.png|alt=Beispiel einer Veranstaltungs-Checkliste|center|thumb|550x550px|Beispiel einer Veranstaltungs-Checkliste]]&lt;br /&gt;
&lt;br /&gt;
==Ein Checklistenformular erstellen==&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Seite &#039;&#039;EventChecklisteHygiene.form&#039;&#039;.&lt;br /&gt;
[[Datei:Extension Forms create form.png|center|thumb|400x400px|alt=Dialog zum Erstellen einer Seite|Neue Formularseite erstellen]]&lt;br /&gt;
Dadurch wird der Formulareditor geöffnet.&lt;br /&gt;
[[Datei:Extension Forms form editor.png|alt=Elemente des Formulareditors|center|thumb|700x700px|Formulareditor]]&lt;br /&gt;
#&#039;&#039;&#039;Hinzufügen&#039;&#039;&#039; eines Formularabschnitts:&lt;br /&gt;
##Das Element &#039;&#039;Section label&#039;&#039; unter &#039;&#039;Form Elements &amp;gt; Other&#039;&#039; &#039;&#039;&#039;auswählen&#039;&#039;&#039; (siehe Markierung 2 im Screenshot) und bei gedrückter linker Maustaste in den interaktiven Formulareditor ziehen.&lt;br /&gt;
##Irgendwo in die Zeile &#039;&#039;Section label&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als Feld-ID in der Datenbank gespeichert und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Den &#039;&#039;Title&#039;&#039; für die Abschnittsüberschrift &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als sichtbare Beschriftung angezeigt.&lt;br /&gt;
[[Datei:Extension Forms add section header.png|alt=Inspektor für das Element Section label|center|thumb|700x700px|Erste Abschnittsüberschrift hinzufügen]]&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Formularfelder für den Abschnitt &#039;&#039;Event&#039;&#039;. Im folgenden Beispiel wird ein Textfeld hinzugefügt.&lt;br /&gt;
##Das Element &#039;&#039;Text&#039;&#039; aus &#039;&#039;Form Elements &amp;gt; Inputs&#039;&#039; unter die Abschnittsüberschrift &#039;&#039;&#039;ziehen&#039;&#039;&#039;.&lt;br /&gt;
##Irgendwo in die Zeile des Textfelds &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser dient als Datenbank-ID für das Feld und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Das &#039;&#039;Label&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;. Dieses wird als sichtbare Feldbeschriftung angezeigt.&lt;br /&gt;
##Weitere Formularelemente &#039;&#039;&#039;hinzufügen&#039;&#039;&#039;.&lt;br /&gt;
#Auf &#039;&#039;Speichern&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;. Das Formular steht nun als &#039;&#039;EventChecklisteHygiene.form&#039;&#039; zur Verfügung.&lt;br /&gt;
[[Datei:Manual:Checklist-view.png|alt=Gespeichertes Formular|center|thumb|650x650px|Gespeichertes Formular]]&lt;br /&gt;
==Weitere Formularelemente hinzufügen==&lt;br /&gt;
Nun können weitere Felder hinzugefügt werden:&lt;br /&gt;
[[Datei:Extension/Forms/Form elements and settings|Übersicht aller Formularelemente, die Formularen hinzugefügt werden können.]]&lt;br /&gt;
==Eine Checklisteninstanz erstellen==&lt;br /&gt;
Um eine Checkliste aus dem Formular zu erstellen:&lt;br /&gt;
# Einen Veranstaltungsnamen &#039;&#039;&#039;eingeben&#039;&#039;&#039;&lt;br /&gt;
# Die Formularfelder &#039;&#039;&#039;ausfüllen&#039;&#039;&#039;&lt;br /&gt;
# Auf &#039;&#039;Abschicken&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;&lt;br /&gt;
Die Checkliste wird nun im Wiki gespeichert und kann anschließend weiter bearbeitet werden.&lt;br /&gt;
==Alternatives Ziel: E-Mail==&lt;br /&gt;
Anstatt beim Speichern des Formulars eine Wikiseite zu erstellen, können die Formulardaten an ein E-Mail-Konto gesendet werden.&lt;br /&gt;
(&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der E-Mail-Empfänger muss durch einen Serveradministrator auf dem Server konfiguriert werden, damit er in Formularen verfügbar ist.)&lt;br /&gt;
[[Datei:Manual:image.png|alt=E-Mail-Ziel|center|thumb|650x650px|E-Mail-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Email&lt;br /&gt;
*&#039;&#039;&#039;Empfänger:&#039;&#039;&#039; Mögliche Empfänger müssen aus Sicherheitsgründen auf dem Server konfiguriert worden sein. Beispiel:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&#039;Marketing&#039; =&amp;gt; &amp;quot;marketing@example.com&amp;quot;,&lt;br /&gt;
&#039;Administration&#039; =&amp;gt; &#039;WikiSysop&#039;&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Betreff:&#039;&#039;&#039; Vorhandene Formularfelder können hier als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
*&#039;&#039;&#039;Inhalt:&#039;&#039;&#039; Wie beim Betreff können auch hier vorhandene Formularfelder als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
[[mediawikiwiki:Help:Magic_words#Localisation|Lokalisierungsnachrichten]] können in Kombination mit Formularfeldern ebenfalls als Betreff oder E-Mail-Inhalt verwendet werden:&lt;br /&gt;
==Alternatives Ziel: Vorlage==&lt;br /&gt;
Anstatt eine Standard-Wikiseite zu erstellen oder die Formulardaten per E-Mail zu versenden, kann eine [[Handbuch:Vorlagen|Vorlage]] als Ziel für ein Formular verwendet werden. &amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall werden die übermittelten Formulardaten genutzt, um auf Basis einer vorhandenen Vorlagen-Struktur eine neue Wikiseite zu erstellen. Die Formularwerte werden dabei in die Platzhalter der Vorlage eingefügt.&lt;br /&gt;
*&#039;&#039;&#039;Voraussetzungen:&#039;&#039;&#039; Bevor ein Vorlagen-Ziel verwendet werden kann, muss bereits eine entsprechende Vorlagen-Seite im Wiki vorhanden sein. Die Vorlage dient als strukturelle Grundlage für die generierte Seite. Formularfelder werden den in der Vorlage definierten Platzhaltern zugeordnet.&lt;br /&gt;
[[Datei:Manual:Template Target.jpg|alt=Auswahl von Vorlage als Formularziel|center|thumb|550x550px|Template-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Vorlage&lt;br /&gt;
*&#039;&#039;&#039;Predefined title:&#039;&#039;&#039; Optionaler Standardtitel für die neu erstellte Seite oder zur Vorgabe eines Seitenpfads (z. B. um alle generierten Seiten als Unterseiten einer bestimmten Seite zu erstellen)&lt;br /&gt;
*&#039;&#039;&#039;Zu verwendende Vorlage:&#039;&#039;&#039; Name des vorhandenen Templates, das für die Seitenerstellung verwendet wird&lt;br /&gt;
Es wird empfohlen, für Formular und Template identische oder eindeutig zusammengehörige Bezeichnungen zu verwenden. Dies erleichtert die Wartung und macht Konfigurationsabhängigkeiten leichter nachvollziehbar.&lt;br /&gt;
Diese Zielart wird typischerweise verwendet, um standardisierte und lesbare Wikiseiten zu erzeugen. JSON-basierte Ziele werden dagegen häufiger für die strukturierte Weiterverarbeitung von Daten eingesetzt.&lt;br /&gt;
==Styling anpassen==&lt;br /&gt;
===Common.css===&lt;br /&gt;
Um einzelne Elemente im Formular zu gestalten, kann im Optionsdialog der Reiter &#039;&#039;Styling&#039;&#039; verwendet werden. Dort lässt sich ein CSS-Klassenname eintragen. Das eigentliche Styling wird anschließend auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; definiert (Administratorrechte erforderlich).&lt;br /&gt;
So wird die Abschnittsüberschrift gestaltet:&lt;br /&gt;
#Den Reiter &#039;&#039;Styling&#039;&#039; im Optionsmenü des Feldes &#039;&#039;Event heading&#039;&#039; &#039;&#039;&#039;öffnen&#039;&#039;&#039;&lt;br /&gt;
#Eine neue CSS-Klasse &#039;&#039;&#039;hinzufügen&#039;&#039;&#039; und einen Selektornamen im Feld &#039;&#039;CSS Classes&#039;&#039; eintragen, z. B. &#039;&#039;frm-sectionhd&#039;&#039;&lt;br /&gt;
[[Datei:Manual:forms-css-class-en.png|alt=CSS-Klasse hinzufügen|center|thumb|650x650px|CSS-Klasse hinzufügen]]&lt;br /&gt;
#Die folgenden Stildefinitionen auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; &#039;&#039;&#039;einfügen&#039;&#039;&#039;:&lt;br /&gt;
[[Datei:Manual:forms-css-class-view-en.png|alt=Abschnittsüberschrift mit individuellem Styling|center|thumb|650x650px|Abschnittsüberschrift mit individuellem Styling]] &amp;lt;br&amp;gt;&lt;br /&gt;
Falls keine Berechtigung zum Anzeigen oder Bearbeiten dieser Seite besteht, können Stilinformationen auch direkt über Inline-Styling für einzelne Formularelemente hinterlegt werden.&lt;br /&gt;
===Inline-Styling===&lt;br /&gt;
Ohne Zugriff auf &#039;&#039;MediaWiki:Common.css&#039;&#039; können Stilinformationen direkt im Formular eingetragen werden. Bei häufig wiederkehrenden Stildefinitionen ist dies jedoch weniger effizient als die Verwendung von CSS-Klassen in &#039;&#039;MediaWiki:Common.css&#039;&#039;. &amp;lt;br&amp;gt;​Im folgenden Beispiel wird das zuvor verwendete Styling der Abschnittsüberschrift direkt als Inline-Styling angewendet. Dazu erneut das Optionsmenü des Formularelements &#039;&#039;ech-event&#039;&#039; öffnen. Anschließend den folgenden Eintrag im Feld &#039;&#039;Styling&#039;&#039; hinterlegen und die Änderung speichern:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
border-bottom: 1px solid #a6a6a7;  background:#f1f3f9; padding:6px;margin:30px 0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:Manual:forms-css-inlinestyling-en.png|alt=Inline-Styling eines Formularelements|center|thumb|650x650px|Inline-Styling eines Formularelements]]&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16549</id>
		<title>Handbuch:Erweiterung/Forms</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Handbuch:Erweiterung/Forms&amp;diff=16549"/>
		<updated>2026-06-02T08:36:27Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: Die Seite wurde neu angelegt: „The &amp;#039;&amp;#039;&amp;#039;Forms&amp;#039;&amp;#039;&amp;#039;-Erweiterung ermöglicht es, eine Wikiseite oder einen Benutzerdialog als Formular zu gestalten. Sie wird außerdem in Verbindung mit der Erweiterung Workflows verwendet, um Eingabeformulare für Workflow-Daten bereitzustellen. ==Einführung== Um beispielsweise eine Checkliste als Formular zu erstellen, sind folgende Schritte erforderlich: #&amp;#039;&amp;#039;&amp;#039;Erstellen der Checklisten-Formulardefinition&amp;#039;&amp;#039;&amp;#039; #&amp;#039;&amp;#039;&amp;#039;Erstellen v…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Forms&#039;&#039;&#039;-Erweiterung ermöglicht es, eine Wikiseite oder einen Benutzerdialog als Formular zu gestalten. Sie wird außerdem in Verbindung mit der Erweiterung [[Handbuch:Erweiterung/Workflows|Workflows]] verwendet, um Eingabeformulare für Workflow-Daten bereitzustellen.&lt;br /&gt;
==Einführung==&lt;br /&gt;
Um beispielsweise eine Checkliste als Formular zu erstellen, sind folgende Schritte erforderlich:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen der Checklisten-Formulardefinition&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen von Checklisteninstanzen direkt über die Formulardefinitionsseite&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel werden die ersten Felder für eine Veranstaltung erstellt, bei der hygienerelevante Informationen im Zusammenhang mit Lebensmitteln dokumentiert werden müssen.&lt;br /&gt;
[[Datei:checklist-event-screenshot.png|alt=Beispiel einer Veranstaltungs-Checkliste|center|thumb|550x550px|Beispiel einer Veranstaltungs-Checkliste]]&lt;br /&gt;
&lt;br /&gt;
==Ein Checklistenformular erstellen==&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Seite &#039;&#039;EventChecklisteHygiene.form&#039;&#039;.&lt;br /&gt;
[[Datei:Extension Forms create form.png|center|thumb|400x400px|alt=Dialog zum Erstellen einer Seite|Neue Formularseite erstellen]]&lt;br /&gt;
Dadurch wird der Formulareditor geöffnet.&lt;br /&gt;
[[Datei:Extension Forms form editor.png|alt=Elemente des Formulareditors|center|thumb|700x700px|Formulareditor]]&lt;br /&gt;
#&#039;&#039;&#039;Hinzufügen&#039;&#039;&#039; eines Formularabschnitts:&lt;br /&gt;
##Das Element &#039;&#039;Section label&#039;&#039; unter &#039;&#039;Form Elements &amp;gt; Other&#039;&#039; &#039;&#039;&#039;auswählen&#039;&#039;&#039; (siehe Markierung 2 im Screenshot) und bei gedrückter linker Maustaste in den interaktiven Formulareditor ziehen.&lt;br /&gt;
##Irgendwo in die Zeile &#039;&#039;Section label&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als Feld-ID in der Datenbank gespeichert und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Den &#039;&#039;Title&#039;&#039; für die Abschnittsüberschrift &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser wird als sichtbare Beschriftung angezeigt.&lt;br /&gt;
[[Datei:Extension Forms add section header.png|alt=Inspektor für das Element Section label|center|thumb|700x700px|Erste Abschnittsüberschrift hinzufügen]]&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; der Formularfelder für den Abschnitt &#039;&#039;Event&#039;&#039;. Im folgenden Beispiel wird ein Textfeld hinzugefügt.&lt;br /&gt;
##Das Element &#039;&#039;Text&#039;&#039; aus &#039;&#039;Form Elements &amp;gt; Inputs&#039;&#039; unter die Abschnittsüberschrift &#039;&#039;&#039;ziehen&#039;&#039;&#039;.&lt;br /&gt;
##Irgendwo in die Zeile des Textfelds &#039;&#039;&#039;klicken&#039;&#039;&#039;. Der Feldinspektor wird geöffnet.&lt;br /&gt;
##Den &#039;&#039;Name&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;&#039;. Dieser dient als Datenbank-ID für das Feld und sollte daher keine Sonderzeichen enthalten.&lt;br /&gt;
##Das &#039;&#039;Label&#039;&#039; &#039;&#039;&#039;eingeben&#039;&#039;. Dieses wird als sichtbare Feldbeschriftung angezeigt.&lt;br /&gt;
##Weitere Formularelemente &#039;&#039;&#039;hinzufügen&#039;&#039;&#039;.&lt;br /&gt;
#Auf &#039;&#039;Speichern&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;. Das Formular steht nun als &#039;&#039;EventChecklisteHygiene.form&#039;&#039; zur Verfügung.&lt;br /&gt;
[[Datei:Manual:Checklist-view.png|alt=Gespeichertes Formular|center|thumb|650x650px|Gespeichertes Formular]]&lt;br /&gt;
==Weitere Formularelemente hinzufügen==&lt;br /&gt;
Nun können weitere Felder hinzugefügt werden:&lt;br /&gt;
[[Datei:Extension/Forms/Form elements and settings|Übersicht aller Formularelemente, die Formularen hinzugefügt werden können.]]&lt;br /&gt;
==Eine Checklisteninstanz erstellen==&lt;br /&gt;
Um eine Checkliste aus dem Formular zu erstellen:&lt;br /&gt;
# Einen Veranstaltungsnamen &#039;&#039;&#039;eingeben&#039;&#039;&#039;&lt;br /&gt;
# Die Formularfelder &#039;&#039;&#039;ausfüllen&#039;&#039;&#039;&lt;br /&gt;
# Auf &#039;&#039;Abschicken&#039;&#039; &#039;&#039;&#039;klicken&#039;&#039;&#039;&lt;br /&gt;
Die Checkliste wird nun im Wiki gespeichert und kann anschließend weiter bearbeitet werden.&lt;br /&gt;
==Alternatives Ziel: E-Mail==&lt;br /&gt;
Anstatt beim Speichern des Formulars eine Wikiseite zu erstellen, können die Formulardaten an ein E-Mail-Konto gesendet werden.&lt;br /&gt;
(&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der E-Mail-Empfänger muss durch einen Serveradministrator auf dem Server konfiguriert werden, damit er in Formularen verfügbar ist.)&lt;br /&gt;
[[Datei:Manual:image.png|alt=E-Mail-Ziel|center|thumb|650x650px|E-Mail-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Email&lt;br /&gt;
*&#039;&#039;&#039;Empfänger:&#039;&#039;&#039; Mögliche Empfänger müssen aus Sicherheitsgründen auf dem Server konfiguriert worden sein. Beispiel:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&#039;Marketing&#039; =&amp;gt; &amp;quot;marketing@example.com&amp;quot;,&lt;br /&gt;
&#039;Administration&#039; =&amp;gt; &#039;WikiSysop&#039;&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Betreff:&#039;&#039;&#039; Vorhandene Formularfelder können hier als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
*&#039;&#039;&#039;Inhalt:&#039;&#039;&#039; Wie beim Betreff können auch hier vorhandene Formularfelder als Variablen verwendet werden. Der jeweilige Wert wird aus dem Formular übernommen.&lt;br /&gt;
[[mediawikiwiki:Help:Magic_words#Localisation|Lokalisierungsnachrichten]] können in Kombination mit Formularfeldern ebenfalls als Betreff oder E-Mail-Inhalt verwendet werden:&lt;br /&gt;
==Alternatives Ziel: Vorlage==&lt;br /&gt;
Anstatt eine Standard-Wikiseite zu erstellen oder die Formulardaten per E-Mail zu versenden, kann eine [[Handbuch:Vorlagen|Vorlage]] als Ziel für ein Formular verwendet werden. &amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall werden die übermittelten Formulardaten genutzt, um auf Basis einer vorhandenen Vorlagen-Struktur eine neue Wikiseite zu erstellen. Die Formularwerte werden dabei in die Platzhalter der Vorlage eingefügt.&lt;br /&gt;
*&#039;&#039;&#039;Voraussetzungen:&#039;&#039;&#039; Bevor ein Vorlagen-Ziel verwendet werden kann, muss bereits eine entsprechende Vorlagen-Seite im Wiki vorhanden sein. Die Vorlage dient als strukturelle Grundlage für die generierte Seite. Formularfelder werden den in der Vorlage definierten Platzhaltern zugeordnet.&lt;br /&gt;
[[Datei:Manual:Template Target.jpg|alt=Auswahl von Vorlage als Formularziel|center|thumb|550x550px|Template-Ziel]]&lt;br /&gt;
*&#039;&#039;&#039;Zieltyp:&#039;&#039;&#039; Vorlage&lt;br /&gt;
*&#039;&#039;&#039;Predefined title:&#039;&#039;&#039; Optionaler Standardtitel für die neu erstellte Seite oder zur Vorgabe eines Seitenpfads (z. B. um alle generierten Seiten als Unterseiten einer bestimmten Seite zu erstellen)&lt;br /&gt;
*&#039;&#039;&#039;Zu verwendende Vorlage:&#039;&#039;&#039; Name des vorhandenen Templates, das für die Seitenerstellung verwendet wird&lt;br /&gt;
Es wird empfohlen, für Formular und Template identische oder eindeutig zusammengehörige Bezeichnungen zu verwenden. Dies erleichtert die Wartung und macht Konfigurationsabhängigkeiten leichter nachvollziehbar.&lt;br /&gt;
Diese Zielart wird typischerweise verwendet, um standardisierte und lesbare Wikiseiten zu erzeugen. JSON-basierte Ziele werden dagegen häufiger für die strukturierte Weiterverarbeitung von Daten eingesetzt.&lt;br /&gt;
==Styling anpassen==&lt;br /&gt;
===Common.css===&lt;br /&gt;
Um einzelne Elemente im Formular zu gestalten, kann im Optionsdialog der Reiter &#039;&#039;Styling&#039;&#039; verwendet werden. Dort lässt sich ein CSS-Klassenname eintragen. Das eigentliche Styling wird anschließend auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; definiert (Administratorrechte erforderlich).&lt;br /&gt;
So wird die Abschnittsüberschrift gestaltet:&lt;br /&gt;
#Den Reiter &#039;&#039;Styling&#039;&#039; im Optionsmenü des Feldes &#039;&#039;Event heading&#039;&#039; &#039;&#039;&#039;öffnen&#039;&#039;&#039;&lt;br /&gt;
#Eine neue CSS-Klasse &#039;&#039;&#039;hinzufügen&#039;&#039;&#039; und einen Selektornamen im Feld &#039;&#039;CSS Classes&#039;&#039; eintragen, z. B. &#039;&#039;frm-sectionhd&#039;&#039;&lt;br /&gt;
[[Datei:Manual:forms-css-class-en.png|alt=CSS-Klasse hinzufügen|center|thumb|650x650px|CSS-Klasse hinzufügen]]&lt;br /&gt;
#Die folgenden Stildefinitionen auf der Seite &#039;&#039;MediaWiki:Common.css&#039;&#039; &#039;&#039;&#039;einfügen&#039;&#039;&#039;:&lt;br /&gt;
[[Datei:Manual:forms-css-class-view-en.png|alt=Abschnittsüberschrift mit individuellem Styling|center|thumb|650x650px|Abschnittsüberschrift mit individuellem Styling]] &amp;lt;br&amp;gt;&lt;br /&gt;
Falls keine Berechtigung zum Anzeigen oder Bearbeiten dieser Seite besteht, können Stilinformationen auch direkt über Inline-Styling für einzelne Formularelemente hinterlegt werden.&lt;br /&gt;
===Inline-Styling===&lt;br /&gt;
Ohne Zugriff auf &#039;&#039;MediaWiki:Common.css&#039;&#039; können Stilinformationen direkt im Formular eingetragen werden. Bei häufig wiederkehrenden Stildefinitionen ist dies jedoch weniger effizient als die Verwendung von CSS-Klassen in &#039;&#039;MediaWiki:Common.css&#039;&#039;. &amp;lt;br&amp;gt;&lt;br /&gt;
Im folgenden Beispiel wird das zuvor verwendete Styling der Abschnittsüberschrift direkt als Inline-Styling angewendet. Dazu erneut das Optionsmenü des Formularelements &#039;&#039;ech-event&#039;&#039; öffnen. Anschließend den folgenden Eintrag im Feld &#039;&#039;Styling&#039;&#039; hinterlegen und die Änderung speichern:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
border-bottom: 1px solid #a6a6a7;  background:#f1f3f9; padding:6px;margin:30px 0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:Manual:forms-css-inlinestyling-en.png|alt=Inline-Styling eines Formularelements|center|thumb|650x650px|Inline-Styling eines Formularelements]]&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/Startseite_KMU&amp;diff=16496</id>
		<title>Vorlagen Download/Startseite KMU</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/Startseite_KMU&amp;diff=16496"/>
		<updated>2026-04-30T09:18:13Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hinweisbox|boxtype=Wichtig|icon=ja|Note text=Diese Vorlage wurde für BlueSpice &#039;&#039;&#039;4.3+&#039;&#039;&#039; konzipiert, da diese Version die nötigen Startseiten-Grundlagen beinhaltet. In früheren Versionen werden die Seiten nicht richtig dargestellt werden.}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;downloadarea&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;getButton&amp;quot;&amp;gt;[[Medium:HW-Startseite-KMU.zip|Download]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Startseite KMU.png|450x450px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Die Vorlage &#039;&#039;Startseite KMU&#039;&#039; stellt ein Ausgangslayout für eine Portalseite/Hauptseite für ein Wiki von Klein- und Mittelständischen Unternehmen bereit.  Es kann aber auch als Ausgangsvorlage für andere Zwecke verwendet werden. Im Gegensatz zu anderen Seitenvorlagen enthält diese Startseite die Vorlage &amp;quot;Mitarbeiter&amp;quot;, die es ermöglicht die Profilbilder und Profilseiten von Benutzern einzubinden. &lt;br /&gt;
&lt;br /&gt;
==Import der Vorlage==&lt;br /&gt;
{{Vorlagenimport|namezip=HW-Startseite-KMU.zip|namexml=HW-Startseite-KMU.xml}}&lt;br /&gt;
&lt;br /&gt;
== Enthaltene Importdateien ==&lt;br /&gt;
Der xml-Import erstellt folgende Dateien in Ihrem Wiki:&lt;br /&gt;
&lt;br /&gt;
* Hilfe:Startseite KMU&lt;br /&gt;
* Hilfe:Startseite KMU/Banner&lt;br /&gt;
* Hilfe:Startseite KMU/Iconnav&lt;br /&gt;
* Hilfe:Startseite KMU/Kontakt&lt;br /&gt;
* Hilfe:Startseite KMU/Letzte Änderungen&lt;br /&gt;
* Hilfe:Startseite KMU/Neue Mitarbeiter&lt;br /&gt;
* Hilfe:Startseite KMU/Neuigkeiten&lt;br /&gt;
* Hilfe:Startseite KMU/Protokolle&lt;br /&gt;
* Vorlage:Mitarbeiter&lt;br /&gt;
* Vorlage:Mitarbeiter/styles.css&lt;br /&gt;
&lt;br /&gt;
== Verwendung ==&lt;br /&gt;
Die Startseitenvorlage kann nun über die Seite &#039;&#039;Vorlage:Startseite&#039;&#039; ausgewählt werden.  Die Verwendung und Anpassung der Startseite ist auf der [[Handbuch:Startseitenvorlagen|Hilfeseite zu den Startseitenvorlagen]] dokumentiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-Startseite-KMU.zip&amp;diff=16495</id>
		<title>Datei:HW-Startseite-KMU.zip</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-Startseite-KMU.zip&amp;diff=16495"/>
		<updated>2026-04-30T09:17:55Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: Bhuber lud eine neue Version von Datei:HW-Startseite-KMU.zip hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-SektionTranskludiert.zip&amp;diff=16494</id>
		<title>Datei:HW-SektionTranskludiert.zip</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-SektionTranskludiert.zip&amp;diff=16494"/>
		<updated>2026-04-28T14:10:38Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: Bhuber lud eine neue Version von Datei:HW-SektionTranskludiert.zip hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/Protokolle_f%C3%BCr_Teams&amp;diff=16488</id>
		<title>Vorlagen Download/Protokolle für Teams</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/Protokolle_f%C3%BCr_Teams&amp;diff=16488"/>
		<updated>2026-04-28T12:28:38Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;downloadarea&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;getButton&amp;quot;&amp;gt;[[Medium:HW-protokolle-de.zip|Download]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:HW-Protokoll-de.png|450x450px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
Diese Vorlage enthält eine Übersichtsseite zum Erstellen Teams-basierter Protokolle. Eine Standard-Protokoll Seitenvorlage ist ebenfalls enthalten. &lt;br /&gt;
&lt;br /&gt;
Die Vorlage kann mit weiteren Seitenvorlagen für Protokolle erweitert werden.&lt;br /&gt;
==Import der Vorlage==&lt;br /&gt;
Die benötigte Import-Datei befindet sich im Archiv &#039;&#039;HW-protokolle-de.zip&#039;&#039;. Sie enthält die Datei &#039;&#039;HW-protokolle-de.xml&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Führen Sie auf der Seite Spezial:Import in Ihrem Wiki folgende Schritte durch:&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Entpacken&#039;&#039;&#039; Sie die zip-Datei.&lt;br /&gt;
#&#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie &#039;&#039;Browse...&#039;&#039; und wählen Sie die Datei &#039;&#039;HW-protokolle-de.xml&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;Geben&#039;&#039;&#039; Sie ein Interwiki-Präfix &#039;&#039;&#039;an&#039;&#039;&#039;. Da dieses Feld erforderlich ist, geben Sie hier einfach &#039;&#039;hw&#039;&#039; (für hallowelt) ein.&lt;br /&gt;
#Belassen Sie die Vorauswahl &#039;&#039;Zu den Standard-Speicherorten&#039;&#039; importieren.&lt;br /&gt;
#&#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie &#039;&#039;Datei hochladen...&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Die Vorlage ist nun in Ihrem Wiki verfügbar.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Importdateien==&lt;br /&gt;
Der xml-Import erstellt folgende Dateien in Ihrem Wiki:&lt;br /&gt;
&lt;br /&gt;
*Protokolle (im Hauptnamensraum)&lt;br /&gt;
*Vorlage:Protokolle&lt;br /&gt;
*Vorlage:Protokolle/styles.css&lt;br /&gt;
*Vorlage:Protokoll-standard (Seitenvorlage)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Using_the_template&amp;quot;&amp;gt;Verwendung der Vorlage&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Create_a_new_namespace&amp;quot;&amp;gt;Namensraum erstellen&amp;lt;/span&amp;gt;===&lt;br /&gt;
Im Laufe der Zeit werden Sie viele Seiten erstellen, die Besprechungsprotokolle enthalten. Es ist sinnvoll, die Protokolle in einem eigenen Namensraum abzulegen. Wir gehen davon aus, dass Sie zu diesem Zweck den &#039;&#039;&#039;Namensraum &amp;quot;Protokoll&amp;quot;&#039;&#039;&#039; erstellen. Die Vorlage für Protokolle setzt voraus, dass dieser Namensraum vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den Namensraum &amp;quot;Protokoll&amp;quot; in Ihrem Wiki nicht verwenden möchten, können Sie die Namensraum-Zuordnung auf der Seite &lt;br /&gt;
&#039;&#039;Vorlage:Protokolle&#039;&#039; anpassen.&lt;br /&gt;
&lt;br /&gt;
Ändern Sie hierfür im Tag &#039;&#039;inputbox&#039;&#039; das Präfix (prefix) &#039;&#039;Protokoll&#039;&#039;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{#tag:inputbox|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;prefix=Protokoll:&amp;lt;nowiki&amp;gt;{{{1|{{PAGENAME}}}}}&amp;lt;/nowiki&amp;gt;/&lt;br /&gt;
auf einen eigenen Namensraum, hier als &#039;&#039;Ihr_Namensraum&#039;&#039; exemplifiziert:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{#tag:inputbox|&lt;br /&gt;
   ...&lt;br /&gt;
   prefix=Ihr_Namensraum:&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;{{{1|{{PAGENAME}}}}}&amp;lt;/nowiki&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Provide_a_navigation_link&amp;quot;&amp;gt;Navigationslink bereitstellen&amp;lt;/span&amp;gt;===&lt;br /&gt;
Um Besprechungsprotokolle einfach zu finden und zu erstellen, sollten Sie einen direkten [[Handbuch:Erweiterung/BlueSpiceDiscovery/Hauptnavigation_anpassen|Link zur Seite &#039;&#039;Protokolle&#039;&#039; in der Hauptnavigation bereitstellen]]. Standardmäßig befindet sich die Seite Besprechungsprotokoll im Hauptnamensraum. Sie können diese in jeden beliebigen  Namensraum verschieben.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Customizing_your_meeting_minutes&amp;quot;&amp;gt;Anpassung&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Setting_up_your_different_teams&amp;quot;&amp;gt;Einzelne Teams erstellen&amp;lt;/span&amp;gt;===&lt;br /&gt;
Für jedes Teamfeld auf der Hauptseite für Protokolle müssen drei Anpassungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
#Die &#039;&#039;&#039;Boxüberschrift&#039;&#039;&#039; mit dem Team-Namen.&lt;br /&gt;
#&#039;&#039;&#039;Der Teamname&#039;&#039;&#039; zur Erstellung des Seitenpfads. Dies ist das Hauptseitenpräfix, das für jedes Besprechungstermin für dieses Team vor dem Datum verwendet wird. Zum Beispiel &#039;&#039;Marketing/2021-07-01&#039;&#039;.&lt;br /&gt;
#Die &#039;&#039;&#039;Seitenvorlage&#039;&#039;&#039;, die Sie für die Besprechungsprotokolle des Teams verwenden möchten. Standardmäßig gibt es nur die Vorlage Vorlage:Protokolle-standard für Sitzungsprotokolle. Erstellen Sie einfach eine neue Seite im Vorlagen-Namensraum und weisen Sie diese hier als zu ladende (preload) Vorlage auf der Seite Protokolle im Hauptnamensraum zu.&lt;br /&gt;
&lt;br /&gt;
Beispiel eines Teams:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
== Management==&lt;br /&gt;
{{Protokolle|Management|preload=Vorlage:Protokoll Management}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Resultat:[[Datei:HW-protokoll-inputbox.png|alternativtext=Inputbox zum Erstellen eines Team-Protokolls|zentriert|mini|350x350px|Inputbox zum Erstellen eines Team-Protokolls]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/Protokolle_f%C3%BCr_Teams&amp;diff=16487</id>
		<title>Vorlagen Download/Protokolle für Teams</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/Protokolle_f%C3%BCr_Teams&amp;diff=16487"/>
		<updated>2026-04-28T12:24:34Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;downloadarea&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;getButton&amp;quot;&amp;gt;[[Medium:HW-protokolle-de.zip|Download]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:HW-Protokoll-de.png|450x450px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
Diese Vorlage enthält eine Übersichtsseite zum Erstellen Teams-basierter Protokolle. Eine Standard-Protokoll Seitenvorlage ist ebenfalls enthalten. &lt;br /&gt;
&lt;br /&gt;
Die Vorlage kann mit weiteren Seitenvorlagen für Protokolle erweitert werden.&lt;br /&gt;
==Import der Vorlage==&lt;br /&gt;
Die benötigte Import-Datei befindet sich im Archiv &#039;&#039;HW-protokolle-de.zip&#039;&#039;. Sie enthält die Datei &#039;&#039;HW-protokolle-de.xml&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Führen Sie auf der Seite Spezial:Import in Ihrem Wiki folgende Schritte durch:&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Entpacken&#039;&#039;&#039; Sie die zip-Datei.&lt;br /&gt;
#&#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie &#039;&#039;Browse...&#039;&#039; und wählen Sie die Datei &#039;&#039;HW-protokolle-de.xml&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;Geben&#039;&#039;&#039; Sie ein Interwiki-Präfix &#039;&#039;&#039;an&#039;&#039;&#039;. Da dieses Feld erforderlich ist, geben Sie hier einfach &#039;&#039;hw&#039;&#039; (für hallowelt) ein.&lt;br /&gt;
#Belassen Sie die Vorauswahl &#039;&#039;Zu den Standard-Speicherorten&#039;&#039; importieren.&lt;br /&gt;
#&#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie &#039;&#039;Datei hochladen...&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Die Vorlage ist nun in Ihrem Wiki verfügbar.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Importdateien==&lt;br /&gt;
Der xml-Import erstellt folgende Dateien in Ihrem Wiki:&lt;br /&gt;
&lt;br /&gt;
*Protokolle (im Hauptnamensraum)&lt;br /&gt;
*Vorlage:Protokolle&lt;br /&gt;
*Vorlage:Protokolle/styles.css&lt;br /&gt;
*Vorlage:Protokoll-standard (Seitenvorlage)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Using_the_template&amp;quot;&amp;gt;Verwendung der Vorlage&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Create_a_new_namespace&amp;quot;&amp;gt;Namensraum erstellen&amp;lt;/span&amp;gt;===&lt;br /&gt;
Im Laufe der Zeit werden Sie viele Seiten erstellen, die Besprechungsprotokolle enthalten. Es ist sinnvoll, die Protokolle in einem eigenen Namensraum abzulegen. Wir gehen davon aus, dass Sie zu diesem Zweck den Namensraum &amp;quot;Protokoll&amp;quot; erstellen. Die Vorlage für Protokolle setzt voraus, dass dieser Namensraum vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den Namensraum &amp;quot;Protokoll&amp;quot; in Ihrem Wiki nicht verwenden möchten, können Sie die Namensraum-Zuordnung auf der Seite &lt;br /&gt;
&#039;&#039;Vorlage:Protokolle&#039;&#039; anpassen.&lt;br /&gt;
&lt;br /&gt;
Ändern Sie hierfür im Tag &#039;&#039;inputbox&#039;&#039; das Präfix (prefix) &#039;&#039;Protokoll&#039;&#039;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{#tag:inputbox|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;prefix=Protokoll:&amp;lt;nowiki&amp;gt;{{{1|{{PAGENAME}}}}}&amp;lt;/nowiki&amp;gt;/&lt;br /&gt;
auf einen eigenen Namensraum, hier als &#039;&#039;Ihr_Namensraum&#039;&#039; exemplifiziert:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{#tag:inputbox|&lt;br /&gt;
   ...&lt;br /&gt;
   prefix=Ihr_Namensraum:&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;{{{1|{{PAGENAME}}}}}&amp;lt;/nowiki&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Provide_a_navigation_link&amp;quot;&amp;gt;Navigationslink bereitstellen&amp;lt;/span&amp;gt;===&lt;br /&gt;
Um Besprechungsprotokolle einfach zu finden und zu erstellen, sollten Sie einen direkten [[Handbuch:Erweiterung/BlueSpiceDiscovery/Hauptnavigation_anpassen|Link zur Seite &#039;&#039;Protokolle&#039;&#039; in der Hauptnavigation bereitstellen]]. Standardmäßig befindet sich die Seite Besprechungsprotokoll im Hauptnamensraum. Sie können diese in jeden beliebigen  Namensraum verschieben.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Customizing_your_meeting_minutes&amp;quot;&amp;gt;Anpassung&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;Setting_up_your_different_teams&amp;quot;&amp;gt;Einzelne Teams erstellen&amp;lt;/span&amp;gt;===&lt;br /&gt;
Für jedes Teamfeld auf der Hauptseite für Protokolle müssen drei Anpassungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
#Die &#039;&#039;&#039;Boxüberschrift&#039;&#039;&#039; mit dem Team-Namen.&lt;br /&gt;
#&#039;&#039;&#039;Der Teamname&#039;&#039;&#039; zur Erstellung des Seitenpfads. Dies ist das Hauptseitenpräfix, das für jedes Besprechungstermin für dieses Team vor dem Datum verwendet wird. Zum Beispiel &#039;&#039;Marketing/2021-07-01&#039;&#039;.&lt;br /&gt;
#Die &#039;&#039;&#039;Seitenvorlage&#039;&#039;&#039;, die Sie für die Besprechungsprotokolle des Teams verwenden möchten. Standardmäßig gibt es nur die Vorlage Vorlage:Protokolle-standard für Sitzungsprotokolle. Erstellen Sie einfach eine neue Seite im Vorlagen-Namensraum und weisen Sie diese hier als zu ladende (preload) Vorlage auf der Seite Protokolle im Hauptnamensraum zu.&lt;br /&gt;
&lt;br /&gt;
Beispiel eines Teams:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
== Management==&lt;br /&gt;
{{Protokolle|Management|preload=Vorlage:Protokoll Management}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Resultat:[[Datei:HW-protokoll-inputbox.png|alternativtext=Inputbox zum Erstellen eines Team-Protokolls|zentriert|mini|350x350px|Inputbox zum Erstellen eines Team-Protokolls]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-Projekte.zip&amp;diff=16486</id>
		<title>Datei:HW-Projekte.zip</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-Projekte.zip&amp;diff=16486"/>
		<updated>2026-04-28T09:50:32Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: Bhuber lud eine neue Version von Datei:HW-Projekte.zip hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/Projekte&amp;diff=16485</id>
		<title>Vorlagen Download/Projekte</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/Projekte&amp;diff=16485"/>
		<updated>2026-04-28T09:42:02Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;downloadarea&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;getButton&amp;quot;&amp;gt;[[Medium:HW-Projekte.zip|Download]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Vorlagen Download Projekte-Projektstartseite.png|alt=Screenshot einer Projektstartseite|450x450px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;Diese Vorlage erlaubt es, kleine Projekte im Wiki zu dokumentieren.&lt;br /&gt;
==Vorlagenimport==&lt;br /&gt;
{{Vorlagenimport|namezip=HW-Projekte|namexml=HW-Projekte|namespacehint=Projekt}}&lt;br /&gt;
== Im Import enthaltene Seiten==&lt;br /&gt;
Der XML-Import erstellt die folgenden Dateien in Ihrem Wiki: &lt;br /&gt;
&lt;br /&gt;
*Projekt:Hauptseite&lt;br /&gt;
*Projekt:Hilfsmittel&lt;br /&gt;
*Vorlage:Projektinfo&lt;br /&gt;
*Vorlage:Projektinfo/styles.css&lt;br /&gt;
*Vorlage:Projektinfo/Dokument&lt;br /&gt;
*Vorlage:Projektinfo/Dokumente&lt;br /&gt;
*Vorlage:Projektinfo/Letzte Änderungen&lt;br /&gt;
*Vorlage:Projektinfo/Listenformat&lt;br /&gt;
*Vorlage:Projektinfo/Subpagename&lt;br /&gt;
*Vorlage:SV Protokoll&lt;br /&gt;
*Vorlage:TOClimit&lt;br /&gt;
*Vorlage:TOClimit/styles.css&lt;br /&gt;
*Formular:Projektinfo&lt;br /&gt;
*Formular:Projektinfo/Dokument&lt;br /&gt;
*Formular:Projektinfo/Dokumente&lt;br /&gt;
*Attribut:Ist Projekt&lt;br /&gt;
*Attribut:Projekt/Leitung&lt;br /&gt;
*Attribut:Projekt/Status&lt;br /&gt;
*Attribut:Projekt/Team&lt;br /&gt;
==Projekt erstellen==&lt;br /&gt;
So erstellen Sie ein Projekt:&lt;br /&gt;
#&#039;&#039;&#039;Gehen&#039;&#039;&#039; Sie zur Seite &amp;lt;code&amp;gt;Projekt:Hauptseite&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&#039;&#039;&#039;Geben&#039;&#039;&#039; Sie im Eingabefeld für neue Projekte einen Projektnamen ein.&lt;br /&gt;
#&#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf &#039;&#039;Neues Projekt&#039;&#039;.&lt;br /&gt;
[[Datei:Vorlagen Download Projekte neues Projekt.png|alternativtext=Projekthauptseite mit Eingabefeld für ein neues Projekt|zentriert|mini|650x650px|Projekt erstellen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
​Das Formular für die Eingabe der Projektdaten öffnet sich. &lt;br /&gt;
&lt;br /&gt;
Geben Sie die Formulardaten ein. Alle Felder sind optional auszufüllen:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Feld&lt;br /&gt;
!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
!Projektleitung&lt;br /&gt;
|Benutzername&lt;br /&gt;
|-&lt;br /&gt;
!Projektteam&lt;br /&gt;
|Mehrfachauswahl Benutzernamen&lt;br /&gt;
|-&lt;br /&gt;
!Projekt ID&lt;br /&gt;
|Selbst erstellte Kennnummer&lt;br /&gt;
|-&lt;br /&gt;
!Status&lt;br /&gt;
|Auswahl des derzeitigen Projekt-Status&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Projektseite bearbeiten ==&lt;br /&gt;
[[Datei:Vorlagen Download Projekte Projektseite.png|alternativtext=Projektseite mit Standardinhalt nach Seitenerstellung und 4 markierten Bearbeitungsmöglichkeiten |zentriert|mini|850x850px|Projektseite]]&lt;br /&gt;
&#039;&#039;&#039;Die Startseite des Projekts hat vier Bearbeitungsmöglichkeiten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Seitenbearbeitung: hier können Sie Ihre Projektinfo unterhalb der Vorlage im visuellen Bearbeitungsmodus bearbeiten.&lt;br /&gt;
# Projektdaten bearbeiten: Hier können Sie über das Formular die Projektdaten (z.B. den Status) aktualisieren.&lt;br /&gt;
# Neue Unterseiten für unterstützende Projektinformationen (hier &amp;quot;Dokumente&amp;quot; genannt) erstellen.&lt;br /&gt;
# Neue Unterseiten für Protokolle erstellen.&lt;br /&gt;
&lt;br /&gt;
==Neue Unterseiten für &amp;quot;Dokumente&amp;quot; erstellen==&lt;br /&gt;
&#039;&#039;&#039;So erstellen Sie projektbezogene Dokumente als Unterseiten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf Seite erstellen im Kasten &amp;quot;Dokumente&amp;quot;. Es öffent sich ein Formular mit dem vorausgefüllten Pfad &amp;quot;Dokument&amp;quot;.&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie  ohne Änderung auf &#039;&#039;Seite speichern&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Es öffnet sich die neue angelegte Übersichtsseite für Dokumente. Von dort können Sie über das Eingabefeld neue Unterseiten erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Seitenvorlagen für Dokumente ===&lt;br /&gt;
Da Seiten vom generischen Typ &amp;quot;Dokument&amp;quot; unterschiedlichste Informationen beinhalten können, wird keine Seitenvorlage generiert. Wenn Sie jedoch für den Namensraum &amp;quot;Projekt&amp;quot; in der Namensraumverwaltung die Funktion &amp;quot;Seitenvorlagen aktiviert haben&amp;quot;, können sie über die [[Handbuch:Erweiterung/BlueSpicePageTemplates|Seitenvorlagenverwaltung]] eigene Seitenvorlagen zur Auswahl anbieten.&lt;br /&gt;
&lt;br /&gt;
== Protokolle / Gesprächsnotizen erstellen ==&lt;br /&gt;
&#039;&#039;&#039;So erstellen Sie projektbezogene Protokolle / Gesprächsnotizen als Unterseiten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie auf Seite erstellen im Kasten &amp;quot;Protokolle / Gesprächsnotizen&amp;quot;. Es öffent sich ein Formular mit dem vorausgefüllten Pfad &amp;quot;Protokoll&amp;quot;.&lt;br /&gt;
# &#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie  ohne Änderung auf &#039;&#039;Seite speichern&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Es öffnet sich die neue angelegte Übersichtsseite für Protokolle. Von dort können Sie über das Eingabefeld neue Unterseiten erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Seitenvorlage für Protokolle ===&lt;br /&gt;
Standardmäßig wird für Protokolle die Seitenvorlage &amp;quot;Vorlage:SV Protokoll&amp;quot; geladen. Diese können Sie entsprechend auf Ihre Bedürfnisse anpassen.&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
[[Datei:Vorlagen Download Projekte breadcrumb.png|alternativtext=Beispiel einer Breadcrumb-Leiste im Namensraum &amp;quot;Projekt&amp;quot;|zentriert|mini|550x550px|&amp;quot;Breadcrumb&amp;quot;-Leiste]]&lt;br /&gt;
&lt;br /&gt;
​&#039;&#039;&#039;Klicken Sie in der Breadcrumb-Leiste zum Beispiel auf:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* den Namen des Projekts, um zur Einstiegsseite des Projekts zurückzukehren.&lt;br /&gt;
* die farbige Namensraum-Pille, um zur Übersicht aller Projekte zurückzukehren.__NOTOC__&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/PortalFlex&amp;diff=16484</id>
		<title>Vorlagen Download/PortalFlex</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/PortalFlex&amp;diff=16484"/>
		<updated>2026-04-28T09:01:18Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Flexible Portalseite}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;downloadarea&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;getButton&amp;quot;&amp;gt;[[Medium:HW-PortalFlex-de.zip|Download]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:HW-PortalFlex-Combo-de.png|450x450px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Die Vorlage &#039;&#039;Portal flex&#039;&#039; erlaubt es, mehrspaltig formatierte Inhalte auf einer Seite darzustellen. Zusätzlich kann am Beginn der Seite ein Einleitungsabschnitt vorangestellt werden. &lt;br /&gt;
&lt;br /&gt;
Einzelne mit &#039;&#039;Portal flex&#039;&#039;  erstellte Seiten können auch über Transklusion zu einer Portalseite vereint werden (siehe &#039;&#039;&#039;Abbildung&#039;&#039;&#039; rechts). &lt;br /&gt;
&lt;br /&gt;
Das so entstandene Layout ist responsiv und wird entsprechend für mobile Geräten optimiert angezeigt. &lt;br /&gt;
==Import der Vorlage==&lt;br /&gt;
Die benötigte Import-Datei befindet sich im Archiv &#039;&#039;HW-PortalFlex-de.zip&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Führen Sie auf der Seite &#039;&#039;Spezial:Import&#039;&#039; in Ihrem Wiki folgende Schritte durch:&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Entpacken&#039;&#039;&#039; Sie die zip-Datei.&lt;br /&gt;
#&#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie &#039;&#039;Browse...&#039;&#039; und wählen Sie die Datei &#039;&#039;HW-PortalFlex-de.xml&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;Geben&#039;&#039;&#039; Sie ein Interwiki-Präfix &#039;&#039;&#039;an&#039;&#039;&#039;. Da dieses Feld erforderlich ist, geben Sie hier einfach &#039;&#039;hw&#039;&#039; (für hallowelt) ein.&lt;br /&gt;
#Belassen Sie die Vorauswahl &#039;&#039;Zu den Standard-Speicherorten&#039;&#039; importieren.&lt;br /&gt;
#&#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie &#039;&#039;Datei hochladen...&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Die Vorlage ist nun in Ihrem Wiki verfügbar und kann über Formular bearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
==Portalseite erstellen==&lt;br /&gt;
Um eine Portalseite zu erstellen, können Sie die enthaltene Seite Vorlage:Portal flex PT in die Seitenvorlagenverwaltung mit aufnehmen, da sie bereits ein Startlayout definiert hat. &lt;br /&gt;
&lt;br /&gt;
Nach dem Speichern können Sie die Seite über Formular weiterbearbeiten. &lt;br /&gt;
==Portalseiten kombinieren==&lt;br /&gt;
Jede Seite, die über Portal flex erstellt wurde, kann nur ein bestimmes Spalten-Layout haben (also z.B. 2-spaltig). Wenn Sie mehrere Layouts mit verschiedener Spaltenanzahl kombinieren wollen, erstellen Sie  mehrere Unterseiten zur eigentlichen Portalseite und transkludieren Sie diese in die Haupt-Portalseite. &lt;br /&gt;
&lt;br /&gt;
Die so entstandene Hauptseite kann praktischerweise auch andere Elemente (zusätzliche Vorlagen oder Seitenabschnitte) enthalten. &lt;br /&gt;
&lt;br /&gt;
{{Hinweisbox|boxtype=Wichtig|Note text=Wenn eine Portalseite eine Kombination aus mehreren mit &#039;&#039;Portal flex&#039;&#039; erstellten Seiten ist, kann das Menü &#039;&#039;Mit Formular bearbeiten&#039;&#039; nicht genutzt werden. Obwohl es für die &#039;&#039;Bearbeiten&#039;&#039;-Schaltfläche angeboten wird, können Sie die Seite nur im normalen &#039;&#039;Bearbeiten&#039;&#039;-Modus bearbeiten. Die transkludierten &#039;&#039;Portal flex&#039;&#039; Seiten müssen wie bei jeder Transklusion über die jeweilige Originalseite bearbeitet werden.}}&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Importdateien==&lt;br /&gt;
Der xml-Import erstellt folgende Dateien im Wiki:&lt;br /&gt;
&lt;br /&gt;
*Vorlage:Portal flex/Start&lt;br /&gt;
*Vorlage:Portal flex/Box&lt;br /&gt;
*Vorlage:Portal flex/End&lt;br /&gt;
*Vorlage:Portal flex/styles.css&lt;br /&gt;
*Vorlage:Portal flex&lt;br /&gt;
*Formular:Portal flex&amp;lt;span /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-PortalFlex-de.zip&amp;diff=16483</id>
		<title>Datei:HW-PortalFlex-de.zip</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-PortalFlex-de.zip&amp;diff=16483"/>
		<updated>2026-04-28T09:00:56Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: Bhuber lud eine neue Version von Datei:HW-PortalFlex-de.zip hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-Collapsible-de.zip&amp;diff=16482</id>
		<title>Datei:HW-Collapsible-de.zip</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-Collapsible-de.zip&amp;diff=16482"/>
		<updated>2026-04-27T14:28:41Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: Bhuber lud eine neue Version von Datei:HW-Collapsible-de.zip hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-Besprechungstyp.zip&amp;diff=16481</id>
		<title>Datei:HW-Besprechungstyp.zip</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Datei:HW-Besprechungstyp.zip&amp;diff=16481"/>
		<updated>2026-04-27T13:21:46Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: Bhuber lud eine neue Version von Datei:HW-Besprechungstyp.zip hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
	<entry>
		<id>https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/Profilbilder&amp;diff=16425</id>
		<title>Vorlagen Download/Profilbilder</title>
		<link rel="alternate" type="text/html" href="https://de.wiki.bluespice.com/w/index.php?title=Vorlagen_Download/Profilbilder&amp;diff=16425"/>
		<updated>2026-04-14T09:39:27Z</updated>

		<summary type="html">&lt;p&gt;Bhuber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=warning|header=Achtung|text=Diese Vorlage wird im Moment überarbeitet!|icon=yes}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;downloadarea&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;getButton&amp;quot;&amp;gt;[[Medium:HW-Profilegallery.zip|Download]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:HW-Profilegallery.png|450x450px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Die Vorlage &#039;&#039;Profilegallery&#039;&#039; erlaubt es, die Profilbilder der Benutzer einer Abteilung auf einer Seite anzuzeigen. Der Abteilungsname muss dabei auf der Profileseite der Benutzer eingetragen sein. Wenn kein Profilbild existiert, wird der Avatar des Benutzers angezeigt. &lt;br /&gt;
==Import der Vorlage==&lt;br /&gt;
Die benötigte Import-Datei befindet sich im Archiv &#039;&#039;HW-Profilegallery.zip&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Führen Sie auf der Seite &#039;&#039;Spezial:Import&#039;&#039; in Ihrem Wiki folgende Schritte durch: &lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Entpacken&#039;&#039;&#039; Sie die zip-Datei.&lt;br /&gt;
#&#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie &#039;&#039;Browse...&#039;&#039; und wählen Sie die Datei &#039;&#039;HW-Profilegallery.xml&#039;&#039;.&lt;br /&gt;
#&#039;&#039;&#039;Geben&#039;&#039;&#039; Sie ein Interwiki-Präfix &#039;&#039;&#039;an&#039;&#039;&#039;. Da dieses Feld erforderlich ist, geben Sie hier einfach &#039;&#039;hw&#039;&#039; (für hallowelt) ein.&lt;br /&gt;
#Belassen Sie die Vorauswahl &#039;&#039;Zu den Standard-Speicherorten&#039;&#039; importieren.&lt;br /&gt;
#&#039;&#039;&#039;Klicken&#039;&#039;&#039; Sie &#039;&#039;Datei hochladen...&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
Die Vorlage ist nun in Ihrem Wiki verfügbar und kann über Formular bearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
==Profilbilder anzeigen==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Fügen&#039;&#039;&#039; Sie die Vorlage über den visuellen Editor auf einer Seite &#039;&#039;&#039;ein&#039;&#039;&#039;. &lt;br /&gt;
# &#039;&#039;&#039;Geben&#039;&#039;&#039; Sie den Namen der Abteilung &#039;&#039;&#039;an&#039;&#039;&#039;.[[Datei:Profilbilder Abteilung.png|alternativtext=Eingabemaske Abteilung|zentriert|mini|550x550px|Angabe der Abteilung aus den Profilseiten]][[Datei:Profilbilder Profilseite mit Abteilung.png|alternativtext=Profilkasten aus der Profilseite|zentriert|mini|550x550px|Auf der Profilseite definierte Abteilung]]&lt;br /&gt;
&lt;br /&gt;
Die Profilbilder werden nun angezeigt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Bhuber</name></author>
	</entry>
</feed>