Index: CoreParserFunctions.php
===================================================================
--- CoreParserFunctions.php	(revision 49323)
+++ CoreParserFunctions.php	(working copy)
@@ -66,6 +66,13 @@
 		$parser->setFunctionHook( 'talkpagenamee',    array( __CLASS__, 'talkpagenamee'    ), SFH_NO_HASH );
 		$parser->setFunctionHook( 'subjectpagename',  array( __CLASS__, 'subjectpagename'  ), SFH_NO_HASH );
 		$parser->setFunctionHook( 'subjectpagenamee', array( __CLASS__, 'subjectpagenamee' ), SFH_NO_HASH );
+		$parser->setFunctionHook( 'revisionid',       array( __CLASS__, 'revisionid'       ), SFH_NO_HASH );
+		$parser->setFunctionHook( 'revisiontimestamp',array( __CLASS__, 'revisiontimestamp'), SFH_NO_HASH );
+		$parser->setFunctionHook( 'revisionday',      array( __CLASS__, 'revisionday'      ), SFH_NO_HASH );
+		$parser->setFunctionHook( 'revisionday2',     array( __CLASS__, 'revisionday2'     ), SFH_NO_HASH );
+		$parser->setFunctionHook( 'revisionmonth',    array( __CLASS__, 'revisionmonth'    ), SFH_NO_HASH );
+		$parser->setFunctionHook( 'revisionyear',     array( __CLASS__, 'revisionyear'     ), SFH_NO_HASH );
+		$parser->setFunctionHook( 'revisionuser',     array( __CLASS__, 'revisionuser'     ), SFH_NO_HASH );
 		$parser->setFunctionHook( 'tag',              array( __CLASS__, 'tagObj'           ), SFH_OBJECT_ARGS );
 		$parser->setFunctionHook( 'formatdate',		  array( __CLASS__, 'formatDate'	   ) );
 		$parser->setFunctionHook( 'groupconvert', 	  array( __CLASS__, 'groupconvert'	   ), SFH_NO_HASH );
@@ -413,6 +420,59 @@
 			return '';
 		return $t->getSubjectPage()->getPrefixedUrl();
 	}
+        /*
+         * Functions to get revision informations, corresponding to the magic words
+         * of the same names
+        */
+	static function revisionid( $parser, $title = null ) {
+		$t = Title::newFromText( $title );
+		if ( is_null($t) )
+			return '';
+		if($t->equals($parser->getTitle()))
+			return $parser->getRevisionId();
+		$a = new Article($t, 0);
+		return $a->getRevIdFetched();
+	}
+	static function revisiontimestamp( $parser, $title = null ) {
+		$t = Title::newFromText( $title );
+		if ( is_null($t) )
+			return '';
+		if($t->equals($parser->getTitle()))
+			return $parser->getRevisionTimestamp();
+		$a = new Article($t, 0);
+		return $a->getTimestamp();
+	}
+	static function revisionday( $parser, $title = null ) {
+		$timestamp = self::revisiontimestamp( $parser, $title);
+		if ( $timestamp == '' ) return '';
+		return intval( substr( $timestamp, 6, 2 ) );
+	}
+	static function revisionday2( $parser, $title = null ) {
+		$timestamp = self::revisiontimestamp( $parser, $title);
+		if ( $timestamp == '' ) return '';
+		return substr( $timestamp, 6, 2 );
+	}
+	static function revisionmonth( $parser, $title = null ) {
+		$timestamp = self::revisiontimestamp( $parser, $title);
+		if ( $timestamp == '' ) return '';
+		return intval( substr( $timestamp, 4, 2 ) );
+	}
+	static function revisionyear( $parser, $title = null ) {
+		$timestamp = self::revisiontimestamp( $parser, $title);
+		if ( $timestamp == '' ) return '';
+		return substr( $timestamp, 0, 4 );
+	}
+	static function revisionuser( $parser, $title = null ) {
+		$t = Title::newFromText( $title );
+		if ( is_null($t) )
+			return '';
+		if($t->equals($parser->getTitle())){
+			global $wgUser;
+			return $wgUser->getName();
+		}
+		$a = new Article($t, 0);
+		return $a->getUserText();
+	}
 	
 	/**
 	 * Return the number of pages in the given category, or 0 if it's nonexis-
