HTMLForm

From mediawiki.org
This page is a translated version of the page HTMLForm and the translation is 100% complete.

HTMLForm, kullanıcı arayüzü formlarıyla ilgili her şeyi işlemek için bir sınıftır. MediaWiki 1.16 ve daha yenisi HTMLForm.php içinde HTMLForm içerir.

HTMLForm eğitimi HTMLForm temellerini gösterir.

Parametreler

Kesin şartname:

Parametre Tür Açıklama
type string Oluşturulacak form içeriği türü. Örneğin: text, radio veya multiselect. Bunlar HTMLForm'daki belirli alt sınıflarla eşlenir.

Bu kabaca ‎<select> türü özniteliğe dönüşür. 'class' belirtilmezse, bu sınıf adını almak için HTMLForm::$typeMappings aracılığıyla bir harita olarak kullanılır.

class string Bu form içeriği için kullanılacak PHP alt sınıfı. Bu, type parametresiyle aynı şeyi başarır, ancak daha doğrudan. Bu CSS sınıfı DEĞİLDİR!
size integer Metin alanlarının uzunluğunu ayarlar
maxlength integer Metin alanlarının maksimum uzunluğunu ayarlar
min integer Değer için minimum miktar
max integer Değer için maksimum miktar
invert boolean Geçiş tipi girişlerini varsayılan olarak işaretli olarak ayarla
options array Çoklu seçim, radyo veya seçim form öğesinde sunma seçenekleri Ham metin etiketlerini değerlerle eşler. Bazı alan türleri çok seviyeli dizileri destekler. Overwrites 'options-message'.
rows array Bir checkmatrix form öğesinde sunulacak satırlar veya textarea form öğesi için gösterilen satır sayısı
columns array Bir checkmatrix form öğesinde gösterilecek sütunlar
force-options-off array Bir checkmatrix form öğesinde işaretlenmemiş ve devre dışı bırakılmış ayarlama seçenekleri
force-options-on array Bir checkmatrix form öğesinde işaretli ve etkin ayarlama seçenekleri
section string Bölüm veya alt bölüm başlığı olarak görüntülenecek bir i18n mesajı tuşu. Alt bölümlerde '/' karakteri kullanılmalıdır; foo/bar/baz, 'foo' bölümü içinde 'bar' bölümünde 'baz' tercihi oluşturur
label-message,

buttonlabel-message

string Form girişi/düğmesi için etiket olarak görüntülenecek i18n mesajının tuşu. Mesaj olarak etiket olarak kullanılacak mesaj anahtarı veya nesne. Bir msg tuşu dizisi ve sonra iletiye parametreler olabilir.
label,

label-raw, buttonlabel

string Form girişi/düğmesi etiketi. Hlabel-message ile geçersiz kılındı.
vertical-label boolean Etiketin, seçeneklerin solundan ziyade seçeneklerin üstünde görünmesini istiyorsanız true olarak ayarlayın
id string Girdiye atanacak kimlik özelliği
cssclass string Girdiye atanacak sınıf özniteliği
csshelpclass string Yardım metnine stil vermek için kullanılan CSS sınıfı
validation-callback array Giriş doğrulaması için kullanılacak sınıf ve işlev. HTMLFormField::validate() sayfasına bakın
filter-callback array Giriş filtreleme için kullanılacak sınıf ve işlev. Girilen değere işlenmeden önce masaj yapma şansı verir. HTMLFormField::filter() sayfasına bakın
help-message string Form öğesinin hemen altında görüntülenecek bir i18n iletisinin anahtarı. 'help-messages' ve 'help' üzerine yazılır. Bir msg tuşu dizisi ve sonra iletiye parametreler olabilir.
help string Yardım metni olarak kullanılacak form öğesinin hemen altında görüntülenecek mesaj.
tooltip string i18n mesajlarının başlık ve/veya erişim anahtarı özellikleri için kullanılacak soneki (tooltip-DEĞERİNİZ ve accesskey-DEĞERİNİZ)
placeholder string HTML5 yer tutucu özelliği için kullanılacak değer
placeholder-message string Yer tutucu olarak görüntülenecek i18n mesajının anahtarı
disabled boolean Form girişinin düzenlenmesini ve gönderilmesini devre dışı bırak
readonly boolean Form girişinin düzenlenmesini devre dışı bırak
required boolean Değer true ise, giriş boş bırakılamaz. Gerekli bir alan olduğunu belirten nesneye iletilir.
name string Girişin adını geçersiz kılın (varsayılan değer wp {$fieldname}).

Farklı bir ad istiyorsanız (örneğin, "wp" öneki olmayan bir ad), burada belirtin ve değiştirilmeden kullanılır.

dir string Öğenin yönü.
'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 seçenekler listesini çıkarmak için ayrıştırılacak mesaj anahtarı veya nesne ('ipbreason-dropdown' gibi).
'help-messages' array mesaj anahtarları/nesneleri dizisi. Yukarıdaki gibi, her öğe bir dizi msg anahtarı ve ardından parametreler olabilir. 'help' üzerine yazar.
'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 ] Belirli bir ifade true değilse bir alanı gizlemek için.

'==='

[ '===', 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.


İfadeler, alanın görünürlüğünü sürekli olarak güncelleyecek bir JavaScript ön uç modülüne verilecektir.

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) Alan için varsayılan değer ($wgDefaultUserOptions ile karıştırılmamalıdır) Note extensions/skins adding preferences via hook must make use of UserGetDefaultOptions to set default value.

Örnek kullanımı

SpecialTestForm sınıfı

<?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"
}

Resim biçimlendirmeleri

HTMLForm için varsayılan görüntüleme biçimi, sol sütunda etiketler ve sağ sütunda girdiler bulunan bir table düzenidir. Birkaç farklı biçim seçmek mümkündür, örn. $htmlForm->setDisplayFormat( 'div' ); div tabanlı bir düzen kullanır, diğerleri daha nadir olanları raw ve inline olur.

MediaWiki sürümü:
1.26

Formu, MediaWiki 1.26 ile başlayarak OOUI araç setini kullanmak üzere değiştirmek için HTMLForm::factory içinde görüntüleme biçimi olarak 'ooui' kullanmanız gerekir:

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

Tarihsel notlar

HTMLForm Werdna tarafından tercihlerini yeniden yazma işleminin bir parçası olarak r48740 ile tanıtıldı. Tarihsel olarak 1.4.0 sürümünden 1.11.0 sürümüne MediaWiki'ler, Hashar ve JeLuF tarafından yazılmış farklı bir HTMLForm sınıfı içeriyordu. Bu HTMLForm r29245 içinde kaldırıldı.