diff --git a/includes/htmlform/HTMLForm.php b/includes/htmlform/HTMLForm.php index c61baad8fe3..9eef68cfd17 100644 --- a/includes/htmlform/HTMLForm.php +++ b/includes/htmlform/HTMLForm.php @@ -1342,10 +1342,12 @@ class HTMLForm extends ContextSource { ->setInterfaceMessageFlag( true ) ->parse(); } - } elseif ( is_array( $elements ) && $elementsType === 'error' ) { - $elementstr = $this->formatErrors( $elements ); } elseif ( $elementsType === 'error' ) { - $elementstr = $elements; + if ( is_array( $elements ) ) { + $elementstr = $this->formatErrors( $elements ); + } elseif ( $elements && $elements !== true ) { + $elementstr = (string)$elements; + } } return $elementstr diff --git a/includes/htmlform/OOUIHTMLForm.php b/includes/htmlform/OOUIHTMLForm.php index e9993eee220..78f14eb3d6a 100644 --- a/includes/htmlform/OOUIHTMLForm.php +++ b/includes/htmlform/OOUIHTMLForm.php @@ -220,21 +220,23 @@ class OOUIHTMLForm extends HTMLForm { if ( !$elements->isGood() ) { $errors = $elements->getErrorsByType( $elementsType ); foreach ( $errors as &$error ) { - // Input: [ 'message' => 'foo', 'errors' => [ 'a', 'b', 'c' ] ] + // Input: [ 'message' => 'foo', 'params' => [ 'a', 'b', 'c' ] ] // Output: [ 'foo', 'a', 'b', 'c' ] - $error = array_merge( [ $error['message'] ], $error['params'] ); + $error = $this->getMessage( + array_merge( [ $error['message'] ], $error['params'] ) )->parse(); } } } elseif ( $elementsType === 'error' ) { if ( is_array( $elements ) ) { - $errors = $elements; - } elseif ( is_string( $elements ) ) { - $errors = [ $elements ]; + foreach ( $elements as $error ) { + $errors[] = $this->getMessage( $error )->parse(); + } + } elseif ( $elements && $elements !== true ) { + $errors[] = (string)$elements; } } foreach ( $errors as &$error ) { - $error = $this->getMessage( $error )->parse(); $error = new OOUI\HtmlSnippet( $error ); }