X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fhtmlform%2FHTMLFormField.php;h=890299525e6ad42767e32b5a32a2dc6d69d23e74;hb=972a61ad4c81741d878c0e35f6bd8a2e7d62b62d;hp=97e4b505513ae6a9d9b1a6a3efad9ef150ae89c8;hpb=7cd7c534f7c86fff63bbd372dc081816df7d65ca;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/htmlform/HTMLFormField.php b/includes/htmlform/HTMLFormField.php index 97e4b50551..890299525e 100644 --- a/includes/htmlform/HTMLFormField.php +++ b/includes/htmlform/HTMLFormField.php @@ -462,6 +462,16 @@ abstract class HTMLFormField { if ( isset( $params['hide-if'] ) ) { $this->mHideIf = $params['hide-if']; } + + if ( isset( $this->mParams['notice-message'] ) ) { + wfDeprecated( "'notice-message' parameter in HTMLForm", '1.32' ); + } + if ( isset( $this->mParams['notice-messages'] ) ) { + wfDeprecated( "'notice-messages' parameter in HTMLForm", '1.32' ); + } + if ( isset( $this->mParams['notice'] ) ) { + wfDeprecated( "'notice' parameter in HTMLForm", '1.32' ); + } } /** @@ -607,7 +617,7 @@ abstract class HTMLFormField { $error = new OOUI\HtmlSnippet( $error ); } - $notices = $this->getNotices(); + $notices = $this->getNotices( 'skip deprecation' ); foreach ( $notices as &$notice ) { $notice = new OOUI\HtmlSnippet( $notice ); } @@ -619,6 +629,7 @@ abstract class HTMLFormField { 'errors' => $errors, 'notices' => $notices, 'infusable' => $infusable, + 'helpInline' => $this->isHelpInline(), ]; $preloadModules = false; @@ -679,8 +690,8 @@ abstract class HTMLFormField { * @return bool */ protected function shouldInfuseOOUI() { - // Always infuse fields with help text, since the interface for it is nicer with JS - return $this->getHelpText() !== null; + // Always infuse fields with popup help text, since the interface for it is nicer with JS + return $this->getHelpText() !== null && !$this->isHelpInline(); } /** @@ -851,12 +862,29 @@ abstract class HTMLFormField { return $helptext; } + /** + * Determine if the help text should be displayed inline. + * + * Only applies to OOUI forms. + * + * @since 1.31 + * @return bool + */ + public function isHelpInline() { + return $this->mParams['help-inline'] ?? true; + } + /** * Determine form errors to display and their classes * @since 1.20 * + * phan-taint-check gets confused with returning both classes + * and errors and thinks double escaping is happening, so specify + * that return value has no taint. + * * @param string $value The value of the input * @return array array( $errors, $errorClass ) + * @return-taint none */ public function getErrorsAndErrorClass( $value ) { $errors = $this->validate( $value, $this->mParent->mFieldData ); @@ -902,9 +930,16 @@ abstract class HTMLFormField { * Determine notices to display for the field. * * @since 1.28 + * @deprecated since 1.32 + * @param string $skipDeprecation Pass 'skip deprecation' to avoid the deprecation + * warning (since 1.32) * @return string[] */ - public function getNotices() { + public function getNotices( $skipDeprecation = null ) { + if ( $skipDeprecation !== 'skip deprecation' ) { + wfDeprecated( __METHOD__, '1.32' ); + } + $notices = []; if ( isset( $this->mParams['notice-message'] ) ) { @@ -1119,6 +1154,12 @@ abstract class HTMLFormField { * Formats one or more errors as accepted by field validation-callback. * * @param string|Message|array $errors Array of strings or Message instances + * To work around limitations in phan-taint-check the calling + * class has taintedness disabled. So instead we pretend that + * this method outputs html, since the result is eventually + * outputted anyways without escaping and this allows us to verify + * stuff is safe even though the caller has taintedness cleared. + * @param-taint $errors exec_html * @return string HTML * @since 1.18 */