mParams['select'] ) ) { /** * @var JsSelectToInput $select */ $select = $this->mParams['select']; $input = $select->getHtmlAndPrepareJS() . '
' . $input; } return $input; } /** * @param string $value * @return array */ protected function tidy( $value ) { $value = array_map( 'trim', explode( ',', $value ) ); $value = array_unique( array_filter( $value ) ); return $value; } /** * @param string $value * @param array $alldata * @return bool|string */ public function validate( $value, $alldata ) { $p = parent::validate( $value, $alldata ); if ( $p !== true ) { return $p; } if ( !isset( $this->mParams['valid-values'] ) ) { return true; } if ( $value === 'default' ) { return true; } $codes = $this->tidy( $value ); $valid = array_flip( $this->mParams['valid-values'] ); foreach ( $codes as $code ) { if ( !isset( $valid[$code] ) ) { return wfMessage( 'translate-pref-editassistlang-bad', $code )->parseAsBlock(); } } return true; } /** * @param string $value * @param array $alldata * @return string */ public function filter( $value, $alldata ) { $value = parent::filter( $value, $alldata ); return implode( ', ', $this->tidy( $value ) ); } }