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,