Allow HTMLFormField placeholder to be a message
Change-Id: Ib135a8792dcf03fd2246c208ab4c8185caef2ac6
This commit is contained in:
parent
8dc5e1857d
commit
d3cd609e45
2 changed files with 51 additions and 4 deletions
|
|
@ -4,6 +4,24 @@ class HTMLTextAreaField extends HTMLFormField {
|
||||||
const DEFAULT_COLS = 80;
|
const DEFAULT_COLS = 80;
|
||||||
const DEFAULT_ROWS = 25;
|
const DEFAULT_ROWS = 25;
|
||||||
|
|
||||||
|
protected $mPlaceholder = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $params
|
||||||
|
* - cols, rows: textarea size
|
||||||
|
* - placeholder/placeholder-message: set HTML placeholder attribute
|
||||||
|
* - spellcheck: set HTML spellcheck attribute
|
||||||
|
*/
|
||||||
|
public function __construct( $params ) {
|
||||||
|
parent::__construct( $params );
|
||||||
|
|
||||||
|
if ( isset( $params['placeholder-message'] ) ) {
|
||||||
|
$this->mPlaceholder = $this->getMessage( $params['placeholder-message'] )->parse();
|
||||||
|
} elseif ( isset( $params['placeholder'] ) ) {
|
||||||
|
$this->mPlaceholder = $params['placeholder'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getCols() {
|
function getCols() {
|
||||||
return isset( $this->mParams['cols'] ) ? $this->mParams['cols'] : static::DEFAULT_COLS;
|
return isset( $this->mParams['cols'] ) ? $this->mParams['cols'] : static::DEFAULT_COLS;
|
||||||
}
|
}
|
||||||
|
|
@ -32,9 +50,11 @@ class HTMLTextAreaField extends HTMLFormField {
|
||||||
if ( $this->mClass !== '' ) {
|
if ( $this->mClass !== '' ) {
|
||||||
$attribs['class'] = $this->mClass;
|
$attribs['class'] = $this->mClass;
|
||||||
}
|
}
|
||||||
|
if ( $this->mPlaceholder !== '' ) {
|
||||||
|
$attribs['placeholder'] = $this->mPlaceholder;
|
||||||
|
}
|
||||||
|
|
||||||
$allowedParams = [
|
$allowedParams = [
|
||||||
'placeholder',
|
|
||||||
'tabindex',
|
'tabindex',
|
||||||
'disabled',
|
'disabled',
|
||||||
'readonly',
|
'readonly',
|
||||||
|
|
@ -56,9 +76,11 @@ class HTMLTextAreaField extends HTMLFormField {
|
||||||
if ( $this->mClass !== '' ) {
|
if ( $this->mClass !== '' ) {
|
||||||
$attribs['classes'] = [ $this->mClass ];
|
$attribs['classes'] = [ $this->mClass ];
|
||||||
}
|
}
|
||||||
|
if ( $this->mPlaceholder !== '' ) {
|
||||||
|
$attribs['placeholder'] = $this->mPlaceholder;
|
||||||
|
}
|
||||||
|
|
||||||
$allowedParams = [
|
$allowedParams = [
|
||||||
'placeholder',
|
|
||||||
'tabindex',
|
'tabindex',
|
||||||
'disabled',
|
'disabled',
|
||||||
'readonly',
|
'readonly',
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,27 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
class HTMLTextField extends HTMLFormField {
|
class HTMLTextField extends HTMLFormField {
|
||||||
|
protected $mPlaceholder = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $params
|
||||||
|
* - type: HTML textfield type
|
||||||
|
* - size: field size in characters (defaults to 45)
|
||||||
|
* - placeholder/placeholder-message: set HTML placeholder attribute
|
||||||
|
* - spellcheck: set HTML spellcheck attribute
|
||||||
|
* - persistent: upon unsuccessful requests, retain the value (defaults to true, except
|
||||||
|
* for password fields)
|
||||||
|
*/
|
||||||
|
public function __construct( $params ) {
|
||||||
|
parent::__construct( $params );
|
||||||
|
|
||||||
|
if ( isset( $params['placeholder-message'] ) ) {
|
||||||
|
$this->mPlaceholder = $this->getMessage( $params['placeholder-message'] )->parse();
|
||||||
|
} elseif ( isset( $params['placeholder'] ) ) {
|
||||||
|
$this->mPlaceholder = $params['placeholder'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getSize() {
|
function getSize() {
|
||||||
return isset( $this->mParams['size'] ) ? $this->mParams['size'] : 45;
|
return isset( $this->mParams['size'] ) ? $this->mParams['size'] : 45;
|
||||||
}
|
}
|
||||||
|
|
@ -27,6 +48,9 @@ class HTMLTextField extends HTMLFormField {
|
||||||
if ( $this->mClass !== '' ) {
|
if ( $this->mClass !== '' ) {
|
||||||
$attribs['class'] = $this->mClass;
|
$attribs['class'] = $this->mClass;
|
||||||
}
|
}
|
||||||
|
if ( $this->mPlaceholder !== '' ) {
|
||||||
|
$attribs['placeholder'] = $this->mPlaceholder;
|
||||||
|
}
|
||||||
|
|
||||||
# @todo Enforce pattern, step, required, readonly on the server side as
|
# @todo Enforce pattern, step, required, readonly on the server side as
|
||||||
# well
|
# well
|
||||||
|
|
@ -37,7 +61,6 @@ class HTMLTextField extends HTMLFormField {
|
||||||
'pattern',
|
'pattern',
|
||||||
'title',
|
'title',
|
||||||
'step',
|
'step',
|
||||||
'placeholder',
|
|
||||||
'list',
|
'list',
|
||||||
'maxlength',
|
'maxlength',
|
||||||
'tabindex',
|
'tabindex',
|
||||||
|
|
@ -90,6 +113,9 @@ class HTMLTextField extends HTMLFormField {
|
||||||
if ( $this->mClass !== '' ) {
|
if ( $this->mClass !== '' ) {
|
||||||
$attribs['classes'] = [ $this->mClass ];
|
$attribs['classes'] = [ $this->mClass ];
|
||||||
}
|
}
|
||||||
|
if ( $this->mPlaceholder !== '' ) {
|
||||||
|
$attribs['placeholder'] = $this->mPlaceholder;
|
||||||
|
}
|
||||||
|
|
||||||
# @todo Enforce pattern, step, required, readonly on the server side as
|
# @todo Enforce pattern, step, required, readonly on the server side as
|
||||||
# well
|
# well
|
||||||
|
|
@ -100,7 +126,6 @@ class HTMLTextField extends HTMLFormField {
|
||||||
'flags',
|
'flags',
|
||||||
'indicator',
|
'indicator',
|
||||||
'maxlength',
|
'maxlength',
|
||||||
'placeholder',
|
|
||||||
'readonly',
|
'readonly',
|
||||||
'required',
|
'required',
|
||||||
'tabindex',
|
'tabindex',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue