w/s diff. mostly eol w/s and using only tabs of width 4 to indent.
[lhc/web/wiklou.git] / includes / specials / SpecialContributions.php
index d0227d6..4823af6 100644 (file)
@@ -40,6 +40,7 @@ class SpecialContributions extends SpecialPage {
 
                $this->setHeaders();
                $this->outputHeader();
+               $wgOut->addModuleStyles( 'mediawiki.special' );
 
                $this->opts = array();
 
@@ -58,7 +59,7 @@ class SpecialContributions extends SpecialPage {
                        $this->opts['contribs'] = 'newbie';
                }
 
-               $this->opts['deletedOnly'] = $wgRequest->getCheck( 'deletedOnly' );
+               $this->opts['deletedOnly'] = $wgRequest->getBool( 'deletedOnly' );
 
                if( !strlen( $target ) ) {
                        $wgOut->addHTML( $this->getForm() );
@@ -67,7 +68,7 @@ class SpecialContributions extends SpecialPage {
 
                $this->opts['limit'] = $wgRequest->getInt( 'limit', $wgUser->getOption('rclimit') );
                $this->opts['target'] = $target;
-               $this->opts['topOnly'] = $wgRequest->getCheck( 'topOnly' );
+               $this->opts['topOnly'] = $wgRequest->getBool( 'topOnly' );
 
                $nt = Title::makeTitleSafe( NS_USER, $target );
                if( !$nt ) {
@@ -184,7 +185,7 @@ class SpecialContributions extends SpecialPage {
         * @todo Fixme: almost the same as getSubTitle in SpecialDeletedContributions.php. Could be combined.
         */
        protected function contributionsSub( $nt, $id ) {
-               global $wgSysopUserBans, $wgLang, $wgUser, $wgOut;
+               global $wgLang, $wgUser, $wgOut;
 
                $sk = $wgUser->getSkin();
 
@@ -196,78 +197,7 @@ class SpecialContributions extends SpecialPage {
                $userObj = User::newFromName( $nt->getText(), /* check for username validity not needed */ false );
                $talk = $nt->getTalkPage();
                if( $talk ) {
-                       # Talk page link
-                       $tools[] = $sk->link( $talk, wfMsgHtml( 'sp-contributions-talk' ) );
-                       if( ( $id !== null && $wgSysopUserBans ) || ( $id === null && IP::isIPAddress( $nt->getText() ) ) ) {
-                               if( $wgUser->isAllowed( 'block' ) ) { # Block / Change block / Unblock links
-                                       if ( $userObj->isBlocked() ) {
-                                               $tools[] = $sk->linkKnown( # Change block link
-                                                       SpecialPage::getTitleFor( 'Blockip', $nt->getDBkey() ),
-                                                       wfMsgHtml( 'change-blocklink' )
-                                               );
-                                               $tools[] = $sk->linkKnown( # Unblock link
-                                                       SpecialPage::getTitleFor( 'Ipblocklist' ),
-                                                       wfMsgHtml( 'unblocklink' ),
-                                                       array(),
-                                                       array(
-                                                               'action' => 'unblock',
-                                                               'ip' => $nt->getDBkey()
-                                                       )
-                                               );
-                                       }
-                                       else { # User is not blocked
-                                               $tools[] = $sk->linkKnown( # Block link
-                                                       SpecialPage::getTitleFor( 'Blockip', $nt->getDBkey() ),
-                                                       wfMsgHtml( 'blocklink' )
-                                               );
-                                       }
-                               }
-                               # Block log link
-                               $tools[] = $sk->linkKnown(
-                                       SpecialPage::getTitleFor( 'Log' ),
-                                       wfMsgHtml( 'sp-contributions-blocklog' ),
-                                       array(),
-                                       array(
-                                               'type' => 'block',
-                                               'page' => $nt->getPrefixedText()
-                                       )
-                               );
-                       }
-                       # Uploads
-                       $tools[] = $sk->linkKnown(
-                               SpecialPage::getTitleFor( 'Listfiles' ),
-                               wfMsgHtml( 'sp-contributions-uploads' ),
-                               array(),
-                               array( 'user' => $nt->getText() )
-                       );
-                       
-                       # Other logs link
-                       $tools[] = $sk->linkKnown(
-                               SpecialPage::getTitleFor( 'Log' ),
-                               wfMsgHtml( 'sp-contributions-logs' ),
-                               array(),
-                               array( 'user' => $nt->getText() )
-                       );
-
-                       # Add link to deleted user contributions for priviledged users
-                       if( $wgUser->isAllowed( 'deletedhistory' ) ) {
-                               $tools[] = $sk->linkKnown(
-                                       SpecialPage::getTitleFor( 'DeletedContributions', $nt->getDBkey() ),
-                                       wfMsgHtml( 'sp-contributions-deleted' )
-                               );
-                       }
-
-                       # Add a link to change user rights for privileged users
-                       $userrightsPage = new UserrightsPage();
-                       if( $id !== null && $userrightsPage->userCanChangeRights( User::newFromId( $id ) ) ) {
-                               $tools[] = $sk->linkKnown(
-                                       SpecialPage::getTitleFor( 'Userrights', $nt->getDBkey() ),
-                                       wfMsgHtml( 'sp-contributions-userrights' )
-                               );
-                       }
-
-                       wfRunHooks( 'ContributionsToolLinks', array( $id, $nt, &$tools ) );
-
+                       $tools = self::getUserLinks( $nt, $talk, $userObj, $wgUser );
                        $links = $wgLang->pipeList( $tools );
 
                        // Show a note if the user is blocked and display the last block log entry.
@@ -296,13 +226,94 @@ class SpecialContributions extends SpecialPage {
                // languages that want to put the "for" bit right after $user but before
                // $links.  If 'contribsub' is around, use it for reverse compatibility,
                // otherwise use 'contribsub2'.
-               if( wfEmptyMsg( 'contribsub', wfMsg( 'contribsub' ) ) ) {
+               if( wfEmptyMsg( 'contribsub' ) ) {
                        return wfMsgHtml( 'contribsub2', $user, $links );
                } else {
                        return wfMsgHtml( 'contribsub', "$user ($links)" );
                }
        }
 
+       /**
+        * Links to different places.
+        * @param $userpage Title: Target user page
+        * @param $talkpage Title: Talk page
+        * @param $target User: Target user object
+        * @param $subject User: The viewing user ($wgUser is still checked in some cases, like userrights page!!)
+        */
+       public static function getUserLinks( Title $userpage, Title $talkpage, User $target, User $subject ) {
+
+               $sk = $subject->getSkin();
+               $id = $target->getId();
+               $username = $target->getName();
+
+               $tools[] = $sk->link( $talkpage, wfMsgHtml( 'sp-contributions-talk' ) );
+
+               if( ( $id !== null ) || ( $id === null && IP::isIPAddress( $username ) ) ) {
+                       if( $subject->isAllowed( 'block' ) ) { # Block / Change block / Unblock links
+                               if ( $target->isBlocked() ) {
+                                       $tools[] = $sk->linkKnown( # Change block link
+                                               SpecialPage::getTitleFor( 'Block', $username ),
+                                               wfMsgHtml( 'change-blocklink' )
+                                       );
+                                       $tools[] = $sk->linkKnown( # Unblock link
+                                               SpecialPage::getTitleFor( 'Unblock', $username ),
+                                               wfMsgHtml( 'unblocklink' )
+                                       );
+                               } else { # User is not blocked
+                                       $tools[] = $sk->linkKnown( # Block link
+                                               SpecialPage::getTitleFor( 'Block', $username ),
+                                               wfMsgHtml( 'blocklink' )
+                                       );
+                               }
+                       }
+                       # Block log link
+                       $tools[] = $sk->linkKnown(
+                               SpecialPage::getTitleFor( 'Log' ),
+                               wfMsgHtml( 'sp-contributions-blocklog' ),
+                               array(),
+                               array(
+                                       'type' => 'block',
+                                       'page' => $userpage->getPrefixedText()
+                               )
+                       );
+               }
+               # Uploads
+               $tools[] = $sk->linkKnown(
+                       SpecialPage::getTitleFor( 'Listfiles' ),
+                       wfMsgHtml( 'sp-contributions-uploads' ),
+                       array(),
+                       array( 'user' => $username )
+               );
+
+               # Other logs link
+               $tools[] = $sk->linkKnown(
+                       SpecialPage::getTitleFor( 'Log' ),
+                       wfMsgHtml( 'sp-contributions-logs' ),
+                       array(),
+                       array( 'user' => $username )
+               );
+
+               # Add link to deleted user contributions for priviledged users
+               if( $subject->isAllowed( 'deletedhistory' ) ) {
+                       $tools[] = $sk->linkKnown(
+                               SpecialPage::getTitleFor( 'DeletedContributions', $username ),
+                               wfMsgHtml( 'sp-contributions-deleted' )
+                       );
+               }
+
+               # Add a link to change user rights for privileged users
+               $userrightsPage = new UserrightsPage();
+               if( $id !== null && $userrightsPage->userCanChangeRights( $target ) ) {
+                       $tools[] = $sk->linkKnown(
+                               SpecialPage::getTitleFor( 'Userrights', $username ),
+                               wfMsgHtml( 'sp-contributions-userrights' )
+                       );
+               }
+
+               wfRunHooks( 'ContributionsToolLinks', array( $id, $userpage, &$tools ) );
+               return $tools;
+       }
+
        /**
         * Generates the namespace selector form with hidden attributes.
         * @return String: HTML fragment
@@ -379,9 +390,9 @@ class SpecialContributions extends SpecialPage {
                        Html::rawElement( 'p', array( 'style' => 'white-space: nowrap' ),
                                Xml::dateMenu( $this->opts['year'], $this->opts['month'] ) . ' ' .
                                Xml::submitButton( wfMsg( 'sp-contributions-submit' ) )
-                       ) . ' ';        
+                       ) . ' ';
                $explain = wfMsgExt( 'sp-contributions-explain', 'parseinline' );
-               if( !wfEmptyMsg( 'sp-contributions-explain', $explain ) ) {
+               if( !wfEmptyMsg( 'sp-contributions-explain' ) ) {
                        $f .= "<p id='mw-sp-contributions-explain'>{$explain}</p>";
                }
                $f .= Xml::closeElement('fieldset' ) .
@@ -464,10 +475,18 @@ class SpecialContributions extends SpecialPage {
                }
        }
 
+       /**
+        * @param $revision Revision
+        * @return string
+        */
        protected function feedItemAuthor( $revision ) {
                return $revision->getUserText();
        }
 
+       /**
+        * @param $revision Revision
+        * @return string
+        */
        protected function feedItemDesc( $revision ) {
                if( $revision ) {
                        return '<p>' . htmlspecialchars( $revision->getUserText() ) . wfMsgForContent( 'colon-separator' ) .
@@ -621,7 +640,6 @@ class ContribsPager extends ReverseChronologicalPager {
                $classes = array();
 
                $page = Title::newFromRow( $row );
-               $page->resetArticleId( $row->rev_page ); // use process cache
                $link = $sk->link(
                        $page,
                        htmlspecialchars( $page->getPrefixedText() ),