- function formatCredits( $name, $version = null, $subVersion = null, $author = null, $url = null, $description = null, $descriptionMsg = null ) {
- $viewvc = 'http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/?pathrev=';
- $extension = isset( $url ) ? "[$url $name]" : $name;
- $version = isset( $version ) ? wfMsg( 'version-version', $version ) : '';
- $subVersion = isset( $subVersion ) ? " [{$viewvc}{$subVersion} " . wfMsg( 'version-svn-revision', $subVersion ) . ']' : '';
-
- # Look for a localized description
- if( isset( $descriptionMsg ) ) {
- $msg = wfMsg( $descriptionMsg );
- if ( !wfEmptyMsg( $descriptionMsg, $msg ) && $msg != '' ) {
- $description = $msg;
+ function formatCredits( $extension ) {
+ $name = isset( $extension['name'] ) ? $extension['name'] : '[no name]';
+ if ( isset( $extension['path'] ) ) {
+ $svnInfo = self::getSvnInfo( dirname($extension['path']) );
+ $directoryRev = isset( $svnInfo['directory-rev'] ) ? $svnInfo['directory-rev'] : null;
+ $checkoutRev = isset( $svnInfo['checkout-rev'] ) ? $svnInfo['checkout-rev'] : null;
+ $viewvcUrl = isset( $svnInfo['viewvc-url'] ) ? $svnInfo['viewvc-url'] : null;
+ } else {
+ $directoryRev = null;
+ $checkoutRev = null;
+ $viewvcUrl = null;
+ }
+
+ # Make main link (or just the name if there is no URL)
+ if ( isset( $extension['url'] ) ) {
+ $mainLink = "[{$extension['url']} $name]";
+ } else {
+ $mainLink = $name;
+ }
+ if ( isset( $extension['version'] ) ) {
+ $versionText = '<span class="mw-version-ext-version">' .
+ wfMsg( 'version-version', $extension['version'] ) .
+ '</span>';
+ } else {
+ $versionText = '';
+ }
+
+ # Make subversion text/link
+ if ( $checkoutRev ) {
+ $svnText = wfMsg( 'version-svn-revision', $directoryRev, $checkoutRev );
+ $svnText = isset( $viewvcUrl ) ? "[$viewvcUrl $svnText]" : $svnText;
+ } else {
+ $svnText = false;
+ }
+
+ # Make description text
+ $description = isset ( $extension['description'] ) ? $extension['description'] : '';
+ if( isset ( $extension['descriptionmsg'] ) ) {
+ # Look for a localized description
+ $descriptionMsg = $extension['descriptionmsg'];
+ if( is_array( $descriptionMsg ) ) {
+ $descriptionMsgKey = $descriptionMsg[0]; // Get the message key
+ array_shift( $descriptionMsg ); // Shift out the message key to get the parameters only
+ array_map( "htmlspecialchars", $descriptionMsg ); // For sanity
+ $msg = wfMsg( $descriptionMsgKey, $descriptionMsg );
+ } else {
+ $msg = wfMsg( $descriptionMsg );