From a67d5c46e23727d5711a0baba0776ac150eb6852 Mon Sep 17 00:00:00 2001 From: Max Semenik Date: Mon, 30 Apr 2012 18:43:03 +0400 Subject: [PATCH] ImagePage refactoring * Use context everywhere * Fix comments, including two functions from other files it references * Remove pointless function return value Change-Id: I29a0a2a54432c8ef7185a210c7f2f73c64bfb71c --- includes/Article.php | 2 +- includes/ImagePage.php | 233 +++++++++++++++++++++-------------------- includes/Title.php | 2 +- 3 files changed, 120 insertions(+), 117 deletions(-) diff --git a/includes/Article.php b/includes/Article.php index 393f770bf7..3cd5e6522a 100644 --- a/includes/Article.php +++ b/includes/Article.php @@ -1076,7 +1076,7 @@ class Article extends Page { * Revision as of \; view current revision * \<- Previous version | Next Version -\> * - * @param $oldid String: revision ID of this article revision + * @param $oldid int: revision ID of this article revision */ public function setOldSubtitle( $oldid = 0 ) { global $wgLang, $wgOut, $wgUser, $wgRequest; diff --git a/includes/ImagePage.php b/includes/ImagePage.php index b2393f0dfc..c19e83f37c 100644 --- a/includes/ImagePage.php +++ b/includes/ImagePage.php @@ -30,7 +30,7 @@ class ImagePage extends Article { /** * Constructor from a page id * @param $id Int article ID to load - * @returnImagePage|null + * @return ImagePage|null */ public static function newFromID( $id ) { $t = Title::newFromID( $id ); @@ -51,7 +51,7 @@ class ImagePage extends Article { protected function loadFile() { if ( $this->fileLoaded ) { - return true; + return; } $this->fileLoaded = true; @@ -75,16 +75,17 @@ class ImagePage extends Article { * Include body text only; none of the image extras */ public function render() { - global $wgOut; - $wgOut->setArticleBodyOnly( true ); + $this->getContext()->setArticleBodyOnly( true ); parent::view(); } public function view() { - global $wgOut, $wgShowEXIF, $wgRequest, $wgUser; + global $wgShowEXIF; - $diff = $wgRequest->getVal( 'diff' ); - $diffOnly = $wgRequest->getBool( 'diffonly', $wgUser->getOption( 'diffonly' ) ); + $out = $this->getContext()->getOutput(); + $request = $this->getContext()->getRequest(); + $diff = $request->getVal( 'diff' ); + $diffOnly = $request->getBool( 'diffonly', $this->getContext()->getUser()->getOption( 'diffonly' ) ); if ( $this->getTitle()->getNamespace() != NS_FILE || ( isset( $diff ) && $diffOnly ) ) { parent::view(); @@ -97,14 +98,14 @@ class ImagePage extends Article { if ( $this->getTitle()->getDBkey() == $this->mPage->getFile()->getName() || isset( $diff ) ) { // mTitle is the same as the redirect target so ask Article // to perform the redirect for us. - $wgRequest->setVal( 'diffonly', 'true' ); + $request->setVal( 'diffonly', 'true' ); parent::view(); return; } else { // mTitle is not the same as the redirect target so it is // probably the redirect page itself. Fake the redirect symbol - $wgOut->setPageTitle( $this->getTitle()->getPrefixedText() ); - $wgOut->addHTML( $this->viewRedirect( Title::makeTitle( NS_FILE, $this->mPage->getFile()->getName() ), + $out->setPageTitle( $this->getTitle()->getPrefixedText() ); + $out->addHTML( $this->viewRedirect( Title::makeTitle( NS_FILE, $this->mPage->getFile()->getName() ), /* $appendSubtitle */ true, /* $forceKnown */ true ) ); $this->mPage->doViewUpdates( $this->getContext()->getUser() ); return; @@ -120,7 +121,7 @@ class ImagePage extends Article { } if ( !$diff && $this->displayImg->exists() ) { - $wgOut->addHTML( $this->showTOC( $showmeta ) ); + $out->addHTML( $this->showTOC( $showmeta ) ); } if ( !$diff ) { @@ -132,15 +133,15 @@ class ImagePage extends Article { # NS_FILE is in the user language, but this section (the actual wikitext) # should be in page content language $pageLang = $this->getTitle()->getPageLanguage(); - $wgOut->addHTML( Xml::openElement( 'div', array( 'id' => 'mw-imagepage-content', + $out->addHTML( Xml::openElement( 'div', array( 'id' => 'mw-imagepage-content', 'lang' => $pageLang->getCode(), 'dir' => $pageLang->getDir(), 'class' => 'mw-content-'.$pageLang->getDir() ) ) ); parent::view(); - $wgOut->addHTML( Xml::closeElement( 'div' ) ); + $out->addHTML( Xml::closeElement( 'div' ) ); } else { # Just need to set the right headers - $wgOut->setArticleFlag( true ); - $wgOut->setPageTitle( $this->getTitle()->getPrefixedText() ); + $out->setArticleFlag( true ); + $out->setPageTitle( $this->getTitle()->getPrefixedText() ); $this->mPage->doViewUpdates( $this->getContext()->getUser() ); } @@ -148,16 +149,16 @@ class ImagePage extends Article { if ( $this->mExtraDescription ) { $fol = wfMessage( 'shareddescriptionfollows' ); if ( !$fol->isDisabled() ) { - $wgOut->addWikiText( $fol->plain() ); + $out->addWikiText( $fol->plain() ); } - $wgOut->addHTML( '
' . $this->mExtraDescription . "
\n" ); + $out->addHTML( '
' . $this->mExtraDescription . "
\n" ); } $this->closeShowImage(); $this->imageHistory(); // TODO: Cleanup the following - $wgOut->addHTML( Xml::element( 'h2', + $out->addHTML( Xml::element( 'h2', array( 'id' => 'filelinks' ), wfMsg( 'imagelinks' ) ) . "\n" ); $this->imageDupes(); @@ -169,24 +170,24 @@ class ImagePage extends Article { $html = ''; wfRunHooks( 'ImagePageAfterImageLinks', array( $this, &$html ) ); if ( $html ) { - $wgOut->addHTML( $html ); + $out->addHTML( $html ); } if ( $showmeta ) { - $wgOut->addHTML( Xml::element( 'h2', array( 'id' => 'metadata' ), wfMsg( 'metadata' ) ) . "\n" ); - $wgOut->addWikiText( $this->makeMetadataTable( $formattedMetadata ) ); - $wgOut->addModules( array( 'mediawiki.action.view.metadata' ) ); + $out->addHTML( Xml::element( 'h2', array( 'id' => 'metadata' ), wfMsg( 'metadata' ) ) . "\n" ); + $out->addWikiText( $this->makeMetadataTable( $formattedMetadata ) ); + $out->addModules( array( 'mediawiki.action.view.metadata' ) ); } // Add remote Filepage.css if( !$this->repo->isLocal() ) { $css = $this->repo->getDescriptionStylesheetUrl(); if ( $css ) { - $wgOut->addStyle( $css ); + $out->addStyle( $css ); } } // always show the local local Filepage.css, bug 29277 - $wgOut->addModuleStyles( 'filepage' ); + $out->addModuleStyles( 'filepage' ); } /** @@ -262,12 +263,16 @@ class ImagePage extends Article { } protected function openShowImage() { - global $wgOut, $wgUser, $wgImageLimits, $wgRequest, - $wgLang, $wgEnableUploads, $wgSend404Code; + global $wgImageLimits, $wgEnableUploads, $wgSend404Code; $this->loadFile(); + $out = $this->getContext()->getOutput(); + $user = $this->getContext()->getUser(); + $lang = $this->getContext()->getLanguage(); + $dirmark = $lang->getDirMarkEntity(); + $request = $this->getContext()->getRequest(); - $sizeSel = intval( $wgUser->getOption( 'imagesize' ) ); + $sizeSel = intval( $user->getOption( 'imagesize' ) ); if ( !isset( $wgImageLimits[$sizeSel] ) ) { $sizeSel = User::getDefaultOption( 'imagesize' ); @@ -281,11 +286,10 @@ class ImagePage extends Article { $max = $wgImageLimits[$sizeSel]; $maxWidth = $max[0]; $maxHeight = $max[1]; - $dirmark = $wgLang->getDirMarkEntity(); if ( $this->displayImg->exists() ) { # image - $page = $wgRequest->getIntOrNull( 'page' ); + $page = $request->getIntOrNull( 'page' ); if ( is_null( $page ) ) { $params = array(); $page = 1; @@ -299,7 +303,7 @@ class ImagePage extends Article { $longDesc = wfMsg( 'parentheses', $this->displayImg->getLongDesc() ); - wfRunHooks( 'ImageOpenShowImageInlineBefore', array( &$this, &$wgOut ) ); + wfRunHooks( 'ImageOpenShowImageInlineBefore', array( &$this, &$out ) ); if ( $this->displayImg->allowInlineDisplay() ) { # image @@ -335,7 +339,7 @@ class ImagePage extends Article { if ( count( $otherSizes ) && $this->displayImg->getRepo()->canTransformVia404() ) { $msgsmall .= ' ' . Html::rawElement( 'span', array( 'class' => 'mw-filepage-other-resolutions' ), - wfMessage( 'show-big-image-other' )->rawParams( $wgLang->pipeList( $otherSizes ) )-> + wfMessage( 'show-big-image-other' )->rawParams( $lang->pipeList( $otherSizes ) )-> params( count( $otherSizes ) )->parse() ); } @@ -357,7 +361,7 @@ class ImagePage extends Article { $isMulti = $this->displayImg->isMultipage() && $this->displayImg->pageCount() > 1; if ( $isMulti ) { - $wgOut->addHTML( '
' ); + $out->addHTML( '' - . ( $this->current->isLocal() && ( $wgUser->isAllowedAny( 'delete', 'deletedhistory' ) ) ? '' : '' ) + . ( $this->current->isLocal() && ( $this->getUser()->isAllowedAny( 'delete', 'deletedhistory' ) ) ? '' : '' ) . '' . ( $this->showThumb ? '' : '' ) . '' @@ -948,22 +949,24 @@ class ImageHistoryList { * @return string */ public function imageHistoryLine( $iscur, $file ) { - global $wgUser, $wgLang, $wgContLang; + global $wgContLang; + $user = $this->getUser(); + $lang = $this->getLanguage(); $timestamp = wfTimestamp( TS_MW, $file->getTimestamp() ); $img = $iscur ? $file->getName() : $file->getArchiveName(); - $user = $file->getUser( 'id' ); - $usertext = $file->getUser( 'text' ); + $userId = $file->getUser( 'id' ); + $userText = $file->getUser( 'text' ); $description = $file->getDescription(); $local = $this->current->isLocal(); $row = $selected = ''; // Deletion link - if ( $local && ( $wgUser->isAllowedAny( 'delete', 'deletedhistory' ) ) ) { + if ( $local && ( $user->isAllowedAny( 'delete', 'deletedhistory' ) ) ) { $row .= '"; @@ -1073,10 +1076,10 @@ class ImageHistoryList { $row .= '' . wfMsgHtml( 'rev-deleted-user' ) . ''; } else { if ( $local ) { - $row .= Linker::userLink( $user, $usertext ) . ' ' . - Linker::userToolLinks( $user, $usertext ) . ''; + $row .= Linker::userLink( $userId, $userText ) . ' ' . + Linker::userToolLinks( $userId, $userText ) . ''; } else { - $row .= htmlspecialchars( $usertext ); + $row .= htmlspecialchars( $userText ); } } $row .= ''; @@ -1100,8 +1103,7 @@ class ImageHistoryList { * @return string */ protected function getThumbForLine( $file ) { - global $wgLang; - + $lang = $this->getLanguage(); if ( $file->allowInlineDisplay() && $file->userCan( File::DELETED_FILE ) && !$file->isDeleted( File::DELETED_FILE ) ) { $params = array( 'width' => '120', @@ -1112,9 +1114,9 @@ class ImageHistoryList { $thumbnail = $file->transform( $params ); $options = array( 'alt' => wfMsg( 'filehist-thumbtext', - $wgLang->timeanddate( $timestamp, true ), - $wgLang->date( $timestamp, true ), - $wgLang->time( $timestamp, true ) ), + $lang->timeanddate( $timestamp, true ), + $lang->date( $timestamp, true ), + $lang->time( $timestamp, true ) ), 'file-link' => true, ); @@ -1188,6 +1190,7 @@ class ImageHistoryPseudoPager extends ReverseChronologicalPager { } /** + * @param $row object * @return string */ function formatRow( $row ) { diff --git a/includes/Title.php b/includes/Title.php index 6764f8f8d1..b609761d42 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -4467,7 +4467,7 @@ class Title { * $wgLang (such as special pages, which are in the user language). * * @since 1.18 - * @return object Language + * @return Language */ public function getPageLanguage() { global $wgLang; -- 2.20.1
' ); } if ( $thumbnail ) { @@ -365,7 +369,7 @@ class ImagePage extends Article { 'alt' => $this->displayImg->getTitle()->getPrefixedText(), 'file-link' => true, ); - $wgOut->addHTML( '
' . Xml::openElement( 'form', $formParams ) . Html::hidden( 'title', $this->getTitle()->getPrefixedDBkey() ) . @@ -433,7 +437,7 @@ class ImagePage extends Article { if ( $this->displayImg->isSafeFile() ) { $icon = $this->displayImg->iconThumb(); - $wgOut->addHTML( '
$warning
EOT ); } else { - $wgOut->addWikiText( <<addWikiText( <<{$medialink} {$dirmark}$longDesc
EOT @@ -481,7 +485,7 @@ EOT # No article exists either # Show deletion log to be consistent with normal articles LogEventsList::showLogExtract( - $wgOut, + $out, array( 'delete', 'move' ), $this->getTitle()->getPrefixedText(), '', @@ -493,7 +497,7 @@ EOT ); } - if ( $wgEnableUploads && $wgUser->isAllowed( 'upload' ) ) { + if ( $wgEnableUploads && $user->isAllowed( 'upload' ) ) { // Only show an upload link if the user can upload $uploadTitle = SpecialPage::getTitleFor( 'Upload' ); $nofile = array( @@ -506,15 +510,15 @@ EOT // Note, if there is an image description page, but // no image, then this setRobotPolicy is overriden // by Article::View(). - $wgOut->setRobotPolicy( 'noindex,nofollow' ); - $wgOut->wrapWikiMsg( "", $nofile ); + $out->setRobotPolicy( 'noindex,nofollow' ); + $out->wrapWikiMsg( "", $nofile ); if ( !$this->getID() && $wgSend404Code ) { // If there is no image, no shared image, and no description page, // output a 404, to be consistent with articles. - $wgRequest->response()->header( 'HTTP/1.1 404 Not Found' ); + $request->response()->header( 'HTTP/1.1 404 Not Found' ); } } - $wgOut->setFileVersion( $this->displayImg ); + $out->setFileVersion( $this->displayImg ); } /** @@ -544,8 +548,7 @@ EOT * Show a notice that the file is from a shared repository */ protected function printSharedImageText() { - global $wgOut; - + $out = $this->getContext()->getOutput(); $this->loadFile(); $descUrl = $this->mPage->getFile()->getDescriptionUrl(); @@ -553,18 +556,18 @@ EOT /* Add canonical to head if there is no local page for this shared file */ if( $descUrl && $this->mPage->getID() == 0 ) { - $wgOut->addLink( array( 'rel' => 'canonical', 'href' => $descUrl ) ); + $out->addLink( array( 'rel' => 'canonical', 'href' => $descUrl ) ); } $wrap = "
\n$1\n
\n"; $repo = $this->mPage->getFile()->getRepo()->getDisplayName(); if ( $descUrl && $descText && wfMsgNoTrans( 'sharedupload-desc-here' ) !== '-' ) { - $wgOut->wrapWikiMsg( $wrap, array( 'sharedupload-desc-here', $repo, $descUrl ) ); + $out->wrapWikiMsg( $wrap, array( 'sharedupload-desc-here', $repo, $descUrl ) ); } elseif ( $descUrl && wfMsgNoTrans( 'sharedupload-desc-there' ) !== '-' ) { - $wgOut->wrapWikiMsg( $wrap, array( 'sharedupload-desc-there', $repo, $descUrl ) ); + $out->wrapWikiMsg( $wrap, array( 'sharedupload-desc-there', $repo, $descUrl ) ); } else { - $wgOut->wrapWikiMsg( $wrap, array( 'sharedupload', $repo ), ''/*BACKCOMPAT*/ ); + $out->wrapWikiMsg( $wrap, array( 'sharedupload', $repo ), ''/*BACKCOMPAT*/ ); } if ( $descText ) { @@ -586,7 +589,7 @@ EOT * external editing (and instructions link) etc. */ protected function uploadLinksBox() { - global $wgUser, $wgOut, $wgEnableUploads, $wgUseExternalEditor; + global $wgEnableUploads, $wgUseExternalEditor; if ( !$wgEnableUploads ) { return; @@ -597,12 +600,13 @@ EOT return; } - $wgOut->addHTML( "
    \n" ); + $out = $this->getContext()->getOutput(); + $out->addHTML( "
      \n" ); # "Upload a new version of this file" link - if ( UploadBase::userCanReUpload( $wgUser, $this->mPage->getFile()->name ) ) { + if ( UploadBase::userCanReUpload( $this->getContext()->getUser(), $this->mPage->getFile()->name ) ) { $ulink = Linker::makeExternalLink( $this->getUploadUrl(), wfMsg( 'uploadnewversion-linktext' ) ); - $wgOut->addHTML( "
    • {$ulink}
    • \n" ); + $out->addHTML( "
    • {$ulink}
    • \n" ); } # External editing link @@ -618,14 +622,14 @@ EOT ), array( 'known', 'noclasses' ) ); - $wgOut->addHTML( + $out->addHTML( '
    • ' . $elink . ' ' . wfMsgExt( 'edit-externally-help', array( 'parseinline' ) ) . "
    • \n" ); } - $wgOut->addHTML( "
    \n" ); + $out->addHTML( "
\n" ); } protected function closeShowImage() { } # For overloading @@ -635,12 +639,11 @@ EOT * we follow it with an upload history of the image and its usage. */ protected function imageHistory() { - global $wgOut; - $this->loadFile(); + $out = $this->getContext()->getOutput(); $pager = new ImageHistoryPseudoPager( $this ); - $wgOut->addHTML( $pager->getBody() ); - $wgOut->preventClickjacking( $pager->getPreventClickjacking() ); + $out->addHTML( $pager->getBody() ); + $out->preventClickjacking( $pager->getPreventClickjacking() ); $this->mPage->getFile()->resetHistory(); // free db resources @@ -669,10 +672,9 @@ EOT } protected function imageLinks() { - global $wgOut, $wgLang; - $limit = 100; + $out = $this->getContext()->getOutput(); $res = $this->queryImageLinks( $this->getTitle()->getDbKey(), $limit + 1); $rows = array(); $redirects = array(); @@ -696,7 +698,7 @@ EOT } if ( $count == 0 ) { - $wgOut->wrapWikiMsg( + $out->wrapWikiMsg( Html::rawElement( 'div', array( 'id' => 'mw-imagepage-nolinkstoimage' ), "\n$1\n" ), 'nolinkstoimage' @@ -704,18 +706,18 @@ EOT return; } - $wgOut->addHTML( "
\n" ); + $out->addHTML( "
\n" ); if ( !$hasMore ) { - $wgOut->addWikiMsg( 'linkstoimage', $count ); + $out->addWikiMsg( 'linkstoimage', $count ); } else { // More links than the limit. Add a link to [[Special:Whatlinkshere]] - $wgOut->addWikiMsg( 'linkstoimage-more', - $wgLang->formatNum( $limit ), + $out->addWikiMsg( 'linkstoimage-more', + $this->getContext()->getLanguage()->formatNum( $limit ), $this->getTitle()->getPrefixedDBkey() ); } - $wgOut->addHTML( + $out->addHTML( Html::openElement( 'ul', array( 'class' => 'mw-imagepage-linkstoimage' ) ) . "\n" ); @@ -754,7 +756,7 @@ EOT $liContents = wfMessage( 'linkstoimage-redirect' )->rawParams( $link, $ul )->parse(); } - $wgOut->addHTML( Html::rawElement( + $out->addHTML( Html::rawElement( 'li', array( 'id' => 'mw-imagepage-linkstoimage-ns' . $element->page_namespace ), $liContents @@ -762,31 +764,30 @@ EOT ); }; - $wgOut->addHTML( Html::closeElement( 'ul' ) . "\n" ); + $out->addHTML( Html::closeElement( 'ul' ) . "\n" ); $res->free(); // Add a links to [[Special:Whatlinkshere]] if ( $count > $limit ) { - $wgOut->addWikiMsg( 'morelinkstoimage', $this->getTitle()->getPrefixedDBkey() ); + $out->addWikiMsg( 'morelinkstoimage', $this->getTitle()->getPrefixedDBkey() ); } - $wgOut->addHTML( Html::closeElement( 'div' ) . "\n" ); + $out->addHTML( Html::closeElement( 'div' ) . "\n" ); } protected function imageDupes() { - global $wgOut, $wgLang; - $this->loadFile(); + $out = $this->getContext()->getOutput(); $dupes = $this->mPage->getDuplicates(); if ( count( $dupes ) == 0 ) { return; } - $wgOut->addHTML( "
\n" ); - $wgOut->addWikiMsg( 'duplicatesoffile', - $wgLang->formatNum( count( $dupes ) ), $this->getTitle()->getDBkey() + $out->addHTML( "
\n" ); + $out->addWikiMsg( 'duplicatesoffile', + $this->getContext()->getLanguage()->formatNum( count( $dupes ) ), $this->getTitle()->getDBkey() ); - $wgOut->addHTML( "
    \n" ); + $out->addHTML( "
      \n" ); /** * @var $file File @@ -806,9 +807,9 @@ EOT $file->getTitle()->getPrefixedText() ); $fromSrc = wfMsg( 'shared-repo-from', $file->getRepo()->getDisplayName() ); } - $wgOut->addHTML( "
    • {$link} {$fromSrc}
    • \n" ); + $out->addHTML( "
    • {$link} {$fromSrc}
    • \n" ); } - $wgOut->addHTML( "
\n" ); + $out->addHTML( "
\n" ); } /** @@ -832,12 +833,12 @@ EOT * @param $description String */ function showError( $description ) { - global $wgOut; - $wgOut->setPageTitle( wfMessage( 'internalerror' ) ); - $wgOut->setRobotPolicy( 'noindex,nofollow' ); - $wgOut->setArticleRelated( false ); - $wgOut->enableClientCache( false ); - $wgOut->addWikiText( $description ); + $out = $this->getContext()->getOutput(); + $out->setPageTitle( wfMessage( 'internalerror' ) ); + $out->setRobotPolicy( 'noindex,nofollow' ); + $out->setArticleRelated( false ); + $out->enableClientCache( false ); + $out->addWikiText( $description ); } /** @@ -862,7 +863,7 @@ EOT * * @ingroup Media */ -class ImageHistoryList { +class ImageHistoryList extends ContextSource { /** * @var Title @@ -897,6 +898,7 @@ class ImageHistoryList { $this->title = $imagePage->getTitle(); $this->imagePage = $imagePage; $this->showThumb = $wgShowArchiveThumbnails && $this->img->canRender(); + $this->setContext( $imagePage->getContext() ); } /** @@ -918,14 +920,13 @@ class ImageHistoryList { * @return string */ public function beginImageHistoryList( $navLinks = '' ) { - global $wgOut, $wgUser; return Xml::element( 'h2', array( 'id' => 'filehistory' ), wfMsg( 'filehist' ) ) . "\n" . "
\n" - . $wgOut->parse( wfMsgNoTrans( 'filehist-help' ) ) + . $this->getOutput()->parse( wfMsgNoTrans( 'filehist-help' ) ) . $navLinks . "\n" . Xml::openElement( 'table', array( 'class' => 'wikitable filehistory' ) ) . "\n" . '
' . wfMsgHtml( 'filehist-datetime' ) . '' . wfMsgHtml( 'filehist-thumb' ) . '' . wfMsgHtml( 'filehist-dimensions' ) . ''; # Link to remove from history - if ( $wgUser->isAllowed( 'delete' ) ) { + if ( $user->isAllowed( 'delete' ) ) { $q = array( 'action' => 'delete' ); if ( !$iscur ) { $q['oldimage'] = $img; @@ -975,16 +978,16 @@ class ImageHistoryList { ); } # Link to hide content. Don't show useless link to people who cannot hide revisions. - $canHide = $wgUser->isAllowed( 'deleterevision' ); - if ( $canHide || ( $wgUser->isAllowed( 'deletedhistory' ) && $file->getVisibility() ) ) { - if ( $wgUser->isAllowed( 'delete' ) ) { + $canHide = $user->isAllowed( 'deleterevision' ); + if ( $canHide || ( $user->isAllowed( 'deletedhistory' ) && $file->getVisibility() ) ) { + if ( $user->isAllowed( 'delete' ) ) { $row .= '
'; } // If file is top revision or locked from this user, don't link if ( $iscur || !$file->userCan( File::DELETED_RESTRICTED ) ) { $del = Linker::revDeleteLinkDisabled( $canHide ); } else { - list( $ts, $name ) = explode( '!', $img, 2 ); + list( $ts, ) = explode( '!', $img, 2 ); $query = array( 'type' => 'oldimage', 'target' => $this->title->getPrefixedText(), @@ -1002,7 +1005,7 @@ class ImageHistoryList { $row .= '
'; if ( $iscur ) { $row .= wfMsgHtml( 'filehist-current' ); - } elseif ( $local && $wgUser->isLoggedIn() && $this->title->userCan( 'edit' ) ) { + } elseif ( $local && $user->isLoggedIn() && $this->title->userCan( 'edit' ) ) { if ( $file->isDeleted( File::DELETED_FILE ) ) { $row .= wfMsgHtml( 'filehist-revert' ); } else { @@ -1013,7 +1016,7 @@ class ImageHistoryList { array( 'action' => 'revert', 'oldimage' => $img, - 'wpEditToken' => $wgUser->getEditToken( $img ) + 'wpEditToken' => $user->getEditToken( $img ) ), array( 'known', 'noclasses' ) ); @@ -1028,7 +1031,7 @@ class ImageHistoryList { $row .= ""; if ( !$file->userCan( File::DELETED_FILE ) ) { # Don't link to unviewable files - $row .= '' . $wgLang->timeanddate( $timestamp, true ) . ''; + $row .= '' . $lang->timeanddate( $timestamp, true ) . ''; } elseif ( $file->isDeleted( File::DELETED_FILE ) ) { if ( $local ) { $this->preventClickjacking(); @@ -1036,22 +1039,22 @@ class ImageHistoryList { # Make a link to review the image $url = Linker::link( $revdel, - $wgLang->timeanddate( $timestamp, true ), + $lang->timeanddate( $timestamp, true ), array(), array( 'target' => $this->title->getPrefixedText(), 'file' => $img, - 'token' => $wgUser->getEditToken( $img ) + 'token' => $user->getEditToken( $img ) ), array( 'known', 'noclasses' ) ); } else { - $url = $wgLang->timeanddate( $timestamp, true ); + $url = $lang->timeanddate( $timestamp, true ); } $row .= '' . $url . ''; } else { $url = $iscur ? $this->current->getUrl() : $this->current->getArchiveUrl( $img ); - $row .= Xml::element( 'a', array( 'href' => $url ), $wgLang->timeanddate( $timestamp, true ) ); + $row .= Xml::element( 'a', array( 'href' => $url ), $lang->timeanddate( $timestamp, true ) ); } $row .= "