$attribs['class'] = $this->mClass;
}
- if ( !empty( $this->mParams['disabled'] ) ) {
- $attribs['disabled'] = 'disabled';
- }
-
# @todo Enforce pattern, step, required, readonly on the server side as
# well
$allowedParams = array(
'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;
case 'int':
$attribs['type'] = 'number';
break;
$attribs['step'] = 'any';
break;
# Pass through
+ case 'email':
case 'password':
case 'file':
+ case 'url':
$attribs['type'] = $this->mParams['type'];
break;
}