Yaron Koren has uploaded a new change for review.
https://gerrit.wikimedia.org/r/124509
Change subject: Changed subtitle for old revisions - patch by Eli Handel
......................................................................
Changed subtitle for old revisions - patch by Eli Handel
Change-Id: Ib48ec710d91f9f9fc7e16d69487c7306b663e285
---
M ApprovedRevs.hooks.php
M i18n/en.json
M i18n/qqq.json
3 files changed, 170 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ApprovedRevs
refs/changes/09/124509/1
diff --git a/ApprovedRevs.hooks.php b/ApprovedRevs.hooks.php
index e391ca7..ccbd299 100644
--- a/ApprovedRevs.hooks.php
+++ b/ApprovedRevs.hooks.php
@@ -233,6 +233,167 @@
return self::showBlankIfUnapproved( $article,
$contentObject->mText );
}
+ /**
+ * Sets the subtitle when viewing old revisions of a page.
+ * This function's code is mostly copied from Article::setOldSubtitle(),
+ * and it is meant to serve as a replacement for that function, using
+ * the 'DisplayOldSubtitle' hook.
+ * This display has the following differences from the standard one:
+ * - It includes a link to the approved revision, which goes to the
+ * default page.
+ * - It includes a "diff" link alongside it.
+ * - The "Latest revision" link points to the correct revision ID,
+ * instead of to the default page (unless the latest revision is also
+ * the approved one).
+ *
+ * @author Eli Handel
+ */
+ static function setOldSubtitle( $article, $revisionID ) {
+ $title = $article->getTitle(); # Added for ApprovedRevs - and
removed hook
+
+ $unhide = $article->getContext()->getRequest()->getInt(
'unhide' ) == 1;
+
+ // Cascade unhide param in links for easy deletion browsing.
+ $extraParams = array();
+ if ( $unhide ) {
+ $extraParams['unhide'] = 1;
+ }
+
+ if ( $article->mRevision && $article->mRevision->getId() ===
$revisionID ) {
+ $revision = $article->mRevision;
+ } else {
+ $revision = Revision::newFromId( $revisionID );
+ }
+
+ $timestamp = $revision->getTimestamp();
+
+ $latestID = $article->getLatest(); // Modified for Approved Revs
+ $current = ( $revisionID == $latestID );
+ $approvedID = ApprovedRevs::getApprovedRevID( $title );
+ $language = $article->getContext()->getLanguage();
+ $user = $article->getContext()->getUser();
+
+ $td = $language->userTimeAndDate( $timestamp, $user );
+ $tddate = $language->userDate( $timestamp, $user );
+ $tdtime = $language->userTime( $timestamp, $user );
+
+ // Show the user links if they're allowed to see them.
+ // If hidden, then show them only if requested...
+ $userlinks = Linker::revUserTools( $revision, !$unhide );
+
+ $infomsg = $current && !wfMessage( 'revision-info-current'
)->isDisabled()
+ ? 'revision-info-current'
+ : 'revision-info';
+
+ $outputPage = $article->getContext()->getOutput();
+ $outputPage->addSubtitle( "<div id=\"mw-{$infomsg}\">" .
wfMessage( $infomsg,
+ $td )->rawParams( $userlinks )->params(
$revision->getID(), $tddate,
+ $tdtime, $revision->getUser() )->parse() . "</div>" );
+
+ // Created for Approved Revs
+ $latestLinkParams = array();
+ if ( $latestID != $approvedID ) {
+ $latestLinkParams['oldid'] = $latestID;
+ }
+ $lnk = $current
+ ? wfMessage( 'currentrevisionlink' )->escaped()
+ : Linker::linkKnown(
+ $title,
+ wfMessage( 'currentrevisionlink' )->escaped(),
+ array(),
+ $latestLinkParams + $extraParams
+ );
+ $curdiff = $current
+ ? wfMessage( 'diff' )->escaped()
+ : Linker::linkKnown(
+ $title,
+ wfMessage( 'diff' )->escaped(),
+ array(),
+ array(
+ 'diff' => 'cur',
+ 'oldid' => $revisionID
+ ) + $extraParams
+ );
+ $prev = $title->getPreviousRevisionID( $revisionID );
+ $prevlink = $prev
+ ? Linker::linkKnown(
+ $title,
+ wfMessage( 'previousrevision' )->escaped(),
+ array(),
+ array(
+ 'direction' => 'prev',
+ 'oldid' => $revisionID
+ ) + $extraParams
+ )
+ : wfMessage( 'previousrevision' )->escaped();
+ $prevdiff = $prev
+ ? Linker::linkKnown(
+ $title,
+ wfMessage( 'diff' )->escaped(),
+ array(),
+ array(
+ 'diff' => 'prev',
+ 'oldid' => $revisionID
+ ) + $extraParams
+ )
+ : wfMessage( 'diff' )->escaped();
+ $nextlink = $current
+ ? wfMessage( 'nextrevision' )->escaped()
+ : Linker::linkKnown(
+ $title,
+ wfMessage( 'nextrevision' )->escaped(),
+ array(),
+ array(
+ 'direction' => 'next',
+ 'oldid' => $revisionID
+ ) + $extraParams
+ );
+ $nextdiff = $current
+ ? wfMessage( 'diff' )->escaped()
+ : Linker::linkKnown(
+ $title,
+ wfMessage( 'diff' )->escaped(),
+ array(),
+ array(
+ 'diff' => 'next',
+ 'oldid' => $revisionID
+ ) + $extraParams
+ );
+
+ // Added for Approved Revs
+ $approved = ( $approvedID != null && $revisionID == $approvedID
);
+ $approvedlink = $approved
+ ? wfMessage( 'approvedrevs-approvedrevision'
)->escaped()
+ : Linker::linkKnown(
+ $title,
+ wfMessage( 'approvedrevs-approvedrevision'
)->escaped(),
+ array(),
+ $extraParams
+ );
+ $approveddiff = $approved
+ ? wfMessage( 'diff' )->escaped()
+ : Linker::linkKnown(
+ $title,
+ wfMessage( 'diff' )->escaped(),
+ array(),
+ array(
+ 'diff' => $approvedID,
+ 'oldid' => $revisionID
+ ) + $extraParams
+ );
+
+ $cdel = Linker::getRevDeleteLink( $user, $revision, $title );
+ if ( $cdel !== '' ) {
+ $cdel .= ' ';
+ }
+
+ // Modified for ApprovedRevs
+ $outputPage->addSubtitle( "<div id=\"mw-revision-nav\">" .
$cdel .
+ wfMessage( 'approvedrevs-revision-nav' )->rawParams(
+ $prevdiff, $prevlink, $approvedlink,
$approveddiff, $lnk, $curdiff, $nextlink, $nextdiff
+ )->escaped() . "</div>" );
+ }
+
/**
* If user is viewing the page via its main URL, and what they're
* seeing is the approved revision of the page, remove the standard
@@ -256,7 +417,9 @@
global $wgEnableParserCache;
$wgEnableParserCache = false;
}
- return true;
+ self::setOldSubtitle( $article, $revisionID );
+ // Don't show default Article::setOldSubtitle().
+ return false;
}
if ( ! $title->userCan( 'viewlinktolatest' ) ) {
diff --git a/i18n/en.json b/i18n/en.json
index ba07faa..170970c 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -30,6 +30,8 @@
"approvedrevs-approvelatest": "approve latest",
"approvedrevs-approvethisrev": "Approve this revision.",
"approvedrevs-viewlatestrev": "View the most recent revision.",
+ "approvedrevs-revision-nav": "($1) $2{{int:pipe-separator}}$3
($4){{int:pipe-separator}}$5 ($6){{int:pipe-separator}}$7 ($8)",
+ "approvedrevs-approvedrevision": "Approved revision",
"right-approverevisions": "Set a certain revision of a wiki page as
approved",
"right-viewlinktolatest": "View explanatory text at the top of pages that
have an approved revision"
-}
\ No newline at end of file
+}
diff --git a/i18n/qqq.json b/i18n/qqq.json
index 3e25cd6..ba1dc2d 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -34,6 +34,8 @@
"approvedrevs-approvelatest": "Used as link text in
[[Special:ApprovedRevs]].\n\nThis message means \"approve the latest
revision\".\n\nThe link follows a link to the page.",
"approvedrevs-approvethisrev": "Used as link text.\n\nSee also:\n*
{{msg-mw|Approvedrevs-blankpageshown}}\n*
{{msg-mw|Approvedrevs-viewlatestrev}}",
"approvedrevs-viewlatestrev": "Used as link text.\n\nThis message follows
any one of the messages:\n* {{msg-mw|Approvedrevs-notlatest}}\n*
{{msg-mw|Approvedrevs-blankpageshown}}",
+ "approvedrevs-revision-nav": "An expansion of the core MediaWiki message
'revision-nav.",
+ "approvedrevs-approvedrevision": "Used to link directly to the approved
revision.",
"right-approverevisions": "{{doc-right|approverevisions}}",
"right-viewlinktolatest": "{{doc-right|viewlinktolatest}}"
-}
\ No newline at end of file
+}
--
To view, visit https://gerrit.wikimedia.org/r/124509
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib48ec710d91f9f9fc7e16d69487c7306b663e285
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ApprovedRevs
Gerrit-Branch: master
Gerrit-Owner: Yaron Koren <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits