HTML-Formular

From mediawiki.org
This page is a translated version of the page HTMLForm and the translation is 63% complete.
Outdated translations are marked like this.

HTML-Formular ist eine Klasse (class) fĂŒr die Bearbeitung aller mit Formularen fĂŒr BenutzeroberflĂ€chen zusammenhĂ€ngenden Aufgaben. MediaWiki 1.16 und neuer enthalten HTML-Formular in der Form $html.

Das HTML-Formular-Tutorial erlÀutert die Grundlagen von HTML-Formular.

Parameter

PrĂ€zise Spezifikation findest Du fĂŒr:

Parameter Art Beschreibung
type string Art des zu erstellenden Formularinhalts. Zum Beispiel: text, radio oder multiselect. Diese werden in HTML-Formularen bestimmten Unterklassen zugeordnet.

This roughly translates into the ‎<select> type attribute. If 'class' is not specified, this is used as a map through HTMLForm::$typeMappings to get the class name.

class string Unterklasse, die fĂŒr diesen Formularinhalt verwendet werden soll. Dies bewirkt dasselbe wie der Typparameter, jedoch direkter. This is NOT the CSS class!
size integer Legt die LĂ€nge der Textfelder fest
maxlength integer Legt die maximale LĂ€nge von Textfeldern fest
min integer Der Mindestbetrag fĂŒr den Wert
max integer Der Höchstbetrag fĂŒr den Wert
invert boolean Setze die Option "Eingaben vom Typ umschalten" standardmĂ€ĂŸig auf "aktiviert"
options array Die Optionen, die in einem Multiselect-, Radio- oder Select-Formularelement angezeigt werden sollen Maps raw text labels to values. Some field types support multi-level arrays. Overwrites 'options-message'.
rows array Die Zeilen, die in einem Checkmatrix-Formularelement angezeigt werden sollen, oder die Anzahl der Zeilen, die fĂŒr das Textbereichs-Formularelement angezeigt werden
columns array Die Spalten, die in einem Checkmatrix-Formularelement dargestellt werden sollen
force-options-off array Optionen, die ein checkmatrix-Formularelement als nicht ausgewÀhlt und deaktiviert anzeigen sollen
force-options-on array Optionen, die ein checkmatrix-Formularelement als ausgewÀhlt und aktiviert anzeigen sollen
section string Taste fĂŒr eine i18n-Nachricht, die als Abschnitts- oder UnterabschnittsĂŒberschrift angezeigt wird Subsections should make use of '/' character e.g. foo/bar/baz creates a preference 'baz' inside the section 'bar' which is inside the section 'foo'
label-message,

buttonlabel-message

string Taste fĂŒr eine i18n-Nachricht, die als Bezeichnung fĂŒr eine Formulareingabe / SchaltflĂ€che angezeigt wird Message key or object for a message to use as the label. Can be an array of msg key and then parameters to the message.
label,

label-raw, buttonlabel

string Beschriftung fĂŒr eine Formulareingabe / SchaltflĂ€che Overridden by label-message.
vertical-label boolean Setze diesen Wert auf "true", wenn die Beschriftung ĂŒber den Optionen und nicht links von den Optionen angezeigt werden soll
id string ID-Attribut, das der Eingabe zugewiesen werden soll
cssclass string Klassenattribut, das der Eingabe zugewiesen werden soll
csshelpclass string CSS class used to style help text
validation-callback array Klasse und Funktion zur EingabeĂŒberprĂŒfung See HTMLFormField::validate()
filter-callback array Klasse und Funktion fĂŒr die Eingabefilterung It gives you the chance to massage the inputted value before it's processed. See HTMLFormField::filter()
help-message string Taste fĂŒr eine i18n-Nachricht, die direkt unter dem Formularelement angezeigt wird Overwrites 'help-messages' and 'help'. Can be an array of msg key and then parameters to the message.
help string Taste fĂŒr eine i18n-Nachricht, die direkt unter dem Formularelement angezeigt wird
tooltip string SchlĂŒsselsuffix fĂŒr i18n-Nachrichten zur Verwendung fĂŒr Titel- und / oder ZugriffsschlĂŒsselattribute (tooltip-YOURVALUE und accesskey-YOURVALUE)
placeholder string FĂŒr das HTML5-Platzhalterattribut zu verwendender Wert
placeholder-message string Taste fĂŒr eine i18n-Nachricht, die als Platzhalter angezeigt wird
disabled boolean Deaktiviere die Bearbeitung und Übermittlung der Formulareingabe
readonly boolean Deaktiviere die Bearbeitung der Formulareingabe
required boolean Wenn die Einstellung "true" ist, kann das Eingabefeld nicht leer gelassen werden It is passed through to the object, indicating that it is a required field.
name string Überschreibe den Namen der Eingabe (Standard ist wp {$fieldname})

If you want a different name (eg one without the "wp" prefix), specify it here and it will be used without modification.

dir string Direction of the element.
'options-messages' array associative array mapping message keys to values. Some field types support multi-level arrays.

Overwrites 'options' and 'options-message'.

'options-message' array message key or object to be parsed to extract the list of options (like 'ipbreason-dropdown').
'help-messages' array array of message keys/objects. As above, each item can be an array of msg key and then parameters. Overwrites 'help'.
'help-inline' array Whether help text (defined using options above) will be shown inline after the input field, rather than in a popup.

Defaults to true. Only used by OOUI form fields.

'hide-if' array expression given as an array stating when the field should be hidden. The first array value has to be the expression's logic operator.

Suppo

[ 'NOT', array $expression ] To hide a field if a given expression is not true.

'==='

[ '===', string $fieldName, string $value ]

To hide a field if another field identified by $field has the value $value.

'!==' [ '!==', string $fieldName, string $value ]

Same as [ 'NOT', [ '===', $fieldName, $value ]

'OR', 'AND', 'NOR', 'NAND'

[ 'XXX', array $expression1, ..., array $expressionN ]

To hide a field if one or more (OR), all (AND), neither (NOR) or not all (NAND) given expressions are evaluated as true.


The expressions will be given to a JavaScript frontend module which will continually update the field's visibility.

nodata boolean if set (to any value, which casts to true), the data for this field will not be loaded from the actual request. Instead, always the default data is set as the value of this field.
default string (or array) Standardwerte fĂŒr das Feld (nicht zu verwechseln mit $wgDefaultUserOptions ) Note extensions/skins adding preferences via hook must make use of UserGetDefaultOptions to set default value.

Anwendungsbeispiel

class SpecialTestForm

<?php

class SpecialTestForm extends SpecialPage {
	public function __construct() {
		parent::__construct( 'TestForm' );
	}

	public function execute( $par ) {
		$this->getOutput()->setPageTitle( 'Test form' );

		$formDescriptor = [
			'myfield1' => [
				'section' => 'section1/subsection',
				'label-message' => 'testform-myfield1',
				'type' => 'text',
				'default' => 'Meep',
			],
			'myfield2' => [
				'section' => 'section1',
				'class' => 'HTMLTextField', // HTMLTextField same as type 'text'
				'label-message' => 'testform-myfield2',
			],
			'myfield3' => [
				'class' => 'HTMLTextField',
				'label' => 'Foo bar baz',
			],
			'myfield4' => [
				'class' => 'HTMLCheckField',
				'label' => 'This be a pirate checkbox',
				'default' => true,
			],
			'omgaselectbox' => [
				'class' => 'HTMLSelectField',
				'label' => 'Select an oooption',
				'options' => [
					'Pirates' => 'pirate',
					'Ninjas' => 'ninja',
					'Back to the NINJAR!' => 'ninjars',
				],
			],
			'omgmultiselect' => [
				'class' => 'HTMLMultiSelectField',
				'label' => 'Weapons to use',
				'options' => [
					'Cannons' => 'cannon',
					'Swords' => 'sword',
				],
				'default' => [ 'sword' ],
			],
			'radiolol' => [
				'class' => 'HTMLRadioField',
				'label' => 'Who do you like?',
				'options' => [
					'Pirates' => 'pirates',
					'Ninjas' => 'ninjas',
					'Both' => 'both',
				],
				'default' => 'pirates',
			],
		];

		$htmlForm = new HTMLForm( $formDescriptor, $this->getContext() );
		$htmlForm
			->setSubmitText( 'Foo submit' )
			->setSubmitCallback( [ $this, 'trySubmit' ] )
			->show();
	}

	public function trySubmit( $formData ) {
		if ( $formData[ 'myfield1' ] === 'Fleep' ) {
			return true;
		}

		return 'Fail';
	}
}

$wgSpecialPages['TestForm'] = 'SpecialTestForm';

i18n/en.json

{
	"@metadata": {
		"authors": [
			"MW_Kappa"
		]
	},
	"testform-desc": "some informative text for page Special:Version",
	"section1": "display text for section1",
	"subsection": "display text for subsection"
}

Anzeigeformate

Das Standardanzeigeformat fĂŒr HTML-Formular ist ein table -Layout mit Beschriftungen in der linken Spalte und Eingaben in der rechten Spalte. Es ist möglich, einige andere Formate auszuwĂ€hlen, z. B. $htmlForm->setDisplayFormat( 'div' ); verwendet ein div-basiertes Layout, die anderen, seltener verwendeten, sind raw und inline.

MediaWiki Version:
≄ 1.26

Um das Formular fĂŒr die Verwendung des OOUI Toolkits fĂŒr HTML-Formular-Elemente zu Ă€ndern, musst Du ab MediaWiki 1.26 'ooui' als Anzeigeformat in HTMLForm::factory verwenden:

$htmlForm = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() );

Historische Anmerkungen

HTML Formular wurde von Werdna in r48740 als Teil seiner Überarbeitung der möglichen individuellen Einstellungen eingefĂŒhrt. In der Vergangenheit enthielten MediaWikis von Version 1.4.0 bis Version 1.11.0 eine andere HTML-Formular-Klasse, die von Hashar und JeLuF geschrieben war. Dieses HTML-Formular wurde in r29245 entfernt.