MediaWiki REL1_31
HTMLFormElement.php
Go to the documentation of this file.
1<?php
2
10
11 protected $hideIf = null;
12 protected $modules = null;
13
14 public function initializeHTMLFormElement( array $config = [] ) {
15 // Properties
16 $this->hideIf = isset( $config['hideIf'] ) ? $config['hideIf'] : null;
17 $this->modules = isset( $config['modules'] ) ? $config['modules'] : [];
18
19 // Initialization
20 if ( $this->hideIf ) {
21 $this->addClasses( [ 'mw-htmlform-hide-if' ] );
22 }
23 if ( $this->modules ) {
24 // JS code must be able to read this before infusing (before OOUI is even loaded),
25 // so we put this in a separate attribute (not with the rest of the config).
26 // And it's not needed anymore after infusing, so we don't put it in JS config at all.
27 $this->setAttributes( [ 'data-mw-modules' => implode( ',', $this->modules ) ] );
28 }
29 $this->registerConfigCallback( function ( &$config ) {
30 if ( $this->hideIf !== null ) {
31 $config['hideIf'] = $this->hideIf;
32 }
33 } );
34 }
35}
36
37class HTMLFormFieldLayout extends OOUI\FieldLayout {
39
40 public function __construct( $fieldWidget, array $config = [] ) {
41 parent::__construct( $fieldWidget, $config );
42
43 // Traits
44 $this->initializeHTMLFormElement( $config );
45 }
46
47 protected function getJavaScriptClassName() {
48 return 'mw.htmlform.FieldLayout';
49 }
50}
51
52class HTMLFormActionFieldLayout extends OOUI\ActionFieldLayout {
54
55 public function __construct( $fieldWidget, $buttonWidget = false, array $config = [] ) {
56 parent::__construct( $fieldWidget, $buttonWidget, $config );
57
58 // Traits
59 $this->initializeHTMLFormElement( $config );
60 }
61
62 protected function getJavaScriptClassName() {
63 return 'mw.htmlform.ActionFieldLayout';
64 }
65}
initializeHTMLFormElement(array $config=[])
trait HTMLFormElement
Allows custom data specific to HTMLFormField to be set for OOUI forms.
__construct( $fieldWidget, $buttonWidget=false, array $config=[])
__construct( $fieldWidget, array $config=[])