const DEFAULT_COLS = 80;
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() {
return isset( $this->mParams['cols'] ) ? $this->mParams['cols'] : static::DEFAULT_COLS;
}
if ( $this->mClass !== '' ) {
$attribs['class'] = $this->mClass;
}
+ if ( $this->mPlaceholder !== '' ) {
+ $attribs['placeholder'] = $this->mPlaceholder;
+ }
$allowedParams = [
- 'placeholder',
'tabindex',
'disabled',
'readonly',
if ( $this->mClass !== '' ) {
$attribs['classes'] = [ $this->mClass ];
}
+ if ( $this->mPlaceholder !== '' ) {
+ $attribs['placeholder'] = $this->mPlaceholder;
+ }
$allowedParams = [
- 'placeholder',
'tabindex',
'disabled',
'readonly',
<?php
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() {
return isset( $this->mParams['size'] ) ? $this->mParams['size'] : 45;
}
if ( $this->mClass !== '' ) {
$attribs['class'] = $this->mClass;
}
+ if ( $this->mPlaceholder !== '' ) {
+ $attribs['placeholder'] = $this->mPlaceholder;
+ }
# @todo Enforce pattern, step, required, readonly on the server side as
# well
'pattern',
'title',
'step',
- 'placeholder',
'list',
'maxlength',
'tabindex',
if ( $this->mClass !== '' ) {
$attribs['classes'] = [ $this->mClass ];
}
+ if ( $this->mPlaceholder !== '' ) {
+ $attribs['placeholder'] = $this->mPlaceholder;
+ }
# @todo Enforce pattern, step, required, readonly on the server side as
# well
'flags',
'indicator',
'maxlength',
- 'placeholder',
'readonly',
'required',
'tabindex',