From: Niklas Laxström Date: Thu, 10 Feb 2011 15:29:54 +0000 (+0000) Subject: Refactor userLinks into it's own method X-Git-Tag: 1.31.0-rc.0~32076 X-Git-Url: http://git.cyclocoop.org/data/Fool?a=commitdiff_plain;h=1731f820159cf99865e791e2d40fbad687b1e491;p=lhc%2Fweb%2Fwiklou.git Refactor userLinks into it's own method --- diff --git a/includes/specials/SpecialContributions.php b/includes/specials/SpecialContributions.php index d0227d6bf8..ffd7e1429a 100644 --- a/includes/specials/SpecialContributions.php +++ b/includes/specials/SpecialContributions.php @@ -184,7 +184,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 +196,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. @@ -303,6 +232,93 @@ class SpecialContributions extends SpecialPage { } } + /** + * 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 ) { + global $wgSysopUserBans; + + $sk = $subject->getSkin(); + $id = $target->getId(); + $username = $target->getName(); + + $tools[] = $sk->link( $talkpage, wfMsgHtml( 'sp-contributions-talk' ) ); + + if( ( $id !== null && $wgSysopUserBans ) || ( $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( 'Blockip', $username ), + wfMsgHtml( 'change-blocklink' ) + ); + $tools[] = $sk->linkKnown( # Unblock link + SpecialPage::getTitleFor( 'Ipblocklist' ), + wfMsgHtml( 'unblocklink' ), + array(), + array( + 'action' => 'unblock', + 'ip' => $username + ) + ); + } else { # User is not blocked + $tools[] = $sk->linkKnown( # Block link + SpecialPage::getTitleFor( 'Blockip', $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