]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - includes/htmlform/fields/HTMLHiddenField.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / includes / htmlform / fields / HTMLHiddenField.php
diff --git a/includes/htmlform/fields/HTMLHiddenField.php b/includes/htmlform/fields/HTMLHiddenField.php
new file mode 100644 (file)
index 0000000..02562c4
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+
+class HTMLHiddenField extends HTMLFormField {
+       protected $outputAsDefault = true;
+
+       public function __construct( $params ) {
+               parent::__construct( $params );
+
+               if ( isset( $this->mParams['output-as-default'] ) ) {
+                       $this->outputAsDefault = (bool)$this->mParams['output-as-default'];
+               }
+
+               # Per HTML5 spec, hidden fields cannot be 'required'
+               # https://www.w3.org/TR/html5/forms.html#hidden-state-%28type=hidden%29
+               unset( $this->mParams['required'] );
+       }
+
+       public function getHiddenFieldData( $value ) {
+               $params = [];
+               if ( $this->mID ) {
+                       $params['id'] = $this->mID;
+               }
+
+               if ( $this->outputAsDefault ) {
+                       $value = $this->mDefault;
+               }
+
+               return [ $this->mName, $value, $params ];
+       }
+
+       public function getTableRow( $value ) {
+               list( $name, $value, $params ) = $this->getHiddenFieldData( $value );
+               $this->mParent->addHiddenField( $name, $value, $params );
+               return '';
+       }
+
+       /**
+        * @param string $value
+        * @return string
+        * @since 1.20
+        */
+       public function getDiv( $value ) {
+               return $this->getTableRow( $value );
+       }
+
+       /**
+        * @param string $value
+        * @return string
+        * @since 1.20
+        */
+       public function getRaw( $value ) {
+               return $this->getTableRow( $value );
+       }
+
+       public function getInputHTML( $value ) {
+               return '';
+       }
+
+       public function canDisplayErrors() {
+               return false;
+       }
+
+       public function hasVisibleOutput() {
+               return false;
+       }
+}