X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fpage%2FArticle.php;h=8fff614782b759fc361a5cc6b0b576ce74bab209;hp=343c4c8d6fec3d777e89fbb4c3232f61699bf296;hb=e588debc60d8a581f0b4e4f1d2118d420a3cf873;hpb=16c80e429be5904fb42a93f260f8de3d18f0c692 diff --git a/includes/page/Article.php b/includes/page/Article.php index 343c4c8d6f..8fff614782 100644 --- a/includes/page/Article.php +++ b/includes/page/Article.php @@ -480,12 +480,10 @@ class Article implements Page { # Render printable version, use printable version cache if ( $outputPage->isPrintable() ) { $parserOptions->setIsPrintable( true ); - $parserOptions->setEditSection( false ); $poOptions['enableSectionEditLinks'] = false; } elseif ( $this->disableSectionEditForRender || !$this->isCurrent() || !$this->getTitle()->quickUserCan( 'edit', $user ) ) { - $parserOptions->setEditSection( false ); $poOptions['enableSectionEditLinks'] = false; } @@ -579,7 +577,16 @@ class Article implements Page { # Preload timestamp to avoid a DB hit $outputPage->setRevisionTimestamp( $this->mPage->getTimestamp() ); - if ( !Hooks::run( 'ArticleContentViewCustom', + # Pages containing custom CSS or JavaScript get special treatment + if ( $this->getTitle()->isSiteConfigPage() || $this->getTitle()->isUserConfigPage() ) { + $dir = $this->getContext()->getLanguage()->getDir(); + $lang = $this->getContext()->getLanguage()->getHtmlCode(); + + $outputPage->wrapWikiMsg( + "
\n$1\n
", + 'clearyourcache' + ); + } elseif ( !Hooks::run( 'ArticleContentViewCustom', [ $this->fetchContentObject(), $this->getTitle(), $outputPage ] ) ) { # Allow extensions do their own custom view for certain pages @@ -1058,8 +1065,7 @@ class Article implements Page { 'rc_namespace' => NS_FILE, 'rc_cur_id' => $title->getArticleID() ], - __METHOD__, - [ 'USE INDEX' => 'rc_timestamp' ] + __METHOD__ ); if ( $rc ) { // Use patrol message specific to files @@ -1251,7 +1257,7 @@ class Article implements Page { } $dir = $this->getContext()->getLanguage()->getDir(); - $lang = $this->getContext()->getLanguage()->getCode(); + $lang = $this->getContext()->getLanguage()->getHtmlCode(); $outputPage->addWikiText( Xml::openElement( 'div', [ 'class' => "noarticletext mw-content-$dir", 'dir' => $dir, @@ -1526,7 +1532,6 @@ class Article implements Page { public function render() { $this->getContext()->getRequest()->response()->header( 'X-Robots-Tag: noindex' ); $this->getContext()->getOutput()->setArticleBodyOnly( true ); - $this->getContext()->getOutput()->enableSectionEditLinks( false ); $this->disableSectionEditForRender = true; $this->view(); } @@ -1686,6 +1691,7 @@ class Article implements Page { $outputPage->setPageTitle( wfMessage( 'delete-confirm', $title->getPrefixedText() ) ); $outputPage->addBacklinkSubtitle( $title ); $outputPage->setRobotPolicy( 'noindex,nofollow' ); + $outputPage->addModules( 'mediawiki.action.delete' ); $backlinkCache = $title->getBacklinkCache(); if ( $backlinkCache->hasLinks( 'pagelinks' ) || $backlinkCache->hasLinks( 'templatelinks' ) ) { @@ -1730,12 +1736,17 @@ class Article implements Page { ] ); + // 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->getContext()->getConfig(); + $oldCommentSchema = $conf->get( 'CommentTableSchemaMigrationStage' ) === MIGRATION_OLD; $fields[] = new OOUI\FieldLayout( new OOUI\TextInputWidget( [ 'name' => 'wpReason', 'inputId' => 'wpReason', 'tabIndex' => 2, - 'maxLength' => 255, + 'maxLength' => $oldCommentSchema ? 255 : CommentStore::COMMENT_CHARACTER_LIMIT, 'infusable' => true, 'value' => $reason, 'autofocus' => true,