Merge "WebInstallerOutput: Apply wfBCP47() to lang attribute"
[lhc/web/wiklou.git] / includes / htmlform / HTMLTextField.php
index e584d88..88df49d 100644 (file)
@@ -20,6 +20,7 @@ class HTMLTextField extends HTMLFormField {
                # @todo Enforce pattern, step, required, readonly on the server side as
                # well
                $allowedParams = array(
+                       'type',
                        'min',
                        'max',
                        'pattern',
@@ -38,16 +39,20 @@ class HTMLTextField extends HTMLFormField {
 
                $attribs += $this->getAttributes( $allowedParams );
 
+               # Extract 'type'
+               $type = isset( $attribs['type'] ) ? $attribs['type'] : 'text';
+               unset( $attribs['type'] );
+
                # Implement tiny differences between some field variants
                # here, rather than creating a new class for each one which
                # is essentially just a clone of this one.
                if ( isset( $this->mParams['type'] ) ) {
                        switch ( $this->mParams['type'] ) {
                                case 'int':
-                                       $attribs['type'] = 'number';
+                                       $type = 'number';
                                        break;
                                case 'float':
-                                       $attribs['type'] = 'number';
+                                       $type = 'number';
                                        $attribs['step'] = 'any';
                                        break;
                                # Pass through
@@ -55,11 +60,11 @@ class HTMLTextField extends HTMLFormField {
                                case 'password':
                                case 'file':
                                case 'url':
-                                       $attribs['type'] = $this->mParams['type'];
+                                       $type = $this->mParams['type'];
                                        break;
                        }
                }
 
-               return Html::element( 'input', $attribs );
+               return Html::input( $this->mName, $value, $type, $attribs );
        }
 }