X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialMovepage.php;h=d30ff4329de63a30f20587fb33f17da0cde24b4c;hb=ccc1c08089b6596bc20f6d88db1909f57fab2498;hp=46d7cf7a87e5d5f962c7d23dd59a1e23260499cb;hpb=a8a5f03b3b6653136c4dc5925d6bb2b806010725;p=lhc%2Fweb%2Fwiklou.git
diff --git a/includes/specials/SpecialMovepage.php b/includes/specials/SpecialMovepage.php
index 46d7cf7a87..d30ff4329d 100644
--- a/includes/specials/SpecialMovepage.php
+++ b/includes/specials/SpecialMovepage.php
@@ -235,18 +235,18 @@ class MovePageForm extends UnlistedSpecialPage {
}
if ( count( $err ) ) {
- $out->addHTML( "
\n" );
$action_desc = $this->msg( 'action-move' )->plain();
- $out->addWikiMsg( 'permissionserrorstext-withaction', count( $err ), $action_desc );
+ $errMsgHtml = $this->msg( 'permissionserrorstext-withaction',
+ count( $err ), $action_desc )->parseAsBlock();
if ( count( $err ) == 1 ) {
$errMsg = $err[0];
$errMsgName = array_shift( $errMsg );
if ( $errMsgName == 'hookaborted' ) {
- $out->addHTML( "
{$errMsg[0]}
\n" );
+ $errMsgHtml .= "
{$errMsg[0]}
\n";
} else {
- $out->addWikiMsgArray( $errMsgName, $errMsg );
+ $errMsgHtml .= $this->msg( $errMsgName, $errMsg )->parseAsBlock();
}
} else {
$errStr = [];
@@ -260,9 +260,9 @@ class MovePageForm extends UnlistedSpecialPage {
}
}
- $out->addHTML( '
- ' . implode( "
\n- ", $errStr ) . "
\n" );
+ $errMsgHtml .= '
- ' . implode( "
\n- ", $errStr ) . "
\n";
}
- $out->addHTML( "
\n" );
+ $out->addHTML( Html::errorBox( $errMsgHtml ) );
}
if ( $this->oldTitle->isProtected( 'move' ) ) {
@@ -287,8 +287,8 @@ class MovePageForm extends UnlistedSpecialPage {
$out->addHTML( "\n" );
}
- // Byte limit (not string length limit) for wpReason and wpNewTitleMain
- // is enforced in the mediawiki.special.movePage module
+ // Length limit for wpReason and wpNewTitleMain is enforced in the
+ // mediawiki.special.movePage module
$immovableNamespaces = [];
foreach ( array_keys( $this->getLanguage()->getNamespaces() ) as $nsId ) {
@@ -326,11 +326,16 @@ class MovePageForm extends UnlistedSpecialPage {
]
);
+ // HTML maxlength uses "UTF-16 code units", which means that characters outside BMP
+ // (e.g. emojis) count for two each. This limit is overridden in JS to instead count
+ // Unicode codepoints (or 255 UTF-8 bytes for old schema).
+ $conf = $this->getConfig();
+ $oldCommentSchema = $conf->get( 'CommentTableSchemaMigrationStage' ) === MIGRATION_OLD;
$fields[] = new OOUI\FieldLayout(
new OOUI\TextInputWidget( [
'name' => 'wpReason',
'id' => 'wpReason',
- 'maxLength' => 200,
+ 'maxLength' => $oldCommentSchema ? 200 : CommentStore::COMMENT_CHARACTER_LIMIT,
'infusable' => true,
'value' => $this->reason,
] ),