Status return type is deprecated.
* User::edits() (deprecated in 1.21) was removed.
* Xml::escapeJsString() (deprecated in 1.21) was removed.
+* Article::getText() and Article::prepareTextForEdit() (deprecated in 1.21)
+ were removed.
+* Article::getAutosummary() and WikiPage::getAutosummary (deprecated in 1.21)
+ were removed.
+* Hooks ArticleViewCustom, EditPageGetDiffText and ShowRawCssJs (deprecated in 1.21)
+ were removed.
== Compatibility ==
&$sectionanchor: The section anchor link (e.g. "#overview" )
&$extraq: Extra query parameters which can be added via hooked functions
-'ArticleViewCustom': DEPRECATED! Use ArticleContentViewCustom instead.
-Allows to output the text of the article in a different format than wikitext.
-Note that it is preferable to implement proper handing for a custom data type
-using the ContentHandler facility.
-$text: text of the page
-$title: title of the page
-$output: reference to $wgOut
-
'ArticleViewFooter': After showing the footer section of an ordinary page view
$article: Article object
$patrolFooterShown: boolean whether patrol footer is shown
$editPage: EditPage object
&$newtext: wikitext that will be used as "your version"
-'EditPageGetDiffText': DEPRECATED! Use EditPageGetDiffContent instead.
-Allow modifying the wikitext that will be used in "Show changes". Note that it
-is preferable to implement diff handling for different data types using the
-ContentHandler facility.
-$editPage: EditPage object
-&$newtext: wikitext that will be used as "your version"
-
'EditPageGetPreviewContent': Allow modifying the wikitext that will be
previewed. Note that it is preferable to implement previews for different data
types using the ContentHandler facility.
'ShowMissingArticle': Called when generating the output for a non-existent page.
$article: The article object corresponding to the page
-'ShowRawCssJs': DEPRECATED! Use the ContentGetParserOutput hook instead.
-Customise the output of raw CSS and JavaScript in page views.
-$text: Text being shown
-$title: Title of the custom script/stylesheet page
-$output: Current OutputPage object
-
'ShowSearchHit': Customize display of search hit.
$searchPage: The SpecialSearch instance.
$result: The SearchResult to show
}
if ( $newContent ) {
- ContentHandler::runLegacyHooks( 'EditPageGetDiffText', [ $this, &$newContent ], '1.21' );
Hooks::run( 'EditPageGetDiffContent', [ $this, &$newContent ] );
$popts = ParserOptions::newFromUserAndLang( $wgUser, $wgContLang );
$out->setRevisionTimestamp( $this->mNewRev->getTimestamp() );
$out->setArticleFlag( true );
- // NOTE: only needed for B/C: custom rendering of JS/CSS via hook
- if ( $this->mNewPage->isCssJsSubpage() || $this->mNewPage->isCssOrJsPage() ) {
- // This needs to be synchronised with Article::showCssOrJsPage(), which sucks
- // Give hooks a chance to customise the output
- // @todo standardize this crap into one function
- if ( ContentHandler::runLegacyHooks( 'ShowRawCssJs', [ $this->mNewContent, $this->mNewPage, $out ], '1.24' ) ) {
- // NOTE: deprecated hook, B/C only
- // use the content object's own rendering
- $cnt = $this->mNewRev->getContent();
- $po = $cnt ? $cnt->getParserOutput( $this->mNewRev->getTitle(), $this->mNewRev->getId() ) : null;
- if ( $po ) {
- $out->addParserOutputContent( $po );
- }
- }
- } elseif ( !Hooks::run( 'ArticleContentViewCustom', [ $this->mNewContent, $this->mNewPage, $out ] ) ) {
- // Handled by extension
- } elseif ( !ContentHandler::runLegacyHooks(
- 'ArticleViewCustom',
- [ $this->mNewContent, $this->mNewPage, $out ],
- '1.21'
- ) ) {
- // NOTE: deprecated hook, B/C only
+ if ( !Hooks::run( 'ArticleContentViewCustom', [ $this->mNewContent, $this->mNewPage, $out ] ) ) {
// Handled by extension
} else {
// Normal page
# Preload timestamp to avoid a DB hit
$outputPage->setRevisionTimestamp( $this->mPage->getTimestamp() );
- # Pages containing custom CSS or JavaScript get special treatment
- if ( $this->getTitle()->isCssOrJsPage() || $this->getTitle()->isCssJsSubpage() ) {
- wfDebug( __METHOD__ . ": showing CSS/JS source\n" );
- $this->showCssOrJsPage();
- $outputDone = true;
- } elseif ( !Hooks::run( 'ArticleContentViewCustom',
+ if ( !Hooks::run( 'ArticleContentViewCustom',
[ $this->fetchContentObject(), $this->getTitle(), $outputPage ] ) ) {
- # Allow extensions do their own custom view for certain pages
- $outputDone = true;
- } elseif ( !ContentHandler::runLegacyHooks(
- 'ArticleViewCustom',
- [ $this->fetchContentObject(), $this->getTitle(), $outputPage ],
- '1.21'
- ) ) {
# Allow extensions do their own custom view for certain pages
$outputDone = true;
}
$this->mPage->doViewUpdates( $user, (int)$new );
}
- /**
- * Show a page view for a page formatted as CSS or JavaScript. To be called by
- * Article::view() only.
- *
- * This exists mostly to serve the deprecated ShowRawCssJs hook (used to customize these views).
- * It has been replaced by the ContentGetParserOutput hook, which lets you do the same but with
- * more flexibility.
- *
- * @param bool $showCacheHint Whether to show a message telling the user
- * to clear the browser cache (default: true).
- */
- protected function showCssOrJsPage( $showCacheHint = true ) {
- $outputPage = $this->getContext()->getOutput();
-
- if ( $showCacheHint ) {
- $dir = $this->getContext()->getLanguage()->getDir();
- $lang = $this->getContext()->getLanguage()->getHtmlCode();
-
- $outputPage->wrapWikiMsg(
- "<div id='mw-clearyourcache' lang='$lang' dir='$dir' class='mw-content-$dir'>\n$1\n</div>",
- 'clearyourcache'
- );
- }
-
- $this->fetchContentObject();
-
- if ( $this->mContentObject ) {
- // Give hooks a chance to customise the output
- if ( ContentHandler::runLegacyHooks(
- 'ShowRawCssJs',
- [ $this->mContentObject, $this->getTitle(), $outputPage ],
- '1.24'
- ) ) {
- // If no legacy hooks ran, display the content of the parser output, including RL modules,
- // but excluding metadata like categories and language links
- $po = $this->mContentObject->getParserOutput( $this->getTitle() );
- $outputPage->addParserOutputContent( $po );
- }
- }
- }
-
/**
* Get the robot policy to be used for the current view
* @param string $action The action= GET parameter
return $this->mPage->getRevision();
}
- /**
- * Call to WikiPage function for backwards compatibility.
- * @see WikiPage::getText
- * @deprecated since 1.21 use WikiPage::getContent() instead
- */
- public function getText( $audience = Revision::FOR_PUBLIC, User $user = null ) {
- wfDeprecated( __METHOD__, '1.21' );
- return $this->mPage->getText( $audience, $user );
- }
-
/**
* Call to WikiPage function for backwards compatibility.
* @see WikiPage::getTimestamp
);
}
- /**
- * Call to WikiPage function for backwards compatibility.
- * @deprecated since 1.21, use prepareContentForEdit
- * @see WikiPage::prepareTextForEdit
- */
- public function prepareTextForEdit( $text, $revid = null, User $user = null ) {
- return $this->mPage->prepareTextForEdit( $text, $revid, $user );
- }
-
/**
* Call to WikiPage function for backwards compatibility.
* @see WikiPage::protectDescription
WikiPage::onArticleEdit( $title );
}
- /**
- * @param string $oldtext
- * @param string $newtext
- * @param int $flags
- * @return string
- * @deprecated since 1.21, use ContentHandler::getAutosummary() instead
- */
- public static function getAutosummary( $oldtext, $newtext, $flags ) {
- return WikiPage::getAutosummary( $oldtext, $newtext, $flags );
- }
// ******
}
return $result;
}
- /**
- * Return an applicable autosummary if one exists for the given edit.
- * @param string|null $oldtext The previous text of the page.
- * @param string|null $newtext The submitted text of the page.
- * @param int $flags Bitmask: a bitmask of flags submitted for the edit.
- * @return string An appropriate autosummary, or an empty string.
- *
- * @deprecated since 1.21, use ContentHandler::getAutosummary() instead
- */
- public static function getAutosummary( $oldtext, $newtext, $flags ) {
- // NOTE: stub for backwards-compatibility. assumes the given text is
- // wikitext. will break horribly if it isn't.
-
- wfDeprecated( __METHOD__, '1.21' );
-
- $handler = ContentHandler::getForModelID( CONTENT_MODEL_WIKITEXT );
- $oldContent = is_null( $oldtext ) ? null : $handler->unserializeContent( $oldtext );
- $newContent = is_null( $newtext ) ? null : $handler->unserializeContent( $newtext );
-
- return $handler->getAutosummary( $oldContent, $newContent, $flags );
- }
-
/**
* Auto-generates a deletion reason
*
* @covers Article::onArticleCreate
* @covers Article::onArticleDelete
* @covers Article::onArticleEdit
- * @covers Article::getAutosummary
*/
public function testStaticFunctions() {
$this->hideDeprecated( 'Article::selectFields' );
- $this->hideDeprecated( 'Article::getAutosummary' );
- $this->hideDeprecated( 'WikiPage::getAutosummary' );
- $this->hideDeprecated( 'CategoryPage::getAutosummary' ); // Inherited from Article
$this->assertEquals( WikiPage::selectFields(), Article::selectFields(),
"Article static functions" );
"Article static functions" );
$this->assertEquals( true, is_callable( "ImagePage::onArticleEdit" ),
"Article static functions" );
- $this->assertTrue( is_string( CategoryPage::getAutosummary( '', '', 0 ) ),
- "Article static functions" );
}
}
$this->assertEquals( "one", $page->getContent()->getNativeData() );
}
- public static function provideGetAutosummary() {
- return [
- [
- 'Hello there, world!',
- '#REDIRECT [[Foo]]',
- 0,
- '/^Redirected page .*Foo/'
- ],
-
- [
- null,
- 'Hello world!',
- EDIT_NEW,
- '/^Created page .*Hello/'
- ],
-
- [
- 'Hello there, world!',
- '',
- 0,
- '/^Blanked/'
- ],
-
- [
- 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
- eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
- voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
- clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.',
- 'Hello world!',
- 0,
- '/^Replaced .*Hello/'
- ],
-
- [
- 'foo',
- 'bar',
- 0,
- '/^$/'
- ],
- ];
- }
-
- /**
- * @dataProvider provideGetAutoSummary
- * @covers WikiPage::getAutosummary
- */
- public function testGetAutosummary( $old, $new, $flags, $expected ) {
- $this->hideDeprecated( "WikiPage::getAutosummary" );
-
- $page = $this->newPage( "WikiPageTest_testGetAutosummary" );
-
- $summary = $page->getAutosummary( $old, $new, $flags );
-
- $this->assertTrue( (bool)preg_match( $expected, $summary ),
- "Autosummary didn't match expected pattern $expected: $summary" );
- }
-
public static function provideGetAutoDeleteReason() {
return [
[