simplify r107833 per CR, just use wfExpandUrl()
[lhc/web/wiklou.git] / includes / specials / SpecialContributions.php
index 6ed4b20..865295b 100644 (file)
@@ -85,11 +85,11 @@ class SpecialContributions extends SpecialPage {
                if ( $this->opts['contribs'] != 'newbie' ) {
                        $target = $nt->getText();
                        $out->addSubtitle( $this->contributionsSub( $userObj ) );
-                       $out->setHTMLTitle( $this->msg( 'pagetitle', wfMsgExt( 'contributions-title', array( 'parsemag' ), $target ) ) );
+                       $out->setHTMLTitle( $this->msg( 'pagetitle', $this->msg( 'contributions-title', $target )->plain() ) );
                        $this->getSkin()->setRelevantUser( $userObj );
                } else {
                        $out->addSubtitle( $this->msg( 'sp-contributions-newbies-sub' ) );
-                       $out->setHTMLTitle( $this->msg( 'pagetitle', wfMsg( 'sp-contributions-newbies-title' ) ) );
+                       $out->setHTMLTitle( $this->msg( 'pagetitle', $this->msg( 'sp-contributions-newbies-title' )->plain() ) );
                }
 
                if ( ( $ns = $request->getVal( 'namespace', null ) ) !== null && $ns !== '' ) {
@@ -161,7 +161,7 @@ class SpecialContributions extends SpecialPage {
 
                        $out->addHTML( $this->getForm() );
 
-                       $pager = new ContribsPager( array(
+                       $pager = new ContribsPager( $this->getContext(), array(
                                'target' => $target,
                                'contribs' => $this->opts['contribs'],
                                'namespace' => $this->opts['namespace'],
@@ -200,7 +200,7 @@ class SpecialContributions extends SpecialPage {
                                        }
                                }
 
-                               if ( !wfMessage( $message, $target )->isDisabled() ) {
+                               if ( !$this->msg( $message, $target )->isDisabled() ) {
                                        $out->wrapWikiMsg(
                                                "<div class='mw-contributions-footer'>\n$1\n</div>",
                                                array( $message, $target ) );
@@ -224,7 +224,7 @@ class SpecialContributions extends SpecialPage {
                $nt = $userObj->getUserPage();
                $talk = $userObj->getTalkPage();
                if ( $talk ) {
-                       $tools = self::getUserLinks( $nt, $talk, $userObj, $this->getUser() );
+                       $tools = $this->getUserLinks( $nt, $talk, $userObj );
                        $links = $this->getLanguage()->pipeList( $tools );
 
                        // Show a note if the user is blocked and display the last block log entry.
@@ -267,38 +267,37 @@ class SpecialContributions extends SpecialPage {
         * @param $userpage Title: Target user page
         * @param $talkpage Title: Talk page
         * @param $target User: Target user object
-        * @param $subject User: The viewing user ($wgUser might be still checked in some cases)
         * @return array
         */
-       public static function getUserLinks( Title $userpage, Title $talkpage, User $target, User $subject ) {
+       public function getUserLinks( Title $userpage, Title $talkpage, User $target ) {
 
                $id = $target->getId();
                $username = $target->getName();
 
-               $tools[] = Linker::link( $talkpage, wfMsgHtml( 'sp-contributions-talk' ) );
+               $tools[] = Linker::link( $talkpage, $this->msg( 'sp-contributions-talk' )->escaped() );
 
                if ( ( $id !== null ) || ( $id === null && IP::isIPAddress( $username ) ) ) {
-                       if ( $subject->isAllowed( 'block' ) ) { # Block / Change block / Unblock links
+                       if ( $this->getUser()->isAllowed( 'block' ) ) { # Block / Change block / Unblock links
                                if ( $target->isBlocked() ) {
                                        $tools[] = Linker::linkKnown( # Change block link
                                                SpecialPage::getTitleFor( 'Block', $username ),
-                                               wfMsgHtml( 'change-blocklink' )
+                                               $this->msg( 'change-blocklink' )->escaped()
                                        );
                                        $tools[] = Linker::linkKnown( # Unblock link
                                                SpecialPage::getTitleFor( 'Unblock', $username ),
-                                               wfMsgHtml( 'unblocklink' )
+                                               $this->msg( 'unblocklink' )->escaped()
                                        );
                                } else { # User is not blocked
                                        $tools[] = Linker::linkKnown( # Block link
                                                SpecialPage::getTitleFor( 'Block', $username ),
-                                               wfMsgHtml( 'blocklink' )
+                                               $this->msg( 'blocklink' )->escaped()
                                        );
                                }
                        }
                        # Block log link
                        $tools[] = Linker::linkKnown(
                                SpecialPage::getTitleFor( 'Log', 'block' ),
-                               wfMsgHtml( 'sp-contributions-blocklog' ),
+                               $this->msg( 'sp-contributions-blocklog' )->escaped(),
                                array(),
                                array(
                                        'page' => $userpage->getPrefixedText()
@@ -308,30 +307,30 @@ class SpecialContributions extends SpecialPage {
                # Uploads
                $tools[] = Linker::linkKnown(
                        SpecialPage::getTitleFor( 'Listfiles', $username ),
-                       wfMsgHtml( 'sp-contributions-uploads' )
+                       $this->msg( 'sp-contributions-uploads' )->escaped()
                );
 
                # Other logs link
                $tools[] = Linker::linkKnown(
                        SpecialPage::getTitleFor( 'Log', $username ),
-                       wfMsgHtml( 'sp-contributions-logs' )
+                       $this->msg( 'sp-contributions-logs' )->escaped()
                );
 
                # Add link to deleted user contributions for priviledged users
-               if ( $subject->isAllowed( 'deletedhistory' ) ) {
+               if ( $this->getUser()->isAllowed( 'deletedhistory' ) ) {
                        $tools[] = Linker::linkKnown(
                                SpecialPage::getTitleFor( 'DeletedContributions', $username ),
-                               wfMsgHtml( 'sp-contributions-deleted' )
+                               $this->msg( 'sp-contributions-deleted' )->escaped()
                        );
                }
 
                # Add a link to change user rights for privileged users
                $userrightsPage = new UserrightsPage();
-               $userrightsPage->getContext()->setUser( $subject );
+               $userrightsPage->setContext( $this->getContext() );
                if ( $id !== null && $userrightsPage->userCanChangeRights( $target ) ) {
                        $tools[] = Linker::linkKnown(
                                SpecialPage::getTitleFor( 'Userrights', $username ),
-                               wfMsgHtml( 'sp-contributions-userrights' )
+                               $this->msg( 'sp-contributions-userrights' )->escaped()
                        );
                }
 
@@ -412,7 +411,7 @@ class SpecialContributions extends SpecialPage {
 
                $targetSelection = Xml::tags( 'td', array( 'colspan' => 2 ),
                        Xml::radioLabel(
-                               wfMsgExt( 'sp-contributions-newbies', array( 'parsemag' ) ),
+                               $this->msg( 'sp-contributions-newbies' )->text(),
                                'contribs',
                                'newbie' ,
                                'newbie',
@@ -420,7 +419,7 @@ class SpecialContributions extends SpecialPage {
                                array( 'class' => 'mw-input' )
                        ) . '<br />' .
                        Xml::radioLabel(
-                               wfMsgExt( 'sp-contributions-username', array( 'parsemag' ) ),
+                               $this->msg( 'sp-contributions-username' )->text(),
                                'contribs',
                                'user',
                                'user',
@@ -440,7 +439,7 @@ class SpecialContributions extends SpecialPage {
                $namespaceSelection =
                        Xml::tags( 'td', array( 'class' => 'mw-label' ),
                                Xml::label(
-                                       wfMsg( 'namespace' ),
+                                       $this->msg( 'namespace' )->text(),
                                        'namespace',
                                        ''
                                )
@@ -449,20 +448,20 @@ class SpecialContributions extends SpecialPage {
                                Xml::namespaceSelector( $this->opts['namespace'], '' ) . '&#160;' .
                                Html::rawElement( 'span', array( 'style' => 'white-space: nowrap' ),
                                        Xml::checkLabel(
-                                               wfMsg( 'invert' ),
+                                               $this->msg( 'invert' )->text(),
                                                'nsInvert',
                                                'nsInvert',
                                                $this->opts['nsInvert'],
-                                               array( 'title' => wfMsg( 'tooltip-invert' ), 'class' => 'mw-input' )
+                                               array( 'title' => $this->msg( 'tooltip-invert' )->text(), 'class' => 'mw-input' )
                                        ) . '&#160;'
                                ) .
                                Html::rawElement( 'span', array( 'style' => 'white-space: nowrap' ),
                                        Xml::checkLabel(
-                                               wfMsg( 'namespace_association' ),
+                                               $this->msg( 'namespace_association' )->text(),
                                                'associated',
                                                'associated',
                                                $this->opts['associated'],
-                                               array( 'title' => wfMsg( 'tooltip-namespace_association' ), 'class' => 'mw-input' )
+                                               array( 'title' => $this->msg( 'tooltip-namespace_association' )->text(), 'class' => 'mw-input' )
                                        ) . '&#160;'
                                )
                        ) ;
@@ -470,7 +469,7 @@ class SpecialContributions extends SpecialPage {
                $extraOptions = Xml::tags( 'td', array( 'colspan' => 2 ),
                        Html::rawElement( 'span', array( 'style' => 'white-space: nowrap' ),
                                Xml::checkLabel(
-                                       wfMsg( 'history-show-deleted' ),
+                                       $this->msg( 'history-show-deleted' )->text(),
                                        'deletedOnly',
                                        'mw-show-deleted-only',
                                        $this->opts['deletedOnly'],
@@ -479,7 +478,7 @@ class SpecialContributions extends SpecialPage {
                        ) .
                        Html::rawElement( 'span', array( 'style' => 'white-space: nowrap' ),
                                Xml::checkLabel(
-                                       wfMsg( 'sp-contributions-toponly' ),
+                                       $this->msg( 'sp-contributions-toponly' )->text(),
                                        'topOnly',
                                        'mw-show-top-only',
                                        $this->opts['topOnly'],
@@ -494,13 +493,13 @@ class SpecialContributions extends SpecialPage {
                                $this->opts['month']
                        ) . ' ' .
                        Xml::submitButton(
-                               wfMsg( 'sp-contributions-submit' ),
+                               $this->msg( 'sp-contributions-submit' )->text(),
                                array( 'class' => 'mw-submit' )
                        )
                ) ;
 
                $form .=
-                       Xml::fieldset( wfMsg( 'sp-contributions-search' ) ) .
+                       Xml::fieldset( $this->msg( 'sp-contributions-search' )->text() ) .
                        Xml::openElement( 'table', array( 'class' => 'mw-contributions-table' ) ) .
                                Xml::openElement( 'tr' ) .
                                        $targetSelection .
@@ -519,7 +518,7 @@ class SpecialContributions extends SpecialPage {
                                Xml::closeElement( 'tr' ) .
                        Xml::closeElement( 'table' );
 
-               $explain = wfMessage( 'sp-contributions-explain' );
+               $explain = $this->msg( 'sp-contributions-explain' );
                if ( $explain->exists() ) {
                        $form .= "<p id='mw-sp-contributions-explain'>{$explain}</p>";
                }
@@ -539,13 +538,13 @@ class ContribsPager extends ReverseChronologicalPager {
        var $namespace = '', $mDb;
        var $preventClickjacking = false;
 
-       function __construct( $options ) {
-               parent::__construct();
+       function __construct( IContextSource $context, array $options ) {
+               parent::__construct( $context );
 
                $msgs = array( 'uctop', 'diff', 'newarticle', 'rollbacklink', 'diff', 'hist', 'rev-delundel', 'pipe-separator' );
 
                foreach ( $msgs as $msg ) {
-                       $this->messages[$msg] = wfMsgExt( $msg, array( 'escapenoentities' ) );
+                       $this->messages[$msg] = $this->msg( $msg )->escaped();
                }
 
                $this->target = isset( $options['target'] ) ? $options['target'] : '';
@@ -795,8 +794,9 @@ class ContribsPager extends ReverseChronologicalPager {
                        $chardiff = ' ';
                }
 
-               $comment = $this->getLanguage()->getDirMark() . Linker::revComment( $rev, false, true );
-               $date = $this->getLanguage()->timeanddate( wfTimestamp( TS_MW, $row->rev_timestamp ), true );
+               $lang = $this->getLanguage();
+               $comment = $lang->getDirMark() . Linker::revComment( $rev, false, true );
+               $date = $lang->userTimeAndDate( $row->rev_timestamp, $user );
                if ( $rev->userCan( Revision::DELETED_TEXT, $user ) ) {
                        $d = Linker::linkKnown(
                                $page,
@@ -815,8 +815,8 @@ class ContribsPager extends ReverseChronologicalPager {
                # Note that we already excluded rows with hidden user names.
                if ( $this->contribs == 'newbie' ) {
                        $userlink = ' . . ' . Linker::userLink( $rev->getUser(), $rev->getUserText() );
-                       $userlink .= ' ' . wfMsg( 'parentheses',
-                               Linker::userTalkLink( $rev->getUser(), $rev->getUserText() ) ) . ' ';
+                       $userlink .= ' ' . $this->msg( 'parentheses' )->rawParams(
+                               Linker::userTalkLink( $rev->getUser(), $rev->getUserText() ) )->escaped() . ' ';
                } else {
                        $userlink = '';
                }
@@ -833,23 +833,9 @@ class ContribsPager extends ReverseChronologicalPager {
                        $mflag = '';
                }
 
-               // Don't show useless link to people who cannot hide revisions
-               $canHide = $user->isAllowed( 'deleterevision' );
-               if ( $canHide || ( $rev->getVisibility() && $user->isAllowed( 'deletedhistory' ) ) ) {
-                       if ( !$rev->userCan( Revision::DELETED_RESTRICTED, $user ) ) {
-                               $del = Linker::revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
-                       } else {
-                               $query = array(
-                                       'type'   => 'revision',
-                                       'target' => $page->getPrefixedDbkey(),
-                                       'ids'    => $rev->getId()
-                               );
-                               $del = Linker::revDeleteLink( $query,
-                                       $rev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide );
-                       }
+               $del = Linker::getRevDeleteLink( $user, $rev, $page );
+               if ( $del !== '' ) {
                        $del .= ' ';
-               } else {
-                       $del = '';
                }
 
                $diffHistLinks = '(' . $difftext . $this->messages['pipe-separator'] . $histlink . ')';
@@ -857,7 +843,7 @@ class ContribsPager extends ReverseChronologicalPager {
 
                # Denote if username is redacted for this edit
                if ( $rev->isDeleted( Revision::DELETED_USER ) ) {
-                       $ret .= " <strong>" . wfMsgHtml( 'rev-deleted-user-contribs' ) . "</strong>";
+                       $ret .= " <strong>" . $this->msg( 'rev-deleted-user-contribs' )->escaped() . "</strong>";
                }
 
                # Tags, if any.