This page is a translated version of the page Meta:FormWizard and the translation is 100% complete.

Form Wizard
Bildschirmfoto des Helferleins
Strukturierte Schritt-für-Schritt-Abläufe zur Erstellung und Erweiterung von Wiki-Seiten.
Status
eingeführt, gewartet
Team
AutorJeph paul
BetreuerN/A
Alle Unterseiten ansehen

FormWizard ist ein Helferlein, das strukturierte Schritt-für-Schritt-Abläufe zur Erstellung und Erweiterung von Wiki-Seiten mit Inhalt anbietet.

Der FormWizard ist übersetzbar und stark konfigurierbar und kann genutzt werden, um neue Seiten zu erstellen oder existierende zu aktualisieren. Gib Informationen in Formularfelder ein, um Vorlagenparameter zu definieren und festzulegen, neue Abschnitte zu erstellen und zu befüllen oder versteckte HTML-Kommentare hinzuzufügen. Du kannst es in Aktion auf Förderung:Ideenwerkstatt/Ideen sehen.

Überblick

Der FormWizard vereinfacht den Prozess der Erstellung neuer Seiten innerhalb eines Portals, das mit einer vorab festgelegten Vorlage übereinstimmt, wie Stipendienvorschläge, Ideen der Ideenwerkstatt und Lernmuster. Durch das Klicken auf eine Schaltfläche auf einer vorhandenen Wiki-Seite wird der Wizard aufgerufen und eine Reihe von Feldern erscheint, in die der Benutzer den Inhalt einfügt, der auf der daraus resultierenden Seite erscheinen wird.

Der FormWizard bietet viele Standardelemente für Webformulare, wie Textfelder mit einer oder mehreren Zeilen, ausklappbaren Menüs, Radiobutton-Listen und Vorschaubildern. Er bietet eine Überprüfung für bestimmte Elementtypen.

Der Ort der daraus resultierenden Seite, die Seitenabschnitte und Infobox-Parameter sowie alle Felder im Formular sind konfigurierbar. Das Formular wird dynamisch aus einer Konfigurationsdatei geladen, z.B. Project:FormWizard/Config/IdeaLab . Der Text der Benutzeriberfläche des FormWizard kann über die Übersetzungserweiterung übersetzt werden und angemeldete Benutzer werden Anweisungen in ihrer in den Benutzerkontoeinstellungen festgelegten Sprache sehen (wenn eine Übersetzung in dieser Sprache existiert).

Dieses Werkzeug wurde im Rahmen des IdeaLab-Sprints April August 2014 entwickelt.

Funktionen

  • Neue Wiki-Seiten erstellen und vorhandene durch Änderung von Infobox-Parametern und Hinzufügen von Abschnitten aktualisieren.
  • Kompatibel mit einsprachigen und mehrsprachigen Wikimedia-Projekten
  • Unterstützt viele Standard-Elemente und -Verhaltensweisen von Webformularen (d.h. ausklappbare Listen, Eingabeüberprüfung)
  • Mehrere, unabhängig konfigurierte Wizards im gleichen Wiki -- und sogar im gleichen Portal erstellen

Nutzungen

Der FormWizard ist derzeit im MetaWiki, in der englischsprachigen Wikipedia, auf Wikidata und im TestWiki aktiviert

Wiki Version Namensraum JavaScript CSS Beschreibung
meta.wikimedia.org Mehrsprachig Grants, Research, User und Unterseiten von Learning patterns MediaWiki:Gadget-formWizard.js
MediaWiki:Gadget-formWizard-core.js
MediaWiki:Gadget-formWizard.css MediaWiki:Gadget-formWizard
test.wikipedia.org Einsprachig Wikipedia, Template testwiki:MediaWiki:Gadget-formWizard.js
testwiki:MediaWiki:Gadget-formWizard-core.js
testwiki:MediaWiki:Gadget-formWizard.css testwiki:MediaWiki:Gadget-formWizard
en.wikipedia.org Einsprachig Wikipedia w:en:MediaWiki:Gadget-formWizard.js
w:en:MediaWiki:Gadget-formWizard-core.js
w:en:MediaWiki:Gadget-formWizard.css w:en:MediaWiki:Gadget-formWizard
no.wikimedia.org Einsprachig main wmno:MediaWiki:Gadget-formWizard.js
wmno:MediaWiki:Gadget-formWizard-core.js
wmno:MediaWiki:Gadget-formWizard.css wmno:MediaWiki:Gadget-formWizard
wikidata.org Mehrsprachig Project, Help, User wikidata:MediaWiki:Gadget-formWizard.js
wikidata:MediaWiki:Gadget-formWizard-core.js
wikidata:MediaWiki:Gadget-formWizard.css wikidata:MediaWiki:Gadget-formWizard

Formen

Wiki Portal Konfiguration
meta.wikimedia.org IdeaLab ideas Meta:FormWizard/Config/IdeaLab
meta.wikimedia.org IdeaLab profiles Meta:FormWizard/Config/IdeaLab profile
meta.wikimedia.org Inspire campaigns Meta:FormWizard/Config/Inspire
meta.wikimedia.org Project Grants program Meta:FormWizard/Config/Project
meta.wikimedia.org Learning Pattern Library Meta:FormWizard/Config/Learning patterns
test.wikipedia.org testwiki:Wikipedia:Co-op testwiki:Wikipedia:Co-op/Config/Co-op/Member
test.wikipedia.org testwiki:Wikipedia:Co-op/Become a mentor testwiki:Wikipedia:Co-op/Config/Co-op/Mentor
no.wikimedia.org wmno:Wikistipend wmno:Wikimedia:FormWizard/Wikistipend
en.wikipedia.org en:Wikipedia:Co-op en:MediaWiki:Gadget-formWizard/Co-op/Learner
en.wikipedia.org en:Wikipedia:WikiProject Women in Red/Members en:MediaWiki:Gadget-formWizard/WikiProject Women in Technology/Join
wikidata.org wikidata:Wikidata:Data Import Hub wikidata:Wikidata:FormWizard/Config/Data import
wikidata:Wikidata:FormWizard/Config/Data import/en

Installation und Einrichtung

Installation des FormWizard

Befolge die folgenden Schritte, um den FormWizard in einem Wikimedia-Wiki zu installieren.

  1. Wähle, ob du die einsprachige oder mehrsprachige (mit der Übersetzungserweiterung kompatible) Version des Codes installieren möchtest
  2. Installiere die JS- und CSS-Dateien im MediaWiki-Namensraum:
    • MediaWiki:Gadget-formWizard.js
    • MediaWiki:Gadget-formWizard.css
  3. Erstelle eine Seite zur Beschreibung des Helferleins auf MediaWiki:Gadget-formWizard:
    A [[w:Wizard (software)|wizard]] for creating and expanding project pages. More information [[Meta:FormWizard|on Meta]].
  4. Gib die Namensräume an, in denen das Helferlein aktiviert wird [unclear]
  5. Setze den Konfigurationspfad, hinter dem die Konfigurationsdateien liegen werden, indem du die folgenden Zeilen in MediaWiki:Gadget-formWizard-core.js einfügst:
    'configPath' : 'Wikipedia:FormWizard/Config/',
    'apiUrl' : 'https://en.wikipedia.org/w/api.php?callback=?',
  6. Schlage die Aktivierung des Helferleins auf MediaWiki_talk:Gadgets-definition vor (oder wo auch immer Helferleins in deinem lokalen Wiki vorgeschlagen werden)
  7. Aktualisiere die Konfigurationsseite MediaWiki:Gadgets-definition des Helferleins mit den folgenden Objekten:
    * formWizard[ResourceLoader] |formWizard.js|relaxed-json.js|formWizard-core.js|formWizard.css

Einen neuen Wizard einrichten

Einen neuen Wizard in einem einsprachigen Wiki (wie der englischsprachigen Wikipedia) einzurichten, umfasst zwei Schritte:

  1. Eine Konfigurationsdatei erstellen
  2. Die entsprechenden Schaltflächen zu den Seiten hinzufügen, die als Ausgangspunkt zur Erstellung neuer Seiten (oder zur Erweiterung) dienen werden

Einsprachig vs. Mehrsprachig

Typ Beschreibung Repositorium
Einsprachig Das Formular wird in der Standardsprache des Wikis angezeigt GitHub
Mehrsprachig Das Formular wird in der Sprache der Benutzeroberfläche des Benutzers angezeigt (wenn die Konfiguration übersetzbar ist und eine Übersetzung existiert) GitHub

Die meisten Wikimedia-Projekte werden die einsprachige Version des FormWizard verwenden wollen.

Die mehrsprachige Version des FormWizard funktioniert mit der Übersetzungserweiterung. Jeder Zeichenkettenwert in der Konfigurationsdatei kann mit Übersetzungsmarkierungen eingefasst werden und die Datei kann zur Übersetzung markiert werden, wodurch es dem Wizard ermöglicht wird, den Anleitungstext in der Sprache der Benutzeroberfläche des Benutzers anzuzeigen (wenn eine Übersetzung existiert).

Siehe ein Beispiel einer übersetzten Konfigurationsdatei. Ein großer Unterschied beim Anrufen einer mehrsprachigen Version ist, dass erwartet wird, dass für den Seitentitel einer englischsprachigen Version der Konfigurationsdatei das Suffix /en genutzt wird (z.B. Meta:FormWizard/Config/IdeaLab/en, nicht Meta:FormWizard/Config/IdeaLab), weshalb du sicherstellen solltest, dass du die Übersetzungsseite entweder manuell erstellst oder die Übersetzungserweiterung nutzt. Wichtig ist, dass die Konfigurationsseite für eine mehrsprachige Version nach der Bearbeitung zur Übersetzung markiert werden muss. Ohne Markierung der Seite zur Übersetzung werden die zugehörigen Seiten nicht aktualisiert und keine Änderungen an der Oberfläche oder der Funktion erfolgen.

Verwendungen

 
JSON-Dateien werden genutzt, um die Inhalte des FormWizard-Dialogfensters zu konfigurieren.

Eine Seite erstellen

Der Hauptzweck von FormWizard ist es, neue Wiki-Seiten in einem einheitlichen Format zu erstellen. Informationen, die Benutzer in die Felder des Formulars (welche du in der Konfigurationsdatei spezifizierst) eingeben, werden auf der erstellten Seite veröffentlicht. Du kannst auch andere Inhalte festlegen, die standardmäßig auf der erstellten Seite ausgegeben werden sollen (der Benutzer muss nichts eingeben), wie Abschnittsüberschriften, <!-- Inline-Kommentare --> und Parameter und Werte für Infoboxen.

Unten findet sich ein Beispiel des 'Konfigurations'-Unterwörterbuchs für den ersten Arbeitsschritt des Ideenwerkstatt-Wizards.

Beispielkonfiguration ansehen
"step-1":{
	"projectNameTextbox": {
		"type": "smallTextBox",
		"placeholder": "What should we call your idea?",
		"title": "Idea title",
		"characterLength":100,
		"mandatory":true,
		"add-to": "infobox",
		"infobox-param":"project",
		"validate": "doesNotExists",
		"page-title":true,
	},
	"projectSummaryTextbox": {
		"type": "largeTextBox",
		"placeholder": "Briefly summarize your idea in one sentence",
		"title": "Summary",
		"characterLength":300,
		"mandatory": true,
		"add-to": "infobox",
		"infobox-param":"summary",
	},
	"projectProblemSolvedTextbox": {
		"type": "largeTextBox",
		"placeholder": "Explain the issue you want to address with this idea",
		"title": "What is the problem you're trying to solve?",
		"characterLength":2000,
		"section": "What is the problem you're trying to solve?",
		"mandatory": false,
		"add-to": "section",
		"parent" : "projectIdeaSection",
		"section-header": "What is the problem you're trying to solve?"
	},
	"projectSolutionTextbox": {
		"type": "largeTextBox",
		"placeholder": "Explain how your idea might address the issue",
		"title": "What is your solution?",
		"characterLength":2000,
		"section": "What is your solution?",
		"mandatory": false,
		"add-to": "section",
		"parent" : "projectIdeaSection",
		"section-header": "What is your solution?",
		"comment": "{{TOC_right}}",
	},
	"nextButton":{
		"type":"nextButton",
		"title":"Next"
	},
	"cancelButton":{
		"type": "cancelButton",
		"title":"Cancel"
	},
},

Eine Seite erweitern

Du kannst den FormWizard auch nutzen, um eine Seite zu erweitern. Die Erweiterungsfunktion erlaubt dir:

  • Neue Infoboxparameter hinzuzufügen
  • Den Wert vorhandener Infobox-Parameter zu ändern
  • Neue Seitenabschnitte unten auf der Seite hinzuzufügen

Um den FormWizard zu nutzen, um eine Seite zu erweitern:

  1. Fülle den Erweiterungsabschnitt der Konfiguration
  2. Platziere eine Schaltfläche auf der Seite (du kannst nur die Seite erweitern, auf der sich die Schaltfläche befindet)

Integration mit anderen Werkzeugen

Der FormWizard kann mit jeder Infobox-Vorlage genutzt werden, solange sich die Vorlage oben auf der Seite befindet. Er wurde jedoch zur Nutzung mit Probox (der Infobox für Stipendien) entwickelt. Er funktioniert auch gut mit dem Helferlein AddMe.

Konfiguration

Einige Hinweise sind in diesem Etherpad verfügbar

Die Konfiguration für jeden Stipendientyp wird in einer eigenen Datei verwaltet, für die Ideenwerkstatt wäre es z.B. formsGadgetConfig/IdeaLab. Grob gesagt hat jede Konfigurationsdatei zwei Arten von Unterwörterbüchern. Eines heißt 'config' und das andere 'step-n'. Dabei ist n der nte Schritt im Formular. Zu jedem gegebenen Zeitpunkt ist nur ein Schritt sichtbar. Der Benutzer kann vor oder zurück navigieren. Auch dies ist konfigurierbar.

Unten findet sich ein Beispiel des 'config'-Unterwörterbuchs

'config':{
	"post-edit": "Thank you for creating your idea! Visit the toolkit page (linked at the bottom of the infobox) for some next steps to turn your idea into action.",
	"infobox": "Probox",
	"page-home": "Grants:IdeaLab/Build",
	"dialog-title": "Let's create your idea!",
	"toolkit-name": "Toolkit",
	"toolkit-template": "subst:Grants:IdeaLab/Build/Idea_toolkit",
},

Du kannst so viele Schritte wie nötig definieren. z. B.

"step-1":{
  					.....
  			},
"step-2":{
                                        .....
},
"step-3":{
                                        .....
}

Die Schritte umfassen darüber hinaus Elemente, die unten zu sehen sind.

"projectNameTextbox": {
	"type": "smallTextBox",
	"placeholder": "What should we call your idea?",
	"title": "Idea title",
	"characterLength":100,
	"mandatory":true,
	"error-messageLength": "Max length reached",
	"error-notFilled": "Mandatory field",
	"add-to": "infobox",
	"infobox-param":"project",
	"validate": "doesNotExists",
	"page-title":true,
},

Form-Elemente

Die im Formular-Helferlein unterstützten Elemente sind unten aufgelistet.

Text-Eingabe

smallTextBox
 
smallTextBox erstellt ein Textfeld mit einer einzigen Zeile
largeTextBox
 
largeTextBox erstellt ein Textfeld mit mehreren Zeilen zur umfangreicheren Texteingabe

Listen und Wahlmöglichkeiten

checkboxList
 
checkboxList setzt benannte Infobox-Parameter auf einen von dir gewählten numerischen Wert
stepperList
 
stepperList erstellt der Reihe nach so viele nummerierte Infobox-Parameter, wie von dir angegeben

Für Elemente mit mehreren Werten, wie ausklappbare Listen oder Ankreuzfelder, werden die Werte wie im Beispiel unten definiert. Die versteckten Werte sind Werte, die dem Benutzer nicht angezeigt werden, die jedoch zur Seite hinzugefügt werden (Infobox).

Code anzeigen
"choiceList": [
{
	"key": "advisor",
	"value": 0
},
{
	"key": "community_organizer",
	"value": 0
},
{
	"key": "project_manager",
	"value": 0
},
{
	"key": "researcher",
	"value": 0
},
{
	"key": "designer",
	"value": 0
},
{
	"key": "developer",
	"value": 0
},
],
	"hidden": [
	{
		"key": "portal",
		"value": "Idealab"
	},
	{
		"key": "translations",
		"value": "Probox/Idealab/Content"
	},
	{
		"key": "more_participants",
		"value": "YES"
	}
	],
dropdownList
 
dropdownList erlaubt es dir, den Wert eines Infobox-Parameters aus einer Liste auszuwählen.
image
 
image wird genutzt, um ein Vorschaubild für eine Infobox auszuwählen.

Statische Elemente

link
 
link erlaubt es dir, einen Hyperlink auf eine von dir ausgewählte Wiki-Seite oder Webseite hinzuzufügen. Der Link wird in einem neuen Fenster geöffnet.
text

Eine Textbeschreibung kann wie im Beispiel unten nach Bedarf hinzugefügt werden.

 "introText": {
"type": "text",
"string": "Don't worry about getting all your answers perfect in this form, you can edit the page later!",
},
cancelButton and nextButton
 
cancel und next bewirken entsprechend das Schließen oder Fortschreiten des Dialogs des FormWizard.
backButton and doneButton
 
Die Schaltflächen back und done machen entsprechend die Aktionen rückgängig oder schließen sie ab.

Form-Konfigurationsparameter

Beispielkonfiguration zur Erstellung
   "create": {
       "config":{
           "post-edit": "Thank you for creating your idea!",
           "new-page": true,
           "namespace": "Grants",
           "portal-page": "IdeaLab",
           "page-template": "",
           "infobox": "Probox",
           "talkpage-template": "",
           "page-home": "Grants:IdeaLab",
           "dialog-title": "Let's create your idea!",
           "error-not-logged-in": "Not logged in.",
          "edit-comment-prefix": "Creating a new idea ",
          "edit-comment-suffix": " (edited with FormWizard)",
       },
      ...
      ...
Beispielkonfiguration zur Erweiterung
   "expand": {
       "config":{
           "post-edit": "Thank you for turning your idea into an Inspire Grant proposal!",
           "new-page": false,
           "namespace": "Grants",
           "portal-page": "IdeaLab",
           "page-template": "",
           "infobox": "Probox",
           "talkpage-template": "",
           "page-home": "Grants:IdeaLab",
           "dialog-title": "Let's turn your idea into a grant proposal",
           "error-not-logged-in": "You are not logged in - please login to your account before continuing.",
           "edit-comment-prefix": "Expanded idea into an Inspire Grant proposal ",
           "edit-comment-suffix": "(edited with FormWizard)",
       },
      ...
      ...
Parameter Beschreibung Werte notwendig erstellen/erweitern
post-edit Die Popup-Nachricht, die nach der Bearbeitung angezeigt wird jede Zeichenkette ?
new-page Ob dieses Formular eine neue Seite erstellt oder nicht Wahrheitswert x
namespace Der Namensraum, in dem sich die Schaltfläche zur Formularerstellung befindet jeder gültige Namensraum x
portal-page Die Seite, die die Hauptseite aller mit dem Wizard erstellten Seiten sein wird jeder gültige Seitenname ?
page-template
infobox Die auf der Seite genutzte Infobox (muss sich im obersten Abschnitt befinden) jede gültige Vorlage
talkpage-template
page-home jeder gültige Seitenname
dialog-title Der Titel der Dialogbox des FormWizard versteckt
error-not-logged-in Die Fehlermeldung, die erscheint, wenn der Benutzer nicht angemeldet ist jede Zeichenkette ?
edit-comment-prefix Erste Hälfte des benutzerdefinierten Bearbeitungskommentars jeder HTML-Kommentar
edit-comment-suffix Zweite Hälfte des benutzerdefinierten Bearbeitungskommentars (nach dem Seitentitel) jeder HTML-Kommentar

Form-Elementparameter

Parameter Beschreibung Werte notwendig Elemente
type Definiert den Typ des Elements. Die möglichen Werte können oben gefunden werden. z. B.: 'type':'largeTextBox' jedes gültige Element x all
placeholder Wie der Name andeutet, handelt es sich um einen Platzhalterwert für Textfelder. z. B. 'placeholder': 'Dies ist ein Platzhalter' jede Zeichenkette text
title Dies ist der Name, der im Formular für das Feld genutzt wird. z. B.: 'title':'Ziel-Abschnitt' jede Zeichenkette x all
characterLength Für Textfelder kann eine maximale Anzahl an Zeichen definiert werden, nach der die eingegebene Zeichenkette automatisch gekürzt wird. z. B.: 'characterLength': '300' numerisch x text
add-to Definiert, wo der Wert des Feldes hinzugefügt wird. Entweder als neuer Abschnitt oder zur Infobox. Er kann die zwei Werte 'section' und 'infobox' annehmen. z. B.: 'add-to': 'section', Infobox, Abschnitt x all
section-header Wenn add-to als Abschnitt definiert ist, wird dieser Schlüsselwert hinzugefügt. Er übermittelt, zu welchem Abschnitt die Zeichenkette hinzugefügt werden soll. z. B.: 'section-header': 'Ziele'. jeder Abschnittstitel text
section Dies sollte mit section-header übereinstimmen jeder Abschnittstitel text
parent Der Titel des übergeordneten Abschnitts, wenn der zu erstellende Abschnitt ein Unterabschnitt eines existierenden Seitenabschnitts wird jeder Abschnittstitel text
infobox-param Wenn add-to als Infobox definiert ist, wird Schlüsselwert für den Infobox-Parameter hinzugefügt. Dies definiert, zu welchem Infobox-Parameter die Zeichenkette hinzugefügt wird. z. B.: 'infobox-param': 'Bild' jeder Infobox-Parameter all
mandatory Definiert, ob ein Feld zwingend ausgefüllt sein muss oder nicht. Es übernimmt einen booleschen Wert. Er ist entweder wahr oder falsch. z. B.: 'mandatory': 'false', true, false all
visibility Du kannst manche Felder mit einem vorab festgelegten Wert verstecken. Dies ist hilfreich, wenn du etwas zur Seite hinzufügen möchtest, aber der Benutzer es nicht unbedingt wissen möchtest. z. B. 'visibility': 'hidden', hidden all
value Standardwerte können zum Feld hinzugefügt werden jede Zeichenkette all
comment Standardkommentare können zu Feldern hinzugefügt werden, z. B. <!--In diesem Abschnitt: Erkläre kurz, was du mit diesem Projekt erreichen möchtest oder was sich deiner Erwartung nach aufgrund dieser Idee ändern wird.--> jeder HTML-Kommentar text
url URL für das Standardbild Bildlink auf Commons image
validate Überprüft, dass eine MediaWiki-Seite mit dem angegebenen Namen auf dieser Webseite existiert (hängt von page-title:true ab) Gültiger Seitentitel image, text
page-title Definiert, ob der Wert eines Feldes der Titel der erstellten Seite ist true, false text
text-n Fügt eine einzige Zeile mit beliebigem Text zu einem Form-Element hinzu jede Zeichenkette all
href Fügt einen Hyperlink hinzu jede URL link
link Angezeigter Text für einen Hyperlink jede Zeichenkette link
string Der Text, der in einem Form-Element nur aus Text angezeigt wird jede Zeichenkette text
choiceList Eine Liste für Schlüssel-/Wert-Paare für stepperLists und checkBoxLists Schlüssel: Zeichenkette; Wert: numerisch (0 oder 1) stepperList, checkboxList
hidden Eine Liste für Schlüssel-/Wert-Paare für stepperLists und checkBoxLists; fügt beliebige Parameter und Werte zur in der Konfiguration angegebenen Infobox hinzu. Schlüssel: Zeichenkette; Wert: Zeichenkette stepperList, checkboxList