Meta:FormWizard
Status | |
---|---|
eingeführt, gewartet | |
Team | |
Autor | Jeph paul |
Betreuer | N/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
Formen
Installation und Einrichtung
Installation des FormWizard
Befolge die folgenden Schritte, um den FormWizard in einem Wikimedia-Wiki zu installieren.
- Wähle, ob du die einsprachige oder mehrsprachige (mit der Übersetzungserweiterung kompatible) Version des Codes installieren möchtest
- Installiere die JS- und CSS-Dateien im MediaWiki-Namensraum:
- MediaWiki:Gadget-formWizard.js
- MediaWiki:Gadget-formWizard.css
- 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]].
- Gib die Namensräume an, in denen das Helferlein aktiviert wird [unclear]
- 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=?',
- Schlage die Aktivierung des Helferleins auf MediaWiki_talk:Gadgets-definition vor (oder wo auch immer Helferleins in deinem lokalen Wiki vorgeschlagen werden)
- 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:
- Eine Konfigurationsdatei erstellen
- 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
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:
- Fülle den Erweiterungsabschnitt der Konfiguration
- 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
- largeTextBox
Listen und Wahlmöglichkeiten
- checkboxList
- stepperList
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
- image
Statische Elemente
- link
- 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!",
},
Navigation
- cancelButton and nextButton
- backButton and doneButton
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 |