From 9db190c7e736ec8d063187d4241b59feaf7dc2d1 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 22 Jun 2011 11:28:20 +0200 Subject: update to MediaWiki 1.17.0 --- includes/Credits.php | 134 +++++++++++++++++++++++++++++---------------------- 1 file changed, 77 insertions(+), 57 deletions(-) (limited to 'includes/Credits.php') diff --git a/includes/Credits.php b/includes/Credits.php index 91ba3f16..e4c8be54 100644 --- a/includes/Credits.php +++ b/includes/Credits.php @@ -1,50 +1,51 @@ . * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + * @file * @author */ class Credits { - /** * This is largely cadged from PageHistory::history * @param $article Article object */ public static function showPage( Article $article ) { global $wgOut; - + wfProfileIn( __METHOD__ ); - + $wgOut->setPageTitle( $article->mTitle->getPrefixedText() ); $wgOut->setSubtitle( wfMsg( 'creditspage' ) ); $wgOut->setArticleFlag( false ); $wgOut->setArticleRelated( true ); $wgOut->setRobotPolicy( 'noindex,nofollow' ); - - if( $article->mTitle->getArticleID() == 0 ) { + + if ( $article->mTitle->getArticleID() == 0 ) { $s = wfMsg( 'nocredits' ); } else { - $s = self::getCredits($article, -1 ); + $s = self::getCredits( $article, -1 ); } - + $wgOut->addHTML( $s ); - + wfProfileOut( __METHOD__ ); } @@ -59,7 +60,7 @@ class Credits { wfProfileIn( __METHOD__ ); $s = ''; - if( isset( $cnt ) && $cnt != 0 ){ + if ( isset( $cnt ) && $cnt != 0 ) { $s = self::getAuthor( $article ); if ( $cnt > 1 || $cnt < 0 ) { $s .= ' ' . self::getContributors( $article, $cnt - 1, $showIfMax ); @@ -74,13 +75,13 @@ class Credits { * Get the last author with the last modification time * @param $article Article object */ - protected static function getAuthor( Article $article ){ + protected static function getAuthor( Article $article ) { global $wgLang; $user = User::newFromId( $article->getUser() ); $timestamp = $article->getTimestamp(); - if( $timestamp ){ + if ( $timestamp ) { $d = $wgLang->date( $article->getTimestamp(), true ); $t = $wgLang->time( $article->getTimestamp(), true ); } else { @@ -99,62 +100,72 @@ class Credits { */ protected static function getContributors( Article $article, $cnt, $showIfMax ) { global $wgLang, $wgHiddenPrefs; - + $contributors = $article->getContributors(); - + $others_link = false; - + # Hmm... too many to fit! - if( $cnt > 0 && $contributors->count() > $cnt ){ + if ( $cnt > 0 && $contributors->count() > $cnt ) { $others_link = self::othersLink( $article ); - if( !$showIfMax ) - return wfMsg( 'othercontribs', $others_link ); + if ( !$showIfMax ) + return wfMsgExt( 'othercontribs', 'parsemag', $others_link, $contributors->count() ); } - + $real_names = array(); $user_names = array(); $anon_ips = array(); - + # Sift for real versus user names - foreach( $contributors as $user ) { + foreach ( $contributors as $user ) { $cnt--; - if( $user->isLoggedIn() ){ + if ( $user->isLoggedIn() ) { $link = self::link( $user ); - if( !in_array( 'realname', $wgHiddenPrefs ) && $user->getRealName() ) + if ( !in_array( 'realname', $wgHiddenPrefs ) && $user->getRealName() ) { $real_names[] = $link; - else + } else { $user_names[] = $link; + } } else { $anon_ips[] = self::link( $user ); } - if( $cnt == 0 ) break; + + if ( $cnt == 0 ) { + break; + } } - + if ( count( $real_names ) ) { $real = $wgLang->listToText( $real_names ); } else { $real = false; } - + # "ThisSite user(s) A, B and C" - if( count( $user_names ) ){ - $user = wfMsgExt( 'siteusers', array( 'parsemag' ), - $wgLang->listToText( $user_names ), count( $user_names ) ); + if ( count( $user_names ) ) { + $user = wfMsgExt( + 'siteusers', + 'parsemag', + $wgLang->listToText( $user_names ), count( $user_names ) + ); } else { $user = false; } - if( count( $anon_ips ) ){ - $anon = wfMsgExt( 'anonusers', array( 'parsemag' ), - $wgLang->listToText( $anon_ips ), count( $anon_ips ) ); + if ( count( $anon_ips ) ) { + $anon = wfMsgExt( + 'anonusers', + 'parsemag', + $wgLang->listToText( $anon_ips ), count( $anon_ips ) + ); } else { $anon = false; } - + # This is the big list, all mooshed together. We sift for blank strings $fulllist = array(); - foreach( array( $real, $user, $anon, $others_link ) as $s ){ - if( $s ){ + foreach ( array( $real, $user, $anon, $others_link ) as $s ) { + if ( $s ) { array_push( $fulllist, $s ); } } @@ -163,7 +174,9 @@ class Credits { $creds = $wgLang->listToText( $fulllist ); # "Based on work by ..." - return strlen( $creds ) ? wfMsg( 'othercontribs', $creds ) : ''; + return strlen( $creds ) + ? wfMsgExt( 'othercontribs', 'parsemag', $creds, count( $fulllist ) ) + : ''; } /** @@ -173,10 +186,11 @@ class Credits { */ protected static function link( User $user ) { global $wgUser, $wgHiddenPrefs; - if( !in_array( 'realname', $wgHiddenPrefs ) && !$user->isAnon() ) + if ( !in_array( 'realname', $wgHiddenPrefs ) && !$user->isAnon() ) { $real = $user->getRealName(); - else + } else { $real = false; + } $skin = $wgUser->getSkin(); $page = $user->isAnon() ? @@ -188,20 +202,20 @@ class Credits { /** * Get a link to $user's user page - * @param $user_name String: user name - * @param $linkText String: optional display + * @param $user User object * @return String: html */ protected static function userLink( User $user ) { $link = self::link( $user ); - if( $user->isAnon() ){ + if ( $user->isAnon() ) { return wfMsgExt( 'anonuser', array( 'parseinline', 'replaceafter' ), $link ); } else { global $wgHiddenPrefs; - if( !in_array( 'realname', $wgHiddenPrefs ) && $user->getRealName() ) + if ( !in_array( 'realname', $wgHiddenPrefs ) && $user->getRealName() ) { return $link; - else - return wfMsgExt( 'siteuser', array( 'parseinline', 'replaceafter' ), $link ); + } else { + return wfMsgExt( 'siteuser', 'parsemag', $link, $user->getName() ); + } } } @@ -213,6 +227,12 @@ class Credits { protected static function othersLink( Article $article ) { global $wgUser; $skin = $wgUser->getSkin(); - return $skin->link( $article->getTitle(), wfMsgHtml( 'others' ), array(), array( 'action' => 'credits' ), array( 'known' ) ); + return $skin->link( + $article->getTitle(), + wfMsgHtml( 'others' ), + array(), + array( 'action' => 'credits' ), + array( 'known' ) + ); } } -- cgit v1.2.3-54-g00ecf