<?php
+
class HTMLTextField extends HTMLFormField {
function getSize() {
- return isset( $this->mParams[ 'size' ] ) ? $this->mParams[ 'size' ] : 45;
+ return isset( $this->mParams['size'] ) ? $this->mParams['size'] : 45;
}
function getInputHTML( $value ) {
) + $this->getTooltipAndAccessKey();
if ( $this->mClass !== '' ) {
- $attribs[ 'class' ] = $this->mClass;
- }
-
- if ( ! empty( $this->mParams[ 'disabled' ] ) ) {
- $attribs[ 'disabled' ] = 'disabled';
+ $attribs['class'] = $this->mClass;
}
- # TODO: Enforce pattern, step, required, readonly on the server side as
+ # @todo Enforce pattern, step, required, readonly on the server side as
# well
$allowedParams = array(
'min',
'step',
'placeholder',
'list',
- 'maxlength'
+ 'maxlength',
+ 'tabindex',
+ 'disabled',
+ 'required',
+ 'autofocus',
+ 'multiple',
+ 'readonly'
);
- foreach ( $allowedParams as $param ) {
- if ( isset( $this->mParams[ $param ] ) ) {
- $attribs[ $param ] = $this->mParams[ $param ];
- }
- }
- foreach ( array( 'required', 'autofocus', 'multiple', 'readonly' ) as $param ) {
- if ( isset( $this->mParams[ $param ] ) ) {
- $attribs[ $param ] = '';
- }
- }
+ $attribs += $this->getAttributes( $allowedParams );
# 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 'email':
- $attribs[ 'type' ] = 'email';
- break;
+ if ( isset( $this->mParams['type'] ) ) {
+ switch ( $this->mParams['type'] ) {
case 'int':
- $attribs[ 'type' ] = 'number';
+ $attribs['type'] = 'number';
break;
case 'float':
- $attribs[ 'type' ] = 'number';
- $attribs[ 'step' ] = 'any';
+ $attribs['type'] = 'number';
+ $attribs['step'] = 'any';
break;
# Pass through
+ case 'email':
case 'password':
case 'file':
- $attribs[ 'type' ] = $this->mParams[ 'type' ];
+ case 'url':
+ $attribs['type'] = $this->mParams['type'];
break;
}
}
return Html::element( 'input', $attribs );
}
-}
\ No newline at end of file
+}