Remove deprecated function Article::doEdit() and WikiPage::doEdit()
[lhc/web/wiklou.git] / includes / page / Article.php
index cc3ef26..2052ed3 100644 (file)
@@ -197,24 +197,6 @@ class Article implements Page {
                $this->mPage->clear();
        }
 
-       /**
-        * Note that getContent does not follow redirects anymore.
-        * If you need to fetch redirectable content easily, try
-        * the shortcut in WikiPage::getRedirectTarget()
-        *
-        * This function has side effects! Do not use this function if you
-        * only want the real revision text if any.
-        *
-        * @deprecated since 1.21; use WikiPage::getContent() instead
-        *
-        * @return string Return the text of this revision
-        */
-       public function getContent() {
-               wfDeprecated( __METHOD__, '1.21' );
-               $content = $this->getContentObject();
-               return ContentHandler::getContentText( $content );
-       }
-
        /**
         * Returns a Content object representing the pages effective display content,
         * not necessarily the revision's content!
@@ -316,46 +298,6 @@ class Article implements Page {
                return $oldid;
        }
 
-       /**
-        * Get text of an article from database
-        * Does *NOT* follow redirects.
-        *
-        * @protected
-        * @note This is really internal functionality that should really NOT be
-        * used by other functions. For accessing article content, use the WikiPage
-        * class, especially WikiBase::getContent(). However, a lot of legacy code
-        * uses this method to retrieve page text from the database, so the function
-        * has to remain public for now.
-        *
-        * @return string|bool String containing article contents, or false if null
-        * @deprecated since 1.21, use WikiPage::getContent() instead
-        */
-       function fetchContent() {
-               // BC cruft!
-
-               wfDeprecated( __METHOD__, '1.21' );
-
-               if ( $this->mContentLoaded && $this->mContent ) {
-                       return $this->mContent;
-               }
-
-               $content = $this->fetchContentObject();
-
-               if ( !$content ) {
-                       return false;
-               }
-
-               // @todo Get rid of mContent everywhere!
-               $this->mContent = ContentHandler::getContentText( $content );
-               ContentHandler::runLegacyHooks(
-                       'ArticleAfterFetchContent',
-                       [ &$this, &$this->mContent ],
-                       '1.21'
-               );
-
-               return $this->mContent;
-       }
-
        /**
         * Get text content object
         * Does *NOT* follow redirects.
@@ -428,10 +370,12 @@ class Article implements Page {
                $this->mContentObject = $content;
                $this->mRevIdFetched = $this->mRevision->getId();
 
-               ContentHandler::runLegacyHooks(
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $articlePage = $this;
+
+               Hooks::run(
                        'ArticleAfterFetchContentObject',
-                       [ &$this, &$this->mContentObject ],
-                       '1.21'
+                       [ &$articlePage, &$this->mContentObject ]
                );
 
                return $this->mContentObject;
@@ -565,7 +509,9 @@ class Article implements Page {
                while ( !$outputDone && ++$pass ) {
                        switch ( $pass ) {
                                case 1:
-                                       Hooks::run( 'ArticleViewHeader', [ &$this, &$outputDone, &$useParserCache ] );
+                                       // Avoid PHP 7.1 warning of passing $this by reference
+                                       $articlePage = $this;
+                                       Hooks::run( 'ArticleViewHeader', [ &$articlePage, &$outputDone, &$useParserCache ] );
                                        break;
                                case 2:
                                        # Early abort if the page doesn't exist
@@ -724,7 +670,6 @@ class Article implements Page {
        /**
         * Show a diff page according to current request variables. For use within
         * Article::view() only, other callers should use the DifferenceEngine class.
-        *
         */
        protected function showDiffPage() {
                $request = $this->getContext()->getRequest();
@@ -904,9 +849,12 @@ class Article implements Page {
                $redirectTargetUrl = $this->getTitle()->getLinkURL( $query );
 
                if ( isset( $this->mRedirectedFrom ) ) {
+                       // Avoid PHP 7.1 warning of passing $this by reference
+                       $articlePage = $this;
+
                        // This is an internally redirected page view.
                        // We'll need a backlink to the source page for navigation.
-                       if ( Hooks::run( 'ArticleViewRedirect', [ &$this ] ) ) {
+                       if ( Hooks::run( 'ArticleViewRedirect', [ &$articlePage ] ) ) {
                                $redir = Linker::linkKnown(
                                        $this->mRedirectedFrom,
                                        null,
@@ -1336,7 +1284,10 @@ class Article implements Page {
         * @param int $oldid Revision ID of this article revision
         */
        public function setOldSubtitle( $oldid = 0 ) {
-               if ( !Hooks::run( 'DisplayOldSubtitle', [ &$this, &$oldid ] ) ) {
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $articlePage = $this;
+
+               if ( !Hooks::run( 'DisplayOldSubtitle', [ &$articlePage, &$oldid ] ) ) {
                        return;
                }
 
@@ -1703,6 +1654,15 @@ class Article implements Page {
                $title = $this->getTitle();
                $ctx = $this->getContext();
                $outputPage = $ctx->getOutput();
+               if ( !wfMessage( 'deletereason-dropdown' )->inContentLanguage()->isDisabled() ) {
+                       $reasonsList = Xml::getArrayFromWikiTextList(
+                               wfMessage( 'deletereason-dropdown' )->inContentLanguage()->text()
+                       );
+                       $outputPage->addModules( 'mediawiki.reasonSuggest' );
+                       $outputPage->addJsConfigVars( [
+                               'reasons' => $reasonsList
+                       ] );
+               }
                $useMediaWikiUIEverywhere = $ctx->getConfig()->get( 'UseMediaWikiUIEverywhere' );
                $outputPage->setPageTitle( wfMessage( 'delete-confirm', $title->getPrefixedText() ) );
                $outputPage->addBacklinkSubtitle( $title );
@@ -1717,7 +1677,6 @@ class Article implements Page {
                Hooks::run( 'ArticleConfirmDelete', [ $this, $outputPage, &$reason ] );
 
                $user = $this->getContext()->getUser();
-
                if ( $user->isAllowed( 'suppressrevision' ) ) {
                        $suppress = Html::openElement( 'div', [ 'id' => 'wpDeleteSuppressRow' ] ) .
                                Xml::checkLabel( wfMessage( 'revdelete-suppress' )->text(),
@@ -1727,7 +1686,6 @@ class Article implements Page {
                        $suppress = '';
                }
                $checkWatch = $user->getBoolOption( 'watchdeletion' ) || $user->isWatched( $title );
-
                $form = Html::openElement( 'form', [ 'method' => 'post',
                        'action' => $title->getLocalURL( 'action=delete' ), 'id' => 'deleteconfirm' ] ) .
                        Html::openElement( 'fieldset', [ 'id' => 'mw-delete-table' ] ) .
@@ -1899,7 +1857,9 @@ class Article implements Page {
                                && !$this->mRedirectedFrom && !$this->getTitle()->isRedirect();
                        // Extension may have reason to disable file caching on some pages.
                        if ( $cacheable ) {
-                               $cacheable = Hooks::run( 'IsFileCacheable', [ &$this ] );
+                               // Avoid PHP 7.1 warning of passing $this by reference
+                               $articlePage = $this;
+                               $cacheable = Hooks::run( 'IsFileCacheable', [ &$articlePage ] );
                        }
                }
 
@@ -2063,17 +2023,6 @@ class Article implements Page {
                return $this->mPage->doDeleteUpdates( $id, $content );
        }
 
-       /**
-        * Call to WikiPage function for backwards compatibility.
-        * @see WikiPage::doEdit
-        *
-        * @deprecated since 1.21: use doEditContent() instead.
-        */
-       public function doEdit( $text, $summary, $flags = 0, $baseRevId = false, $user = null ) {
-               wfDeprecated( __METHOD__, '1.21' );
-               return $this->mPage->doEdit( $text, $summary, $flags, $baseRevId, $user );
-       }
-
        /**
         * Call to WikiPage function for backwards compatibility.
         * @see WikiPage::doEditContent