+ return wfMessage( $msg )->numParams( $numEdits, $numUsers )->parse();
+ }
+
+ /**
+ * Get a header for a specified revision.
+ *
+ * @param $rev Revision
+ * @param $complete String: 'complete' to get the header wrapped depending
+ * the visibility of the revision and a link to edit the page.
+ * @return String HTML fragment
+ */
+ private function getRevisionHeader( Revision $rev, $complete = '' ) {
+ $lang = $this->getLanguage();
+ $user = $this->getUser();
+ $revtimestamp = $rev->getTimestamp();
+ $timestamp = $lang->userTimeAndDate( $revtimestamp, $user );
+ $dateofrev = $lang->userDate( $revtimestamp, $user );
+ $timeofrev = $lang->userTime( $revtimestamp, $user );
+
+ $header = $this->msg(
+ $rev->isCurrent() ? 'currentrev-asof' : 'revisionasof',
+ $timestamp,
+ $dateofrev,
+ $timeofrev
+ )->escaped();
+
+ if ( $complete !== 'complete' ) {
+ return $header;
+ }
+
+ $title = $rev->getTitle();
+
+ $header = Linker::linkKnown( $title, $header, array(),
+ array( 'oldid' => $rev->getID() ) );
+
+ if ( $rev->userCan( Revision::DELETED_TEXT, $user ) ) {
+ $editQuery = array( 'action' => 'edit' );
+ if ( !$rev->isCurrent() ) {
+ $editQuery['oldid'] = $rev->getID();
+ }
+
+ $msg = $this->msg( $title->quickUserCan( 'edit', $user ) ? 'editold' : 'viewsourceold' )->escaped();
+ $header .= ' (' . Linker::linkKnown( $title, $msg, array(), $editQuery ) . ')';
+ if ( $rev->isDeleted( Revision::DELETED_TEXT ) ) {
+ $header = Html::rawElement( 'span', array( 'class' => 'history-deleted' ), $header );
+ }
+ } else {
+ $header = Html::rawElement( 'span', array( 'class' => 'history-deleted' ), $header );
+ }
+
+ return $header;