r74020 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r74019‎ | r74020 | r74021 >
Date:13:50, 30 September 2010
Author:yaron
Status:deferred
Tags:
Comment:
Tag for version 0.4
Modified paths:
  • /tags/extensions/ApprovedRevs/REL_0_4 (added) (history)

Diff [purge]

Index: tags/extensions/ApprovedRevs/REL_0_4/maintenance/approveAllPages.php
@@ -0,0 +1,72 @@
 2+<?php
 3+
 4+/**
 5+ * This script approves the current revision of all pages that are in an
 6+ * approvable namespace, and do not already have an approved revision.
 7+ *
 8+ * Usage:
 9+ * no parameters
 10+ *
 11+ * This program is free software; you can redistribute it and/or modify
 12+ * it under the terms of the GNU General Public License as published by
 13+ * the Free Software Foundation; either version 2 of the License, or
 14+ * (at your option) any later version.
 15+ *
 16+ * This program is distributed in the hope that it will be useful,
 17+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 18+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 19+ * GNU General Public License for more details.
 20+ *
 21+ * You should have received a copy of the GNU General Public License along
 22+ * with this program; if not, write to the Free Software Foundation, Inc.,
 23+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 24+ * http://www.gnu.org/copyleft/gpl.html
 25+ *
 26+ * @author Jeroen De Dauw
 27+ * @author Yaron Koren
 28+ * @ingroup Maintenance
 29+ */
 30+
 31+require_once( dirname( __FILE__ ) . '/../../../maintenance/Maintenance.php' );
 32+
 33+class ApproveAllPages extends Maintenance {
 34+
 35+ public function __construct() {
 36+ parent::__construct();
 37+
 38+ $this->mDescription = "Approve the current revision of all pages that do not yet have an approved revision.";
 39+ }
 40+
 41+ public function execute() {
 42+ global $wgTitle;
 43+
 44+ $dbr = wfGetDB( DB_SLAVE );
 45+
 46+ $pages = $dbr->select(
 47+ 'page',
 48+ array(
 49+ 'page_id',
 50+ 'page_latest'
 51+ )
 52+ );
 53+
 54+ while ( $page = $pages->fetchObject() ) {
 55+ $title = Title::newFromID( $page->page_id );
 56+ // some extensions, like Semantic Forms, need $wgTitle
 57+ // set as well
 58+ $wgTitle = $title;
 59+ if ( ApprovedRevs::pageIsApprovable( $title ) &&
 60+ ! ApprovedRevs::hasApprovedRevision( $title ) ) {
 61+ ApprovedRevs::setApprovedRevID( $title, $page->page_latest, true );
 62+ $this->output( wfTimestamp( TS_DB ) . ' Approved the last revision of page "' . $title->getFullText() . '".' );
 63+ }
 64+ }
 65+
 66+
 67+ $this->output( "\n Finished setting all current revisions to approved. \n" );
 68+ }
 69+
 70+}
 71+
 72+$maintClass = "ApproveAllPages";
 73+require_once( DO_MAINTENANCE );
Property changes on: tags/extensions/ApprovedRevs/REL_0_4/maintenance/approveAllPages.php
___________________________________________________________________
Added: svn:eol-style
174 + native
Index: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs_body.php
@@ -0,0 +1,195 @@
 2+<?php
 3+/**
 4+ * Main class for the Approved Revs extension.
 5+ *
 6+ * @file
 7+ * @ingroup Extensions
 8+ *
 9+ * @author Yaron Koren
 10+ */
 11+
 12+class ApprovedRevs {
 13+ /**
 14+ * Gets the approved revision ID for this page, or null if there isn't
 15+ * one.
 16+ */
 17+ public static function getApprovedRevID( $title ) {
 18+ if ( ! self::pageIsApprovable( $title ) ) {
 19+ return null;
 20+ }
 21+ $dbr = wfGetDB( DB_SLAVE );
 22+ $page_id = $title->getArticleId();
 23+ $rev_id = $dbr->selectField( 'approved_revs', 'rev_id', array( 'page_id' => $page_id ) );
 24+ return $rev_id;
 25+ }
 26+
 27+ /**
 28+ * Returns whether or not this page has a revision ID.
 29+ */
 30+ public static function hasApprovedRevision( $title ) {
 31+ $revision_id = self::getApprovedRevID( $title );
 32+ return ( ! empty( $revision_id ) );
 33+ }
 34+
 35+ /**
 36+ * Returns the content of the approved revision of this page, or null
 37+ * if there isn't one.
 38+ */
 39+ public static function getApprovedContent( $title ) {
 40+ $revision_id = ApprovedRevs::getApprovedRevID( $title );
 41+ if ( empty( $revision_id ) ) {
 42+ return null;
 43+ }
 44+ $article = new Article( $title, $revision_id );
 45+ return( $article->getContent() );
 46+ }
 47+
 48+ /**
 49+ * Helper function - returns whether the user is currently requesting
 50+ * a page via the simple URL for it - not specfying a version number,
 51+ * not editing the page, etc.
 52+ */
 53+ public static function isDefaultPageRequest() {
 54+ // this first test seems to no longer work with MW 1.16
 55+ /*
 56+ if ( $title->mArticleID > -1 ) {
 57+ return true;
 58+ }
 59+ */
 60+ global $wgRequest;
 61+ if ( $wgRequest->getCheck( 'oldid' ) ) {
 62+ return false;
 63+ }
 64+ // check if it's an action other than viewing
 65+ global $wgRequest;
 66+ if ( $wgRequest->getCheck( 'action' ) &&
 67+ $wgRequest->getVal( 'action' ) != 'view' &&
 68+ $wgRequest->getVal( 'action' ) != 'purge' &&
 69+ $wgRequest->getVal( 'action' ) != 'render' ) {
 70+ return false;
 71+ }
 72+ return true;
 73+ }
 74+
 75+ /**
 76+ * Returns whether this page can be approved - either because it's in
 77+ * a supported namespace, or because it's been specially marked as
 78+ * approvable. Also stores the boolean answer as a field in the page
 79+ * object, to speed up processing if it's called more than once.
 80+ */
 81+ public static function pageIsApprovable( $title ) {
 82+ // if this function was already called for this page, the
 83+ // value should have been stored as a field in the $title object
 84+ if ( isset( $title->isApprovable ) ) {
 85+ return $title->isApprovable;
 86+ }
 87+
 88+ // check the namespace
 89+ global $egApprovedRevsNamespaces;
 90+ if ( in_array( $title->getNamespace(), $egApprovedRevsNamespaces ) ) {
 91+ $title->isApprovable = true;
 92+ return true;
 93+ }
 94+
 95+ // it's not in an included namespace, so check for the page
 96+ // property - for some reason, calling the standard
 97+ // getProperty() function doesn't work, so we just do a DB
 98+ // query on the page_props table
 99+ $dbr = wfGetDB( DB_SLAVE );
 100+ $res = $dbr->select( 'page_props', 'COUNT(*)',
 101+ array(
 102+ 'pp_page' => $title->getArticleID(),
 103+ 'pp_propname' => 'approvedrevs',
 104+ 'pp_value' => 'y'
 105+ )
 106+ );
 107+ $row = $dbr->fetchRow( $res );
 108+ $isApprovable = ( $row[0] == '1' );
 109+ $title->isApprovable = $isApprovable;
 110+ return $isApprovable;
 111+ }
 112+
 113+ public static function saveApprovedRevIDInDB( $title, $rev_id ) {
 114+ $dbr = wfGetDB( DB_MASTER );
 115+ $page_id = $title->getArticleId();
 116+ $old_rev_id = $dbr->selectField( 'approved_revs', 'rev_id', array( 'page_id' => $page_id ) );
 117+ if ( $old_rev_id ) {
 118+ $dbr->update( 'approved_revs', array( 'rev_id' => $rev_id ), array( 'page_id' => $page_id ) );
 119+ } else {
 120+ $dbr->insert( 'approved_revs', array( 'page_id' => $page_id, 'rev_id' => $rev_id ) );
 121+ }
 122+ }
 123+
 124+ /**
 125+ * Sets a certain revision as the approved one for this page in the
 126+ * approved_revs DB table; calls a "links update" on this revision
 127+ * so that category information can be stored correctly, as well as
 128+ * info for extensions such as Semantic MediaWiki; and logs the action.
 129+ */
 130+ public static function setApprovedRevID( $title, $rev_id, $is_latest = false ) {
 131+ self::saveApprovedRevIDInDB( $title, $rev_id );
 132+ // if the revision being approved is definitely the latest
 133+ // one, there's no need to call the parser on it
 134+ if ( !$is_latest ) {
 135+ $parser = new Parser();
 136+ $parser->setTitle( $title );
 137+ $article = new Article( $title, $rev_id );
 138+ $text = $article->getContent();
 139+ $options = new ParserOptions();
 140+ $parser->parse( $text, $title, $options, true, true, $rev_id );
 141+ $u = new LinksUpdate( $title, $parser->getOutput() );
 142+ $u->doUpdate();
 143+ }
 144+
 145+ $log = new LogPage( 'approval' );
 146+ $rev_url = $title->getFullURL( array( 'old_id' => $rev_id ) );
 147+ $rev_link = Xml::element(
 148+ 'a',
 149+ array( 'href' => $rev_url ),
 150+ $rev_id
 151+ );
 152+ $logParams = array( $rev_link );
 153+ $log->addEntry(
 154+ 'approve',
 155+ $title,
 156+ '',
 157+ $logParams
 158+ );
 159+
 160+ wfRunHooks( 'ApprovedRevsRevisionApproved', array( $parser, $title, $rev_id ) );
 161+ }
 162+
 163+ public static function deleteRevisionApproval( $title ) {
 164+ $dbr = wfGetDB( DB_MASTER );
 165+ $page_id = $title->getArticleId();
 166+ $dbr->delete( 'approved_revs', array( 'page_id' => $page_id ) );
 167+ }
 168+
 169+ /**
 170+ * Unsets the approved revision for this page in the approved_revs DB
 171+ * table; calls a "links update" on this page so that category
 172+ * information can be stored correctly, as well as info for
 173+ * extensions such as Semantic MediaWiki; and logs the action.
 174+ */
 175+ public static function unsetApproval( $title ) {
 176+ self::deleteRevisionApproval( $title );
 177+
 178+ $parser = new Parser();
 179+ $parser->setTitle( $title );
 180+ $article = new Article( $title );
 181+ $text = $article->getContent();
 182+ $options = new ParserOptions();
 183+ $parser->parse( $text, $title, $options );
 184+ $u = new LinksUpdate( $title, $parser->getOutput() );
 185+ $u->doUpdate();
 186+
 187+ $log = new LogPage( 'approval' );
 188+ $log->addEntry(
 189+ 'unapprove',
 190+ $title,
 191+ ''
 192+ );
 193+
 194+ wfRunHooks( 'ApprovedRevsRevisionUnapproved', array( $parser, $title ) );
 195+ }
 196+}
Property changes on: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs_body.php
___________________________________________________________________
Added: svn:eol-style
1197 + native
Index: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs.i18n.php
@@ -0,0 +1,769 @@
 2+<?php
 3+/**
 4+ * Internationalization file for the Approved Revs extension.
 5+ *
 6+ * @file
 7+ * @ingroup Extensions
 8+*/
 9+
 10+$messages = array();
 11+
 12+/** English
 13+ * @author Yaron Koren
 14+ */
 15+$messages['en'] = array(
 16+ // user messages
 17+ 'approvedrevs-desc' => 'Set a single revision of a page as approved',
 18+ 'approvedrevs-logname' => 'Revision approval log',
 19+ 'approvedrevs-logdesc' => 'This is the log of revisions that have been approved.',
 20+ 'approvedrevs-approve' => 'approve',
 21+ 'approvedrevs-unapprove' => 'unapprove',
 22+ 'approvedrevs-approvesuccess' => 'This revision of the page has been set as the approved version.',
 23+ 'approvedrevs-unapprovesuccess' => 'There is no longer an approved version for this page.
 24+Instead, the most recent revision will be shown.',
 25+ 'approvedrevs-unapprovesuccess2' => 'There is no longer an approved version for this page.
 26+Instead, a blank page will be shown.',
 27+ 'approvedrevs-approveaction' => 'set $2 as the approved revision for "[[$1]]"',
 28+ 'approvedrevs-unapproveaction' => 'unset approved revision for "[[$1]]"',
 29+ 'approvedrevs-notlatest' => 'This is the approved revision of this page; it is not the most recent.',
 30+ 'approvedrevs-approvedandlatest' => 'This is the approved revision of this page, as well as being the most recent.',
 31+ 'approvedrevs-viewlatest' => 'View most recent revision.',
 32+ 'approvedrevs-blankpageshown' => 'No revision has been approved for this page.',
 33+ 'approvedpages' => 'Approved pages',
 34+ 'approvedrevs-approvedpages-docu' => 'The following are the pages in the wiki that have an approved revision.',
 35+ 'unapprovedpages' => 'Unapproved pages',
 36+ 'approvedrevs-unapprovedpages-docu' => 'The following are the pages in the wiki that do not have an approved revision.',
 37+ 'right-approverevisions' => 'Set a certain revision of a wiki page as approved',
 38+ 'right-viewlinktolatest' => 'View explanatory text at the top of pages that have an approved revision',
 39+);
 40+
 41+/** Message documentation (Message documentation)
 42+ * @author EugeneZelenko
 43+ */
 44+$messages['qqq'] = array(
 45+ 'approvedrevs-approve' => '{{Identical|Approve}}',
 46+);
 47+
 48+/** Afrikaans (Afrikaans)
 49+ * @author Naudefj
 50+ */
 51+$messages['af'] = array(
 52+ 'approvedrevs-approve' => 'keur goed',
 53+ 'approvedrevs-viewlatest' => 'Wys mees onlangse hersiening.',
 54+ 'approvedpages' => 'Goedgekeurde bladsye',
 55+);
 56+
 57+/** Arabic (العربية)
 58+ * @author Moemin05
 59+ */
 60+$messages['ar'] = array(
 61+ 'approvedrevs-approve' => 'موافقة',
 62+ 'approvedrevs-unapprove' => 'إزالة موافقة',
 63+ 'approvedpages' => 'صفحات تمّت الموافقة عليها',
 64+ 'approvedrevs-approvedpages-docu' => 'صفحات الويكي التالية لها مراجعات موافق عليها.',
 65+);
 66+
 67+/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
 68+ * @author EugeneZelenko
 69+ * @author Jim-by
 70+ * @author Wizardist
 71+ */
 72+$messages['be-tarask'] = array(
 73+ 'approvedrevs-desc' => 'Зацьвердзіць адну вэрсію старонкі',
 74+ 'approvedrevs-logname' => 'Журнал зацьверджаньня вэрсіяў',
 75+ 'approvedrevs-logdesc' => 'Гэта журнал зацьверджаных вэрсіяў.',
 76+ 'approvedrevs-approve' => 'зацьвердзіць',
 77+ 'approvedrevs-unapprove' => 'адхіліць',
 78+ 'approvedrevs-approvesuccess' => 'Гэтая вэрсія старонкі была зацьверджаная.',
 79+ 'approvedrevs-unapprovesuccess' => 'Болей не існуе зацьверджанай вэрсіі гэтай старонкі.
 80+Замест яе будзе паказаная апошняя вэрсія.',
 81+ 'approvedrevs-unapprovesuccess2' => 'Болей не існуе зацьверджанай вэрсіі гэтай старонкі.
 82+Замест яе будзе паказаная пустая старонка.',
 83+ 'approvedrevs-approveaction' => 'зацьвердзіць $2 як зацьверджаную вэрсію старонкі «[[$1]]»',
 84+ 'approvedrevs-unapproveaction' => 'зьняць зацьверджаньне з вэрсіі старонкі «[[$1]]»',
 85+ 'approvedrevs-notlatest' => 'Гэта зацьверджаная вэрсія гэтай старонкі; гэта не апошняя вэрсія.',
 86+ 'approvedrevs-approvedandlatest' => 'Гэта зацьверджаная вэрсія гэтай старонкі, адначасова яна зьяўляецца апошняй вэрсіяй.',
 87+ 'approvedrevs-viewlatest' => 'Паказаць апошнюю вэрсію.',
 88+ 'approvedrevs-blankpageshown' => 'Для гэтай старонкі няма зацьверджанай вэрсіі.',
 89+ 'approvedpages' => 'Зацьверджаныя старонкі',
 90+ 'approvedrevs-approvedpages-docu' => 'Ніжэй пададзеныя старонкі {{GRAMMAR:родны|{{SITENAME}}}}, якія маюць зацьверджаныя вэрсіі.',
 91+ 'unapprovedpages' => 'Незацьверджаныя старонкі',
 92+ 'approvedrevs-unapprovedpages-docu' => 'Ніжэй пададзеныя старонкі {{GRAMMAR:родны|{{SITENAME}}}}, якія ня маюць зацьверджаных вэрсіяў.',
 93+ 'right-approverevisions' => 'зацьверджаньне вызначаных вэрсіяў вікі-старонак',
 94+ 'right-viewlinktolatest' => 'прагляд тлумачальнага тэксту ў версе старонак, якія маюць зацьверджаныя вэрсіі',
 95+);
 96+
 97+/** Breton (Brezhoneg)
 98+ * @author Y-M D
 99+ */
 100+$messages['br'] = array(
 101+ 'approvedrevs-desc' => 'Merkañ un adweladenn hepken eus ur bajenn evel aprouet',
 102+ 'approvedrevs-logname' => 'Marilh aprouadennoù an adweladennoù',
 103+ 'approvedrevs-logdesc' => 'Marilh an adweladennoù bet merket evel aprouet eo.',
 104+ 'approvedrevs-approve' => 'aprouiñ',
 105+ 'approvedrevs-unapprove' => 'Dizaprouiñ',
 106+ 'approvedrevs-approvesuccess' => 'An adweladenn-mañ eus ar bajenn a zo bet merket evel ar stumm aprouet.',
 107+ 'approvedrevs-unapprovesuccess' => "N'eus stumm aprouet ebet ken eus ar bajenn-mañ.
 108+E plas e vo lakaet an adweladenn nevesañ.",
 109+ 'approvedrevs-approveaction' => 'en deus merket $2 evel adweladenn aprouet "[[$1]]"',
 110+ 'approvedrevs-unapproveaction' => 'en deus nullet merkadur un adweladenn aprouet evit "[[$1]]"',
 111+ 'approvedrevs-notlatest' => "Adweladenn aprouet ar bajenn-mañ eo ; n'eo ket an hini nevesañ.",
 112+ 'approvedrevs-approvedandlatest' => 'Adweladenn aprouet ar bajenn-mañ eo, hag ivez an hini nevesañ.',
 113+ 'approvedrevs-viewlatest' => 'Gwelet an adweladenn nevesañ.',
 114+ 'approvedpages' => 'Pajennoù aprouet',
 115+ 'approvedrevs-approvedpages-docu' => 'Setu ar pajennoù wiki hag o deus un adweladenn aprouet.',
 116+ 'right-approverevisions' => 'Merkañ un adweladenn bennak eus ur bajenn wiki evel aprouet',
 117+ 'right-viewlinktolatest' => 'Gwelet an destenn displegañ e penn uhelañ ar pajennoù hag o deus un adweladenn aprouet',
 118+);
 119+
 120+/** Bosnian (Bosanski)
 121+ * @author CERminator
 122+ * @author Palapa
 123+ */
 124+$messages['bs'] = array(
 125+ 'approvedrevs-desc' => 'Postavljanje jedne revizije stranice kao odobrene',
 126+ 'approvedrevs-logname' => 'Zapisnik odobravanje revizija',
 127+ 'approvedrevs-logdesc' => 'Ovo je zapis revizija koje su odobrene.',
 128+ 'approvedrevs-approve' => 'odobri',
 129+ 'approvedrevs-unapprove' => 'neodobreno',
 130+ 'approvedrevs-approvesuccess' => 'Ova revizija stranice je postavljena kao odobrena verzija.',
 131+ 'approvedrevs-unapprovesuccess' => 'Više ne postoji odobrena verzija ove stranice.
 132+Umjesto toga, zadnja revizija će biti prikazana.',
 133+ 'approvedrevs-unapprovesuccess2' => 'Više ne postoji odobrena verzija ove stranice.
 134+Umjesto toga, bit će prikazana prazna stranica.',
 135+ 'approvedrevs-approveaction' => 'postavi $2 kao odobrenu reviziju za "[[$1]]"',
 136+ 'approvedrevs-unapproveaction' => 'ukloni odobrenu reviziju za "[[$1]]"',
 137+ 'approvedrevs-notlatest' => 'Ovo je odobrena verzija ove stranice; to nije najnovija verzija.',
 138+ 'approvedrevs-approvedandlatest' => 'Ovo je odobrena verzija ove stranice, a ujedno i najnovija.',
 139+ 'approvedrevs-viewlatest' => 'Pogledaj zadnju reviziju.',
 140+ 'approvedrevs-blankpageshown' => 'Nijedna revizija nije odobrena za ovu stranicu.',
 141+ 'approvedpages' => 'Odobrene stranice',
 142+ 'approvedrevs-approvedpages-docu' => 'Slijede stranice na ovoj wiki koje imaju odobrene revizije.',
 143+ 'unapprovedpages' => 'Neodobrene stranice',
 144+ 'approvedrevs-unapprovedpages-docu' => 'Slijede stranice na wiki koje nemaju odobrene revizije.',
 145+ 'right-approverevisions' => 'Postavi određenu reviziju wiki stranice kao odobrenu',
 146+ 'right-viewlinktolatest' => 'Vidi tekst objašnjenja na vrhu stranica koje imaju odobrenu reviziju',
 147+);
 148+
 149+/** Czech (Česky) */
 150+$messages['cs'] = array(
 151+ 'approvedrevs-approve' => 'schválit',
 152+);
 153+
 154+/** German (Deutsch)
 155+ * @author Kghbln
 156+ */
 157+$messages['de'] = array(
 158+ 'approvedrevs-desc' => 'Ermöglicht es, stets eine bestimmte Version einer Seite als bestätigte Version anzuzeigen',
 159+ 'approvedrevs-logname' => 'Versionsbestätigungs-Logbuch',
 160+ 'approvedrevs-logdesc' => 'In diesem Logbuch werden die Versionsbestätigungen von Seiten protokolliert.',
 161+ 'approvedrevs-approve' => 'bestätigen',
 162+ 'approvedrevs-unapprove' => 'ablehnen',
 163+ 'approvedrevs-approvesuccess' => 'Diese Version der Seite wurde als bestätigte Version festgelegt.',
 164+ 'approvedrevs-unapprovesuccess' => 'Nunmehr existiert keine bestätigte Version dieser Seite.
 165+Stattdessen wird die neueste Version angezeigt.',
 166+ 'approvedrevs-unapprovesuccess2' => 'Nunmehr existiert keine bestätigte Version dieser Seite.
 167+Stattdessen wird eine leere Seite angezeigt.',
 168+ 'approvedrevs-approveaction' => '$2 als bestätigte Version für „[[$1]]“ festlegen',
 169+ 'approvedrevs-unapproveaction' => 'bestätigte Version für „[[$1]]“ zurücknehmen',
 170+ 'approvedrevs-notlatest' => 'Dies ist die bestätigte Version dieser Seite, allerdings nicht die neueste Version.',
 171+ 'approvedrevs-approvedandlatest' => 'Dies ist die bestätigte sowie die neueste Version dieser Seite.',
 172+ 'approvedrevs-viewlatest' => 'Die neueste Version ansehen.',
 173+ 'approvedrevs-blankpageshown' => 'Keine Version dieser Seite wurde bislang bestätigt.',
 174+ 'approvedpages' => 'Bestätigte Seiten',
 175+ 'approvedrevs-approvedpages-docu' => 'Die folgenden Seiten sind die Seiten dieses Wikis, die eine bestätigte Version haben.',
 176+ 'unapprovedpages' => 'Nicht bestätigte Seiten',
 177+ 'approvedrevs-unapprovedpages-docu' => 'Die folgenden Seiten sind die Seiten dieses Wikis, die keine bestätigte Version haben.',
 178+ 'right-approverevisions' => 'Eine bestimmte Version einer Wikiseite als bestätigt festlegen',
 179+ 'right-viewlinktolatest' => 'Erläuternde Hinweise im Kopf der Seiten anzeigen, die eine bestätigte Version haben.',
 180+);
 181+
 182+/** Lower Sorbian (Dolnoserbski)
 183+ * @author Michawiki
 184+ */
 185+$messages['dsb'] = array(
 186+ 'approvedrevs-desc' => 'Wěstu wersiju boka ako pśizwólonu nastajiś',
 187+ 'approvedrevs-logname' => 'Protokol pśizwólonych wersijow',
 188+ 'approvedrevs-logdesc' => 'To jo protokol wersijow, kótarež su se pśizwólili.',
 189+ 'approvedrevs-approve' => 'pśizwóliś',
 190+ 'approvedrevs-unapprove' => 'zakazaś',
 191+ 'approvedrevs-approvesuccess' => 'Toś ta wersija boka jo se ako pśizwólona wersija nastajiła.',
 192+ 'approvedrevs-unapprovesuccess' => 'Njejo wěcej pśizwólona wersija za toś ten bok.
 193+Město togo nejnowša wersija se pokažo.',
 194+ 'approvedrevs-approveaction' => '$2 ako pśizwólonu wersiju za "[[$1]]" nastajiś',
 195+ 'approvedrevs-unapproveaction' => 'Pśizwólonu wersiju za "[[$1]]" anulěrowaś',
 196+ 'approvedrevs-notlatest' => 'To jo pśizwólona wersija toś togo boka; njejo nejnowša.',
 197+ 'approvedrevs-approvedandlatest' => 'To jo pśizwólona wersija toś togo boka a teke nejnowša.',
 198+ 'approvedrevs-viewlatest' => 'Nejnowšu wersiju pokazaś',
 199+ 'approvedpages' => 'Pśizwólone boki',
 200+ 'approvedrevs-approvedpages-docu' => 'Slědujuce boki we wikiju maju pśizwólonu wersiju.',
 201+ 'right-approverevisions' => 'Wěstu wersiju wikiboka ako pśizwólonu nastajiś',
 202+ 'right-viewlinktolatest' => 'Tekst wujasnjenja górjejce na bokach pokazaś, kótarež maju pśizwólonu wersiju',
 203+);
 204+
 205+/** Greek (Ελληνικά)
 206+ * @author Περίεργος
 207+ */
 208+$messages['el'] = array(
 209+ 'approvedrevs-desc' => 'Καθορίζει μια ενιαία αναθεώρηση μιας σελίδας όπως έχει εγκριθεί',
 210+ 'approvedrevs-logname' => 'Ημερολόγιο καταγραφής της αποδοχής των αναθεωρήσεων',
 211+ 'approvedrevs-logdesc' => 'Αυτό είναι το ημερολόγιο των αναθεωρήσεων που έχουν εγκριθεί.',
 212+ 'approvedrevs-approve' => 'έγκριση',
 213+ 'approvedrevs-unapprove' => 'μη έγκριση',
 214+ 'approvedrevs-approvesuccess' => 'Αυτή η αναθεώρηση της σελίδας έχει οριστεί ως η εγκεκριμένη έκδοση.',
 215+ 'approvedrevs-unapprovesuccess' => 'Δεν υπάρχει πλέον μια εγκεκριμένη έκδοση για αυτή τη σελίδα.
 216+Σε αντικατάσταση, θα εμφανιστεί η πιο πρόσφατη αναθεώρηση.',
 217+ 'approvedrevs-notlatest' => 'Αυτή είναι η εγκεκριμένη αναθεώρηση αυτής της σελίδας· δεν είναι η πιο πρόσφατη.',
 218+ 'approvedrevs-approvedandlatest' => 'Αυτή είναι η εγκεκριμένη αναθεώρηση αυτής της σελίδας, καθώς και η πιο πρόσφατη.',
 219+ 'approvedrevs-viewlatest' => 'Δείτε την πιο πρόσφατη αναθεώρηση.',
 220+ 'approvedpages' => 'Εγκεκριμένες σελίδες',
 221+ 'approvedrevs-approvedpages-docu' => 'Οι ακόλουθες σελίδες είναι αυτές που έχουν εγκεκριμένη αναθεώρηση σε αυτό το βίκι.',
 222+ 'right-viewlinktolatest' => 'Προβολή επεξηγηματικού κειμένου στο επάνω μέρος των σελίδων που έχουν εγκεκριμένη αναθεώρηση',
 223+);
 224+
 225+/** Spanish (Español)
 226+ * @author Crazymadlover
 227+ * @author Locos epraix
 228+ */
 229+$messages['es'] = array(
 230+ 'approvedrevs-desc' => 'Establecer una revisión única de una página como aprovada',
 231+ 'approvedrevs-logname' => 'Registro de revisiones aprobadas',
 232+ 'approvedrevs-logdesc' => 'Este es el registro de las revisiones que han sido aprobadas.',
 233+ 'approvedrevs-approve' => 'aprobar',
 234+ 'approvedrevs-unapprove' => 'desaprobar',
 235+ 'approvedrevs-approvesuccess' => 'Esta revisión de la página ha sido establecida como la versión aprobada.',
 236+ 'approvedrevs-unapprovesuccess' => 'Ya no hay una versión aprobada para esta página.
 237+En su lugar, se muestra la revisión más reciente.',
 238+ 'approvedrevs-approveaction' => 'establecer $2 como la revisión aprobada para para "[[$1]]"',
 239+ 'approvedrevs-unapproveaction' => 'desestablecer la revisión aprobada para "[[$1]]"',
 240+ 'approvedrevs-notlatest' => 'Esta es la revisión aprobada de esta página, no es la más reciente.',
 241+ 'approvedrevs-approvedandlatest' => 'Esta es la revisión aprobada de esta página, siendo también la más reciente.',
 242+ 'approvedrevs-viewlatest' => 'Ver revisión más reciente.',
 243+ 'approvedpages' => 'Páginas aprobadas',
 244+ 'approvedrevs-approvedpages-docu' => 'Las siguientes son las páginas en la wiki que tienen una versión aprobada.',
 245+ 'right-approverevisions' => 'Establecer una cierta revisión de una página wiki como aprobada',
 246+ 'right-viewlinktolatest' => 'Ver texto explicativo en la parte superior de las páginas que tienen una revisión aprobada',
 247+);
 248+
 249+/** Finnish (Suomi)
 250+ * @author Centerlink
 251+ * @author Crt
 252+ * @author Nike
 253+ */
 254+$messages['fi'] = array(
 255+ 'approvedrevs-desc' => 'Aseta yksittäinen sivuversio hyväksytyksi',
 256+ 'approvedrevs-logname' => 'Versiohyväksynnän loki',
 257+ 'approvedrevs-logdesc' => 'Tämä on hyväksyttyjen versioiden loki.',
 258+ 'approvedrevs-approve' => 'hyväksy',
 259+ 'approvedrevs-unapprove' => 'älä hyväksy',
 260+ 'approvedrevs-approvesuccess' => 'Tämä sivuversio on asetettu hyväksytyksi versioksi.',
 261+ 'approvedrevs-unapprovesuccess' => 'Tästä sivusta ei ole enää hyväksyttyä versiota.
 262+Sen sijaan, viimeisin versio näytetään.',
 263+ 'approvedrevs-notlatest' => 'Tämä on tämän sivun hyväksytty versio; se ei ole viimeisin.',
 264+ 'approvedrevs-approvedandlatest' => 'Tämä on tämän sivun hyväksytty ja samalla viimeisin versio.',
 265+ 'approvedrevs-viewlatest' => 'Näytä viimeisin versio.',
 266+ 'approvedpages' => 'Hyväksytyt sivut',
 267+ 'approvedrevs-approvedpages-docu' => 'Seuraavat ovat wikisivuja, joilla on hyväksytty versio.',
 268+ 'right-approverevisions' => 'Asettaa wikisivun tietty versio hyväksytyksi',
 269+ 'right-viewlinktolatest' => 'Nähdä selittävä teksti niiden sivujen yläosassa, joilla on hyväksytty versio',
 270+);
 271+
 272+/** French (Français)
 273+ * @author Peter17
 274+ */
 275+$messages['fr'] = array(
 276+ 'approvedrevs-desc' => 'Marquer une seule révision d’une page comme approuvée',
 277+ 'approvedrevs-logname' => 'Journal des approbations de révisions',
 278+ 'approvedrevs-logdesc' => 'Ceci est le journal des révisions qui ont été marquées comme approuvées.',
 279+ 'approvedrevs-approve' => 'approuver',
 280+ 'approvedrevs-unapprove' => 'désapprouver',
 281+ 'approvedrevs-approvesuccess' => 'Cette révision de la page a été marquée comme étant la version approuvée.',
 282+ 'approvedrevs-unapprovesuccess' => 'Il n’y a plus de version approuvée de cette page.
 283+À la place, la révision la plus récente sera affichée.',
 284+ 'approvedrevs-unapprovesuccess2' => 'Il n’y a plus de version approuvée de cette page.
 285+À la place, une page vide sera affichée.',
 286+ 'approvedrevs-approveaction' => 'a marqué $2 comme la révision approuvée de « [[$1]] »',
 287+ 'approvedrevs-unapproveaction' => 'a annulé le marquage d’une révision approuvée pour « [[$1]] »',
 288+ 'approvedrevs-notlatest' => 'Ceci est la révision approuvée de cette page. Ce n’est pas la plus récente.',
 289+ 'approvedrevs-approvedandlatest' => 'Ceci est la révision approuvée de la page, et aussi la plus récente.',
 290+ 'approvedrevs-viewlatest' => 'Voir la révision la plus récente.',
 291+ 'approvedrevs-blankpageshown' => 'Aucune version n’a été approuvée pour cette page.',
 292+ 'approvedpages' => 'Pages approuvées',
 293+ 'approvedrevs-approvedpages-docu' => 'Voici les pages du wiki qui ont une révision approuvée.',
 294+ 'unapprovedpages' => 'Pages non approuvées',
 295+ 'approvedrevs-unapprovedpages-docu' => 'Voici les pages du wiki qui n’ont pas de révision approuvée.',
 296+ 'right-approverevisions' => 'Marquer une révision précise d’une page comme approuvée',
 297+ 'right-viewlinktolatest' => 'Voir le texte explicatif en haut des pages qui ont une révision approuvée',
 298+);
 299+
 300+/** Galician (Galego)
 301+ * @author Toliño
 302+ */
 303+$messages['gl'] = array(
 304+ 'approvedrevs-desc' => 'Marcar como aprobada unha única revisión dunha páxina',
 305+ 'approvedrevs-logname' => 'Rexistro de aprobación de revisións',
 306+ 'approvedrevs-logdesc' => 'Este é o rexistro das revisións aprobadas.',
 307+ 'approvedrevs-approve' => 'aprobar',
 308+ 'approvedrevs-unapprove' => 'desaprobar',
 309+ 'approvedrevs-approvesuccess' => 'Esta é a revisión aprobada da páxina.',
 310+ 'approvedrevs-unapprovesuccess' => 'Esta páxina xa non ten ningunha versión aprobada.
 311+No canto dela, móstrase a revisión máis recente.',
 312+ 'approvedrevs-unapprovesuccess2' => 'Esta páxina xa non ten ningunha versión aprobada.
 313+No canto dela, móstrase unha páxina en branco.',
 314+ 'approvedrevs-approveaction' => 'marcou $2 como a revisión aprobada de "[[$1]]"',
 315+ 'approvedrevs-unapproveaction' => 'anulou unha revisión aprobada de "[[$1]]"',
 316+ 'approvedrevs-notlatest' => 'Esta é a revisión aprobada da páxina, pero non é a máis recente.',
 317+ 'approvedrevs-approvedandlatest' => 'Esta é a revisión aprobada da páxina, e tamén a máis recente.',
 318+ 'approvedrevs-viewlatest' => 'Ollar a revisión máis recente.',
 319+ 'approvedrevs-blankpageshown' => 'Esta páxina non ten ningunha revisión aprobada.',
 320+ 'approvedpages' => 'Páxinas aprobadas',
 321+ 'approvedrevs-approvedpages-docu' => 'A continuación están as páxinas do wiki que posúen unha revisión aprobada.',
 322+ 'unapprovedpages' => 'Páxinas suspendidas',
 323+ 'approvedrevs-unapprovedpages-docu' => 'A continuación están as páxinas do wiki que non posúen unha revisión aprobada.',
 324+ 'right-approverevisions' => 'Marcar como aprobada unha revisión específica dunha páxina do wiki',
 325+ 'right-viewlinktolatest' => 'Ollar o texto explicativo ao comezo das páxinas que posúen unha revisión aprobada',
 326+);
 327+
 328+/** Swiss German (Alemannisch)
 329+ * @author Als-Holder
 330+ */
 331+$messages['gsw'] = array(
 332+ 'approvedrevs-desc' => 'E Version vun eree Syte as „aagluegt“ markiere',
 333+ 'approvedrevs-logname' => 'Versions-Markierigs-Logbuech',
 334+ 'approvedrevs-logdesc' => 'Des isch s Logbuech vu dr aagluegte Version',
 335+ 'approvedrevs-approve' => "As ''aagluegt'' markiere",
 336+ 'approvedrevs-unapprove' => 'nit frejgee',
 337+ 'approvedrevs-approvesuccess' => 'Die Version vu dr Syte isch as „aagluegti Version“ gsetzt wore.',
 338+ 'approvedrevs-unapprovesuccess' => 'S git kei aaglkeugti Version me vu däre Syte.
 339+Statt däm wird di nejscht Version aazeigt.',
 340+ 'approvedrevs-approveaction' => '$2 as aaglugti Version fir „[[$1]]“ setze',
 341+ 'approvedrevs-unapproveaction' => 'd Markierig as aagluegti Version fir „[[$1]]“ uuseneh',
 342+ 'approvedrevs-notlatest' => 'Des isch di aagluegt Version vu däre Syte; s isch nit di nejscht Version.',
 343+ 'approvedrevs-approvedandlatest' => 'Des isch di aagluegt Version vu däre Syte un au di nejscht.',
 344+ 'approvedrevs-viewlatest' => 'Di nejscht Version aaluege.',
 345+ 'approvedpages' => 'Aagluegti Syte',
 346+ 'approvedrevs-approvedpages-docu' => 'Des sin d Syte, wu s e aagluegti Version het.',
 347+ 'right-approverevisions' => 'E sicheri Version vun ere Wikisyte as aagluegt markiere',
 348+ 'right-viewlinktolatest' => 'Dr Erklerigstext aaluege obe uf Syte, wu s e aagluegti Version git',
 349+);
 350+
 351+/** Upper Sorbian (Hornjoserbsce)
 352+ * @author Michawiki
 353+ */
 354+$messages['hsb'] = array(
 355+ 'approvedrevs-desc' => 'Jednotliwu wersiju strony jako schwalenu stajić',
 356+ 'approvedrevs-logname' => 'Protokol schwalenja wersijow',
 357+ 'approvedrevs-logdesc' => 'To je protokol wersije, kotrež buchu schwalene.',
 358+ 'approvedrevs-approve' => 'schwalić',
 359+ 'approvedrevs-unapprove' => 'zakazać',
 360+ 'approvedrevs-approvesuccess' => 'Tuta wersija strony je so jako schwalena wersija stajiła.',
 361+ 'approvedrevs-unapprovesuccess' => 'Schwalena wersija za tutu stronu wjace njeje.
 362+Město toho so najnowša wersija pokaza.',
 363+ 'approvedrevs-approveaction' => 'je $2 jako schwalenu wersiju za "[[$1]]" nastajił',
 364+ 'approvedrevs-unapproveaction' => 'je status schwalena wersija za "[[$1]]" wotstronił',
 365+ 'approvedrevs-notlatest' => 'To je schwalena wersija tuteje strony; njeje najnowša.',
 366+ 'approvedrevs-approvedandlatest' => 'To je schwalena wersija tuteje strony, kotraž je tež najnowša.',
 367+ 'approvedrevs-viewlatest' => 'Najnowšu wersiju pokazać',
 368+ 'approvedpages' => 'Schwalene wersije',
 369+ 'approvedrevs-approvedpages-docu' => 'Slědowace strony we wikiju maja schwalenu wersiju.',
 370+ 'right-approverevisions' => 'Wěstu wersiju wikistrony jako schwalenu nastajić',
 371+ 'right-viewlinktolatest' => 'Rozłožowacy tekst horjeka na stronach pokazać, kotrež maja schwalenu wersiju.',
 372+);
 373+
 374+/** Hungarian (Magyar)
 375+ * @author Misibacsi
 376+ */
 377+$messages['hu'] = array(
 378+ 'approvedrevs-approve' => 'elfogadás',
 379+ 'approvedpages' => 'Ellenőrzött lapok',
 380+ 'approvedrevs-approvedpages-docu' => 'Ezen a wikin a következő lapoknak létezik ellenőrzött változata.',
 381+);
 382+
 383+/** Interlingua (Interlingua)
 384+ * @author McDutchie
 385+ */
 386+$messages['ia'] = array(
 387+ 'approvedrevs-desc' => 'Marcar un sol version de un pagina como approbate',
 388+ 'approvedrevs-logname' => 'Registro de approbation de versiones',
 389+ 'approvedrevs-logdesc' => 'Isto es le registro del versiones que ha essite approbate.',
 390+ 'approvedrevs-approve' => 'approbar',
 391+ 'approvedrevs-unapprove' => 'disapprobar',
 392+ 'approvedrevs-approvesuccess' => 'Iste version del pagina ha essite marcate como le version approbate.',
 393+ 'approvedrevs-unapprovesuccess' => 'Il non ha plus un version approbate de iste pagina.
 394+In loco de illo, le version le plus recente essera monstrate.',
 395+ 'approvedrevs-unapprovesuccess2' => 'Il non ha plus un version approbate de iste pagina.
 396+In loco de illo, un pagina vacue essera monstrate.',
 397+ 'approvedrevs-approveaction' => 'marcava $2 como le version approbate de "[[$1]]"',
 398+ 'approvedrevs-unapproveaction' => 'dismarcava le version approbate de "[[$1]]"',
 399+ 'approvedrevs-notlatest' => 'Isto es le version approbate de iste pagina; non es le plus recente.',
 400+ 'approvedrevs-approvedandlatest' => 'Isto es le version approbate de iste pagina, e tamben le plus recente.',
 401+ 'approvedrevs-viewlatest' => 'Vider le version le plus recente.',
 402+ 'approvedrevs-blankpageshown' => 'Nulle version de iste pagina ha essite approbate.',
 403+ 'approvedpages' => 'Paginas approbate',
 404+ 'approvedrevs-approvedpages-docu' => 'Le sequente paginas in le wiki ha un version approbate.',
 405+ 'unapprovedpages' => 'Paginas non approbate',
 406+ 'approvedrevs-unapprovedpages-docu' => 'Le sequente paginas in le wiki non ha un version approbate.',
 407+ 'right-approverevisions' => 'Marcar un certe version de un pagina wiki como approbate',
 408+ 'right-viewlinktolatest' => 'Vider le texto explicative in alto del paginas que ha un version approbate',
 409+);
 410+
 411+/** Indonesian (Bahasa Indonesia)
 412+ * @author Farras
 413+ */
 414+$messages['id'] = array(
 415+ 'approvedrevs-desc' => 'Tetapkan revisi tunggal halaman ini sebagai disetujui',
 416+ 'approvedrevs-logname' => 'Log penyetujuan revisi',
 417+ 'approvedrevs-logdesc' => 'Ini adalah log revisi yang telah disetujui.',
 418+ 'approvedrevs-approve' => 'setujui',
 419+ 'approvedrevs-unapprove' => 'tidak setujui',
 420+ 'approvedrevs-approvesuccess' => 'Revisi halaman ini telah ditetapkan sebagai revisi disetujui.',
 421+ 'approvedrevs-unapprovesuccess' => 'Tidak ada lagi versi disetujui untuk halaman ini.
 422+Revisi terkini akan ditampilkan.',
 423+ 'approvedrevs-approveaction' => 'tetapkan $2 sebagai revisi disetujui untuk "[[$1]]"',
 424+ 'approvedrevs-unapproveaction' => 'jangan tetapkan revisi disetujui untuk "[[$1]]"',
 425+ 'approvedrevs-notlatest' => 'Ini adalah revisi disetujui dari halaman ini; bukan revisi terkini.',
 426+ 'approvedrevs-approvedandlatest' => 'Ini adalah revisi disetujui dari halaman ini, juga revisi terkini.',
 427+ 'approvedrevs-viewlatest' => 'Lihat revisi terkini.',
 428+ 'approvedpages' => 'Halaman yang disetujui',
 429+ 'approvedrevs-approvedpages-docu' => 'Berikut adalah halaman di wiki yang memiliki revisi disetujui.',
 430+ 'right-approverevisions' => 'Tetapkan revisi tertentu dari halaman wiki sebagai disetujui',
 431+ 'right-viewlinktolatest' => 'Lihat penjelasan di atas halaman yang memiliki revisi disetujui',
 432+);
 433+
 434+/** Igbo (Igbo)
 435+ * @author Ukabia
 436+ */
 437+$messages['ig'] = array(
 438+ 'approvedrevs-approve' => 'kwé',
 439+ 'approvedrevs-unapprove' => 'ékwèkwàlà',
 440+ 'approvedpages' => 'Ihü hé kwèrè',
 441+);
 442+
 443+/** Japanese (日本語)
 444+ * @author W.CC
 445+ */
 446+$messages['ja'] = array(
 447+ 'approvedrevs-desc' => '履歴からページの版に承認済みとして印をつける',
 448+ 'approvedrevs-logname' => '特定版の承認記録',
 449+ 'approvedrevs-logdesc' => '以下は、承認された版の記録です。',
 450+ 'approvedrevs-approve' => '承認',
 451+ 'approvedrevs-unapprove' => '承認の取り消し',
 452+ 'approvedrevs-approvesuccess' => 'この版は承認済みとしてマークされました。',
 453+ 'approvedrevs-unapprovesuccess' => 'このページには承認された版はありません。代わりに最新版が表示されます。',
 454+ 'approvedrevs-approveaction' => '"[[$1]]" の第$2版を承認済みとしてマーク',
 455+ 'approvedrevs-unapproveaction' => '"[[$1]]" の承認を取り消し',
 456+ 'approvedrevs-notlatest' => 'このページは承認されています;この版の変更はまだ承認されていません',
 457+ 'approvedrevs-approvedandlatest' => 'このページは承認されています;この版は承認されています',
 458+ 'approvedrevs-viewlatest' => '承認されている最新の版を見る',
 459+ 'approvedpages' => '承認されたページ',
 460+ 'approvedrevs-approvedpages-docu' => '次のページには承認された版があります。',
 461+ 'right-approverevisions' => 'ページの特定版を承認',
 462+ 'right-viewlinktolatest' => '承認された最新の版へのリンクを上部に表示する',
 463+);
 464+
 465+/** Luxembourgish (Lëtzebuergesch)
 466+ * @author Les Meloures
 467+ * @author Robby
 468+ */
 469+$messages['lb'] = array(
 470+ 'approvedrevs-desc' => 'Eng eenzel Versioun vun enger Säit als nogekuckt markéieren',
 471+ 'approvedrevs-logname' => 'Logbuch vun den nogekuckte Säiten déi fräigi sinn',
 472+ 'approvedrevs-logdesc' => "Dëst ass d'Logbuch vun de Versiounen déi nogekuckt sinn.",
 473+ 'approvedrevs-approve' => 'zoustëmmen',
 474+ 'approvedrevs-unapprove' => 'Zoustëmmung zréckzéien',
 475+ 'approvedrevs-approvesuccess' => 'Dës Versioun vun der Säit gouf als nogekuckte Versioun fräiginn.',
 476+ 'approvedrevs-unapprovesuccess' => 'Et gëtt vun dëser Säit keng nogekuckte Versioun méi.
 477+Dofir gëtt déi rezentst Versioun gewisen.',
 478+ 'approvedrevs-approveaction' => '$2 als nogekuckt Versioun fir "[[$1]]" festleeën',
 479+ 'approvedrevs-unapproveaction' => 'nogekuckt Versioun fir "[[$1]]" zréckzéien',
 480+ 'approvedrevs-notlatest' => 'Dëst ass déi nogekuckte Versioun vun dëser Säit; et ass net déi rezentst.',
 481+ 'approvedrevs-approvedandlatest' => 'Dëst ass esouwuel déi nogekuckt wéi och déi rezentst Versioun vun dëser Säit.',
 482+ 'approvedrevs-viewlatest' => 'Déi rezentst Versioun weisen.',
 483+ 'approvedpages' => 'Nogekuckte Säiten',
 484+ 'approvedrevs-approvedpages-docu' => 'Dës Säiten an der Wiki hunn eng nogekuckte Versioun.',
 485+ 'right-approverevisions' => 'Eng bestëmmte Versioun vun enger Säit als nogekuckt markéieren',
 486+ 'right-viewlinktolatest' => 'Kuckt den Erklärungstext uewen op de Säiten déi nogekuckt Versiounen hunn',
 487+);
 488+
 489+/** Macedonian (Македонски)
 490+ * @author Bjankuloski06
 491+ */
 492+$messages['mk'] = array(
 493+ 'approvedrevs-desc' => 'Поставање на една единствена ревизија на страницата како одобрена',
 494+ 'approvedrevs-logname' => 'Дневник на одобрени ревизии',
 495+ 'approvedrevs-logdesc' => 'Ова е дневникот на одобрени ревизии.',
 496+ 'approvedrevs-approve' => 'одобри',
 497+ 'approvedrevs-unapprove' => 'неодобрена',
 498+ 'approvedrevs-approvesuccess' => 'Оваа ревизија на страницата е поставена како одобрена.',
 499+ 'approvedrevs-unapprovesuccess' => 'Оваа страница повеќе нема одобрена верзија.
 500+Наместо тоа ќе се прикажува најновата верзија.',
 501+ 'approvedrevs-unapprovesuccess2' => 'Оваа страница повеќе нема одобрена верзија.
 502+Наместо тоа ќе се прикажува празна страница.',
 503+ 'approvedrevs-approveaction' => 'постави ја $2 за одобрена верзија на „[[$1]]“',
 504+ 'approvedrevs-unapproveaction' => 'отстрани одобрена верзија на „[[$1]]“',
 505+ 'approvedrevs-notlatest' => 'Ова е одобрената ревизија на страницава, но не е најновата.',
 506+ 'approvedrevs-approvedandlatest' => 'Ова е одобрената ревизија на страницава, а воедно и најновата.',
 507+ 'approvedrevs-viewlatest' => 'Види најнова ревизија.',
 508+ 'approvedrevs-blankpageshown' => 'Нема одобрена ревизија за страницава.',
 509+ 'approvedpages' => 'Одобрени страници',
 510+ 'approvedrevs-approvedpages-docu' => 'Ова се страници на викито што имаат одобрена ревизија.',
 511+ 'unapprovedpages' => 'Неодобрени страници',
 512+ 'approvedrevs-unapprovedpages-docu' => 'Ова се страници на викито што немаат одобрена ревизија.',
 513+ 'right-approverevisions' => 'Поставете извесна ревизија на вики-страница како одобрена',
 514+ 'right-viewlinktolatest' => 'Погледајте го објаснувањето на врвот од страниците што имаат одобрена верзија',
 515+);
 516+
 517+/** Dutch (Nederlands)
 518+ * @author Siebrand
 519+ */
 520+$messages['nl'] = array(
 521+ 'approvedrevs-desc' => 'Een versie van een pagina als goedgekeurd instellen',
 522+ 'approvedrevs-logname' => 'Logboek versiegoedkeuring',
 523+ 'approvedrevs-logdesc' => 'Dit is het logboek met de versies die zijn goedgekeurd.',
 524+ 'approvedrevs-approve' => 'goedkeuren',
 525+ 'approvedrevs-unapprove' => 'afkeuren',
 526+ 'approvedrevs-approvesuccess' => 'Deze versie van de pagina is ingesteld als de goedgekeurde versie.',
 527+ 'approvedrevs-unapprovesuccess' => 'Deze pagina heeft niet langer een goedgekeurde versie.
 528+Daarom wordt de laatste versie weergegeven.',
 529+ 'approvedrevs-unapprovesuccess2' => 'Er is niet langer een goedgekeurde versie voor deze pagina.
 530+Er wordt een lege pagina weergegeven.',
 531+ 'approvedrevs-approveaction' => 'heeft $2 ingesteld als de goedgekeurde versie voor "[[$1]]"',
 532+ 'approvedrevs-unapproveaction' => 'heeft de goedgekeurde versie verwijderd voor "[[$1]]"',
 533+ 'approvedrevs-notlatest' => 'Dit is de goedgekeurde versie van deze pagina.
 534+Het is niet de meeste recente versie.',
 535+ 'approvedrevs-approvedandlatest' => 'Dit is de goedgekeurde versie van deze pagina. Er is geen nieuwere versie.',
 536+ 'approvedrevs-viewlatest' => 'Laatste versie bekijken',
 537+ 'approvedrevs-blankpageshown' => 'Deze pagina heeft geen goedgekeurde versie.',
 538+ 'approvedpages' => "Goedgekeurde pagina's",
 539+ 'approvedrevs-approvedpages-docu' => "De volgende pagina's in de wiki hebben een goedgekeurde versie.",
 540+ 'unapprovedpages' => "Niet-goedgekeurde pagina's",
 541+ 'approvedrevs-unapprovedpages-docu' => "De onderstaande pagina's in de wiki hebben geen goedgekeurde versie.",
 542+ 'right-approverevisions' => 'Een versie van een wikipagina markeren als goedgekeurd.',
 543+ 'right-viewlinktolatest' => "De verklarende tekst bovenaan pagina's zien die die een goedgekeurde versie hebben",
 544+);
 545+
 546+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
 547+ * @author Nghtwlkr
 548+ */
 549+$messages['no'] = array(
 550+ 'approvedrevs-desc' => 'Sett en enkelt revisjon av en side som godkjent',
 551+ 'approvedrevs-logname' => 'Godkjenningslogg for revisjoner',
 552+ 'approvedrevs-logdesc' => 'Dette er loggen over revisjoner som har blitt godkjent.',
 553+ 'approvedrevs-approve' => 'godkjenn',
 554+ 'approvedrevs-unapprove' => 'ikke godkjenn',
 555+ 'approvedrevs-approvesuccess' => 'Denne revisjonen av siden har blitt satt som den godkjente versjonen.',
 556+ 'approvedrevs-unapprovesuccess' => 'Det er ikke lenger en godkjent versjon av denne siden.
 557+I stedet vil den nyeste revisjonen bli vist.',
 558+ 'approvedrevs-approveaction' => 'sett $2 som den godkjente revisjonen for «[[$1]]»',
 559+ 'approvedrevs-unapproveaction' => 'fjern godkjenning av revisjon for «[[$1]]»',
 560+ 'approvedrevs-notlatest' => 'Dette er den godkjente revisjonen av denne siden; det er ikke den nyeste.',
 561+ 'approvedrevs-approvedandlatest' => 'Dette er den godkjente revisjonen av denne siden, samt den nyeste.',
 562+ 'approvedrevs-viewlatest' => 'Se den nyeste revisjonen.',
 563+ 'approvedpages' => 'Godkjente sider',
 564+ 'approvedrevs-approvedpages-docu' => 'De følgende sidene er de som har en godkjent revisjon i wikien.',
 565+ 'right-approverevisions' => 'Sett en viss revisjon av en wikiside som godkjent',
 566+ 'right-viewlinktolatest' => 'Vis forklarende tekst på toppen av sider som har en godkjent revisjon',
 567+);
 568+
 569+/** Polish (Polski)
 570+ * @author Sp5uhe
 571+ */
 572+$messages['pl'] = array(
 573+ 'approvedrevs-desc' => 'Pozwala na zatwierdzenie pojedynczej wersji strony',
 574+ 'approvedrevs-logname' => 'Rejestr zatwierdzonych wersji',
 575+ 'approvedrevs-logdesc' => 'To jest rejestr wersji, które zostały zatwierdzone.',
 576+ 'approvedrevs-approve' => 'zatwierdź',
 577+ 'approvedrevs-unapprove' => 'cofnij zatwierdzenie',
 578+ 'approvedrevs-approvesuccess' => 'Ta wersja strony została zatwierdzona.',
 579+ 'approvedrevs-unapprovesuccess' => 'Dla tej strony brak jest wersji zatwierdzonej.
 580+W zamian prezentowana będzie ostatnia wersja.',
 581+ 'approvedrevs-approveaction' => 'zatwierdził wersję $2 strony „[[$1]]”',
 582+ 'approvedrevs-unapproveaction' => 'usunął zatwierdzenie strony „[[$1]]”',
 583+ 'approvedrevs-notlatest' => 'To jest zatwierdzona wersja strony. To nie jest ostatnia jej wersja.',
 584+ 'approvedrevs-approvedandlatest' => 'To jest nie tylko zatwierdzona wersja strony, ale również ostatnia jej wersja.',
 585+ 'approvedrevs-viewlatest' => 'Zobacz najnowsze zmiany.',
 586+ 'approvedpages' => 'Zatwierdzone strony',
 587+ 'approvedrevs-approvedpages-docu' => 'Poniższe strony wiki mają jakąś zatwierdzoną wersję.',
 588+ 'right-approverevisions' => 'Zatwierdzenie wybranych wersji stron wiki',
 589+ 'right-viewlinktolatest' => 'Pokazuj tekst wyjaśniający w górnej części tych stron, które mają zatwierdzoną wersję',
 590+);
 591+
 592+/** Piedmontese (Piemontèis)
 593+ * @author Borichèt
 594+ * @author Dragonòt
 595+ */
 596+$messages['pms'] = array(
 597+ 'approvedrevs-desc' => 'Ampòsta na sola revision ëd na pàgina com aprovà',
 598+ 'approvedrevs-logname' => "Registr d'aprovassion dle revision",
 599+ 'approvedrevs-logdesc' => "Sto-sì a l'é ël registr dle revision ch'a son ëstàite aprovà.",
 600+ 'approvedrevs-approve' => 'apreuva',
 601+ 'approvedrevs-unapprove' => 'apreuva pa',
 602+ 'approvedrevs-approvesuccess' => "Costa revision-sì ëd la pàgina a l'é stàita ampostà com la version aprovà.",
 603+ 'approvedrevs-unapprovesuccess' => 'A-i é pa pi na version aprovà për sta pàgina-sì.
 604+Al pòst, a sarà mostrà la revision pi recenta.',
 605+ 'approvedrevs-unapprovesuccess2' => 'A-i é pa pi na version aprovà për sta pàgina-sì.
 606+Al pòst, a sarà mostrà na pàgina bianca.',
 607+ 'approvedrevs-approveaction' => 'a l\'ha marcà $2 tanme revision aprovà për "[[$1]]"',
 608+ 'approvedrevs-unapproveaction' => 'gava ampostassion ëd la revision aprovà për "[[$1]]"',
 609+ 'approvedrevs-notlatest' => "Costa a l'é la revision aprovà ëd sa pàgina; a l'é pa la pi recenta.",
 610+ 'approvedrevs-approvedandlatest' => "Costa a l'é la revision aprovà ëd sa pàgina, e a l'é ëdcò la pi recenta.",
 611+ 'approvedrevs-viewlatest' => 'Varda la revision pi recenta.',
 612+ 'approvedrevs-blankpageshown' => 'Pa gnun-e revision a son ëstaàite aprovà për sta pàgina.',
 613+ 'approvedpages' => 'Pàgine aprovà',
 614+ 'approvedrevs-approvedpages-docu' => "Cole sì-sota a son le pàgine ant la wiki che a l'han na revision aprovà.",
 615+ 'unapprovedpages' => 'Pàgine pa aprovà',
 616+ 'approvedrevs-unapprovedpages-docu' => "Cole sì-sota a son le pàgine ant la wiki che a l'han pa na revision aprovà.",
 617+ 'right-approverevisions' => 'Ampòsta na certa revision ëd na pàgina wiki com aprovà',
 618+ 'right-viewlinktolatest' => "Vëdde ël test dë spiegassion an cò dle pàgine ch'a l'han na revision aprovà",
 619+);
 620+
 621+/** Portuguese (Português)
 622+ * @author Alchimista
 623+ * @author Hamilton Abreu
 624+ */
 625+$messages['pt'] = array(
 626+ 'approvedrevs-desc' => 'Marcar como aprovada uma das revisões de uma página',
 627+ 'approvedrevs-logname' => 'Registo de revisões aprovadas',
 628+ 'approvedrevs-logdesc' => 'Este é o registo das revisões que foram aprovadas.',
 629+ 'approvedrevs-approve' => 'aprovar',
 630+ 'approvedrevs-unapprove' => 'reprovar',
 631+ 'approvedrevs-approvesuccess' => 'Esta revisão da página foi definida como a versão aprovada.',
 632+ 'approvedrevs-unapprovesuccess' => 'Deixou de existir uma versão aprovada para esta página.
 633+Em vez dela, será apresentada a revisão mais recente.',
 634+ 'approvedrevs-unapprovesuccess2' => 'Deixou de existir uma versão aprovada para esta página.
 635+Em vez dela, será apresentada uma página em branco.',
 636+ 'approvedrevs-approveaction' => 'definir $2 como a revisão aprovada de "[[$1]]"',
 637+ 'approvedrevs-unapproveaction' => 'desfazer a definição da revisão aprovada de "[[$1]]"',
 638+ 'approvedrevs-notlatest' => 'Esta é a revisão aprovada desta página; não é a revisão mais recente.',
 639+ 'approvedrevs-approvedandlatest' => 'Esta é a revisão aprovada desta página e também a revisão mais recente.',
 640+ 'approvedrevs-viewlatest' => 'Ver a revisão mais recente.',
 641+ 'approvedrevs-blankpageshown' => 'Esta página não tem nenhuma revisão aprovada.',
 642+ 'approvedpages' => 'Páginas aprovadas',
 643+ 'approvedrevs-approvedpages-docu' => 'As seguintes páginas desta wiki têm uma revisão aprovada.',
 644+ 'unapprovedpages' => 'Páginas reprovadas',
 645+ 'approvedrevs-unapprovedpages-docu' => 'As seguintes páginas desta wiki não têm uma revisão aprovada.',
 646+ 'right-approverevisions' => 'Definir como aprovada uma revisão específica de uma página da wiki',
 647+ 'right-viewlinktolatest' => 'Ver um texto explicativo no topo das páginas que têm uma revisão aprovada',
 648+);
 649+
 650+/** Brazilian Portuguese (Português do Brasil)
 651+ * @author Giro720
 652+ */
 653+$messages['pt-br'] = array(
 654+ 'approvedrevs-desc' => 'Marcar como aprovada uma das revisões de uma página',
 655+ 'approvedrevs-logname' => 'Registro de revisões aprovadas',
 656+ 'approvedrevs-logdesc' => 'Este é o registro das revisões que foram aprovadas.',
 657+ 'approvedrevs-approve' => 'aprovar',
 658+ 'approvedrevs-unapprove' => 'reprovar',
 659+ 'approvedrevs-approvesuccess' => 'Esta revisão da página foi definida como a versão aprovada.',
 660+ 'approvedrevs-unapprovesuccess' => 'Deixou de existir uma versão aprovada para esta página.
 661+Em vez dela, será apresentada a revisão mais recente.',
 662+ 'approvedrevs-approveaction' => 'definir $2 como a revisão aprovada de "[[$1]]"',
 663+ 'approvedrevs-unapproveaction' => 'desfazer a definição da revisão aprovada de "[[$1]]"',
 664+ 'approvedrevs-notlatest' => 'Esta é a revisão aprovada desta página; não é a revisão mais recente.',
 665+ 'approvedrevs-approvedandlatest' => 'Esta é a revisão aprovada desta página e também a revisão mais recente.',
 666+ 'approvedrevs-viewlatest' => 'Ver a revisão mais recente.',
 667+ 'approvedpages' => 'Páginas aprovadas',
 668+ 'approvedrevs-approvedpages-docu' => 'As seguintes páginas desta wiki têm uma revisão aprovada.',
 669+ 'right-approverevisions' => 'Definir como aprovada uma revisão específica de uma página da wiki',
 670+ 'right-viewlinktolatest' => 'Ver um texto explicativo no topo das páginas que têm uma revisão aprovada',
 671+);
 672+
 673+/** Russian (Русский)
 674+ * @author Александр Сигачёв
 675+ */
 676+$messages['ru'] = array(
 677+ 'approvedrevs-desc' => 'Установка одной из версий страниц как подтверждённой',
 678+ 'approvedrevs-logname' => 'Журнал подтверждения версий',
 679+ 'approvedrevs-logdesc' => 'Это журнал версий страниц, которые были подтверждены.',
 680+ 'approvedrevs-approve' => 'подтвердить',
 681+ 'approvedrevs-unapprove' => 'снять подтверждение',
 682+ 'approvedrevs-approvesuccess' => 'Это версия страницы была отмечена как подтверждённая.',
 683+ 'approvedrevs-unapprovesuccess' => 'Не существует подтверждённой версии этой страницы.
 684+Вместо неё будет показана последняя версия.',
 685+ 'approvedrevs-unapprovesuccess2' => 'Больше не существует подтверждённой версии этой страницы.
 686+Вместо неё будет показана пустая страница.',
 687+ 'approvedrevs-approveaction' => 'установить $2 как подтверждённую версию «[[$1]]»',
 688+ 'approvedrevs-unapproveaction' => 'снять утверждённую версию для «[[$1]]»',
 689+ 'approvedrevs-notlatest' => 'Это утверждённая версия страницы. Существуют более свежие версии.',
 690+ 'approvedrevs-approvedandlatest' => 'Это утверждённая версия страницы. Она же является наиболее свежей версией.',
 691+ 'approvedrevs-viewlatest' => 'Просмотреть самую свежую версию.',
 692+ 'approvedrevs-blankpageshown' => 'Для этой страницы нет утверждённых версий.',
 693+ 'approvedpages' => 'Подтверждённые страницы',
 694+ 'approvedrevs-approvedpages-docu' => 'Ниже показан список вики-страниц, имеющих подтверждённые версии.',
 695+ 'unapprovedpages' => 'Неутверждённые страницы',
 696+ 'approvedrevs-unapprovedpages-docu' => 'Ниже показан список вики-страниц, не имеющих подтверждённых версий.',
 697+ 'right-approverevisions' => 'отметка определённых версий вики-страниц как подтверждённых',
 698+ 'right-viewlinktolatest' => 'просмотр пояснительного текста в верхней части страниц, имеющих утверждённые версии',
 699+);
 700+
 701+/** Telugu (తెలుగు)
 702+ * @author Veeven
 703+ */
 704+$messages['te'] = array(
 705+ 'approvedrevs-logname' => 'కూర్పుల అనుమతులు చిట్టా',
 706+ 'approvedrevs-approve' => 'అనుమతించు',
 707+ 'approvedpages' => 'అనుమతించిన పుటలు',
 708+);
 709+
 710+/** Tagalog (Tagalog)
 711+ * @author AnakngAraw
 712+ */
 713+$messages['tl'] = array(
 714+ 'approvedrevs-desc' => 'Itakda ang isang nagiisang rebisyon ng isang pahina bilang pinayagan',
 715+ 'approvedrevs-logname' => 'Tala ng pagpayag sa rebisyon',
 716+ 'approvedrevs-logdesc' => 'Ito ang tala ng mga rebisyon na pinayagan na.',
 717+ 'approvedrevs-approve' => 'payagan',
 718+ 'approvedrevs-unapprove' => 'huwag payagan',
 719+ 'approvedrevs-approvesuccess' => 'Ang rebisyon ng pahina ay naitakda bilang pinayagang bersyon.',
 720+ 'approvedrevs-unapprovesuccess' => 'Wala nang isang pinayagang bersyon para sa pahinang ito.
 721+Sa halip, ang pinaka kamakailang rebisyon ang ipapakita.',
 722+ 'approvedrevs-approveaction' => 'itakda ang $2 bilang pinayagang rebisyon para sa "[[$1]]"',
 723+ 'approvedrevs-unapproveaction' => 'huwag itakda ang rebisyon para sa "[[$1]]"',
 724+ 'approvedrevs-notlatest' => 'Ito ang pinayagang rebisyon ng pahinang ito; hindi ito ang pinaka kamakailan.',
 725+ 'approvedrevs-approvedandlatest' => 'Ito ang pinayagang rebisyon ng pahinang ito, pati na ang pagiging pinaka kamakailan.',
 726+ 'approvedrevs-viewlatest' => 'Tingan ang pinaka kamakailang rebisyon.',
 727+ 'approvedpages' => 'Mga pahinang pinayagan',
 728+ 'approvedrevs-approvedpages-docu' => 'Ang sumusunod ay ang mga pahina sa wiki na may rebisyong pinayagan.',
 729+ 'right-approverevisions' => 'Itakda ang isang partikular na rebisyon ng isang pahina ng wiki bilang pinayagan',
 730+ 'right-viewlinktolatest' => 'Tingnan ang teksto ng paliwanag na nasa itaas ng mga pahina na may pinayagang rebisyon',
 731+);
 732+
 733+/** Turkish (Türkçe)
 734+ * @author Srhat
 735+ */
 736+$messages['tr'] = array(
 737+ 'approvedrevs-desc' => 'Bir sayfanın belirli bir revizyonunu onaylanmış olarak ayarla',
 738+ 'approvedrevs-logname' => 'Revizyon onay günlüğü',
 739+ 'approvedrevs-logdesc' => 'Bu liste onaylanmış revizyon günlüğüdür.',
 740+ 'approvedrevs-approve' => 'onayla',
 741+ 'approvedrevs-unapprove' => 'onayı kaldır',
 742+ 'approvedrevs-approvesuccess' => 'Sayfaya ait bu revizyon onaylanmış revizyon olarak ayarlandı.',
 743+ 'approvedrevs-unapprovesuccess' => 'Bu sayfanın artık onaylanmış sürümü yok.
 744+Onun yerine, en son revizyon gösterilecektir.',
 745+ 'approvedrevs-approveaction' => '$2 revizyonunu "[[$1]]" sayfasının onaylanmış revizyonu olarak ayarladı',
 746+ 'approvedrevs-unapproveaction' => '"[[$1]]" sayfasının onaylanmış revizyonunun onayını kaldırdı.',
 747+ 'approvedrevs-notlatest' => 'Bu sayfanın onaylanmış revizyonudur; en son revizyon değildir.',
 748+ 'approvedrevs-approvedandlatest' => 'Bu revizyon, sayfanın hem onaylanmış hem de en son revizyonudur.',
 749+ 'approvedrevs-viewlatest' => 'En son revizyonu görüntüle',
 750+ 'approvedpages' => 'Onaylanmış sayfalar',
 751+ 'approvedrevs-approvedpages-docu' => 'Aşağıdakiler, onaylanmış revizyonu bulunan viki sayfalardır.',
 752+ 'right-approverevisions' => 'Bir viki sayfasının belirli bir revizyonunu onaylanmış olarak ayarla',
 753+ 'right-viewlinktolatest' => 'Onaylanmış revizyonu bulunan sayfaların başındaki açıklayıcı metni görüntüle',
 754+);
 755+
 756+/** Vietnamese (Tiếng Việt)
 757+ * @author Minh Nguyen
 758+ */
 759+$messages['vi'] = array(
 760+ 'approvedrevs-logname' => 'Nhật trình chấp nhận phiên bản',
 761+ 'approvedrevs-approve' => 'chấp nhận',
 762+ 'approvedrevs-unapprove' => 'bỏ chấp nhận',
 763+ 'approvedrevs-approveaction' => 'đặt $2 là phiên bản chấp nhận của “[[$1]]”',
 764+ 'approvedrevs-unapproveaction' => 'bỏ phiên bản chấp nhận của “[[$1]]”',
 765+ 'approvedrevs-viewlatest' => 'Xem phiên bản gần đây nhất.',
 766+ 'approvedpages' => 'Các trang đã chấp nhận',
 767+ 'right-approverevisions' => 'Đặt một phiên bản của trang wiki là phiên bản chấp nhận',
 768+ 'right-viewlinktolatest' => 'Xem văn bản giải thích ở đầu các trang có phiên bản chấp nhận',
 769+);
 770+
Property changes on: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs.i18n.php
___________________________________________________________________
Added: svn:eol-style
1771 + native
Index: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs.php
@@ -0,0 +1,76 @@
 2+<?php
 3+
 4+if ( !defined( 'MEDIAWIKI' ) ) die();
 5+
 6+/**
 7+ * @file
 8+ * @ingroup Extensions
 9+ *
 10+ * @author Yaron Koren
 11+ */
 12+
 13+define( 'APPROVED_REVS_VERSION', '0.4' );
 14+
 15+// credits
 16+$wgExtensionCredits['other'][] = array(
 17+ 'path' => __FILE__,
 18+ 'name' => 'Approved Revs',
 19+ 'version' => APPROVED_REVS_VERSION,
 20+ 'author' => 'Yaron Koren',
 21+ 'url' => 'http://www.mediawiki.org/wiki/Extension:Approved_Revs',
 22+ 'descriptionmsg' => 'approvedrevs-desc'
 23+);
 24+
 25+// global variables
 26+$egApprovedRevsIP = dirname( __FILE__ ) . '/';
 27+$egApprovedRevsNamespaces = array( NS_MAIN, NS_TEMPLATE, NS_HELP, NS_PROJECT );
 28+$egApprovedRevsBlankIfUnapproved = false;
 29+
 30+// internationalization
 31+$wgExtensionMessagesFiles['ApprovedRevs'] = $egApprovedRevsIP . 'ApprovedRevs.i18n.php';
 32+$wgExtensionAliasesFiles['ApprovedRevs'] = $egApprovedRevsIP . 'ApprovedRevs.alias.php';
 33+
 34+// register all classes
 35+$wgAutoloadClasses['ApprovedRevs'] = $egApprovedRevsIP . 'ApprovedRevs_body.php';
 36+$wgAutoloadClasses['ApprovedRevsHooks'] = $egApprovedRevsIP . 'ApprovedRevs.hooks.php';
 37+$wgSpecialPages['ApprovedPages'] = 'ARApprovedPages';
 38+$wgAutoloadClasses['ARApprovedPages'] = $egApprovedRevsIP . 'AR_ApprovedPages.php';
 39+$wgSpecialPageGroups['ApprovedPages'] = 'pages';
 40+$wgSpecialPages['UnapprovedPages'] = 'ARUnapprovedPages';
 41+$wgAutoloadClasses['ARUnapprovedPages'] = $egApprovedRevsIP . 'AR_UnapprovedPages.php';
 42+$wgSpecialPageGroups['UnapprovedPages'] = 'pages';
 43+
 44+// hooks
 45+$wgHooks['ParserBeforeInternalParse'][] = 'ApprovedRevsHooks::setApprovedRevForParsing';
 46+$wgHooks['ArticleSaveComplete'][] = 'ApprovedRevsHooks::setLatestAsApproved';
 47+$wgHooks['ArticleFromTitle'][] = 'ApprovedRevsHooks::showApprovedRevision';
 48+$wgHooks['ArticleAfterFetchContent'][] = 'ApprovedRevsHooks::showBlankIfUnapproved';
 49+$wgHooks['DisplayOldSubtitle'][] = 'ApprovedRevsHooks::setSubtitle';
 50+$wgHooks['SkinTemplateNavigation'][] = 'ApprovedRevsHooks::changeEditLink';
 51+$wgHooks['PageHistoryBeforeList'][] = 'ApprovedRevsHooks::storeApprovedRevisionForHistoryPage';
 52+$wgHooks['PageHistoryLineEnding'][] = 'ApprovedRevsHooks::addApprovalLink';
 53+$wgHooks['UnknownAction'][] = 'ApprovedRevsHooks::setAsApproved';
 54+$wgHooks['UnknownAction'][] = 'ApprovedRevsHooks::unsetAsApproved';
 55+$wgHooks['BeforeParserFetchTemplateAndtitle'][] = 'ApprovedRevsHooks::setTranscludedPageRev';
 56+$wgHooks['ArticleDeleteComplete'][] = 'ApprovedRevsHooks::deleteRevisionApproval';
 57+$wgHooks['MagicWordwgVariableIDs'][] = 'ApprovedRevsHooks::addMagicWordVariableIDs';
 58+$wgHooks['LanguageGetMagic'][] = 'ApprovedRevsHooks::addMagicWordLanguage';
 59+$wgHooks['ParserBeforeTidy'][] = 'ApprovedRevsHooks::handleMagicWords';
 60+$wgHooks['AdminLinks'][] = 'ApprovedRevsHooks::addToAdminLinks';
 61+$wgHooks['LoadExtensionSchemaUpdates'][] = 'ApprovedRevsHooks::describeDBSchema';
 62+
 63+// logging
 64+$wgLogTypes['approval'] = 'approval';
 65+$wgLogNames['approval'] = 'approvedrevs-logname';
 66+$wgLogHeaders['approval'] = 'approvedrevs-logdesc';
 67+$wgLogActions['approval/approve'] = 'approvedrevs-approveaction';
 68+$wgLogActions['approval/unapprove'] = 'approvedrevs-unapproveaction';
 69+
 70+// user rights
 71+$wgAvailableRights[] = 'approverevisions';
 72+$wgGroupPermissions['sysop']['approverevisions'] = true;
 73+$wgAvailableRights[] = 'viewlinktolatest';
 74+$wgGroupPermissions['*']['viewlinktolatest'] = true;
 75+
 76+// page properties
 77+$wgPageProps['approvedrevs'] = 'Whether or not the page is approvable';
Property changes on: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs.php
___________________________________________________________________
Added: svn:eol-style
178 + native
Index: tags/extensions/ApprovedRevs/REL_0_4/AR_ApprovedPages.php
@@ -0,0 +1,63 @@
 2+<?php
 3+/**
 4+ * Special page that lists all pages that have an approved revision.
 5+ *
 6+ * @author Yaron Koren
 7+ */
 8+
 9+if ( !defined( 'MEDIAWIKI' ) ) die();
 10+
 11+class ARApprovedPages extends SpecialPage {
 12+
 13+ /**
 14+ * Constructor
 15+ */
 16+ function __construct() {
 17+ parent::__construct( 'ApprovedPages' );
 18+ wfLoadExtensionMessages( 'ApprovedRevs' );
 19+ }
 20+
 21+ function execute( $query ) {
 22+ $this->setHeaders();
 23+ list( $limit, $offset ) = wfCheckLimits();
 24+ $rep = new ARApprovedPagesPage();
 25+ return $rep->doQuery( $offset, $limit );
 26+ }
 27+}
 28+
 29+class ARApprovedPagesPage extends QueryPage {
 30+ function getName() {
 31+ return "ApprovedPages";
 32+ }
 33+
 34+ function isExpensive() { return false; }
 35+
 36+ function isSyndicated() { return false; }
 37+
 38+ function getPageHeader() {
 39+ $header = Xml::element( 'p', null, wfMsg( 'approvedrevs-approvedpages-docu' ) ) . "<br />\n";
 40+ return $header;
 41+ }
 42+
 43+ function getPageFooter() {
 44+ }
 45+
 46+ function getSQL() {
 47+ $dbr = wfGetDB( DB_SLAVE );
 48+ $approved_revs = $dbr->tableName( 'approved_revs' );
 49+ $page = $dbr->tableName( 'page' );
 50+ return "SELECT 'Page' AS type,
 51+ p.page_id AS id
 52+ FROM $approved_revs ar JOIN $page p
 53+ ON ar.page_id = p.page_id";
 54+ }
 55+
 56+ function getOrder() {
 57+ return ' ORDER BY p.page_namespace, p.page_title ASC';
 58+ }
 59+
 60+ function formatResult( $skin, $result ) {
 61+ $title = Title::newFromId( $result->id );
 62+ return $skin->makeLinkObj( $title );
 63+ }
 64+}
Property changes on: tags/extensions/ApprovedRevs/REL_0_4/AR_ApprovedPages.php
___________________________________________________________________
Added: svn:eol-style
165 + native
Index: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs.hooks.php
@@ -0,0 +1,397 @@
 2+<?php
 3+
 4+/**
 5+ * Functions for the Approved Revs extension called by hooks in the MediaWiki
 6+ * code.
 7+ *
 8+ * @file
 9+ * @ingroup Extensions
 10+ *
 11+ * @author Yaron Koren
 12+ */
 13+
 14+class ApprovedRevsHooks {
 15+
 16+ /**
 17+ * If the page is being saved, set the text of the approved revision
 18+ * as the text to be parsed, for correct saving of categories,
 19+ * Semantic MediaWiki properties, etc.
 20+ */
 21+ static public function setApprovedRevForParsing( &$parser, &$text, &$stripState ) {
 22+ global $wgRequest;
 23+ $action = $wgRequest->getVal( 'action' );
 24+ if ( $action == 'submit' ) {
 25+ $title = $parser->getTitle();
 26+ if ( ! ApprovedRevs::pageIsApprovable( $title ) ) {
 27+ return true;
 28+ }
 29+ // if this is someone with approval power editing the
 30+ // page, exit now, because this will become the
 31+ // approved revision anyway
 32+ if ( $title->userCan( 'approverevisions' ) ) {
 33+ return true;
 34+ }
 35+ $approvedText = ApprovedRevs::getApprovedContent( $title );
 36+ if ( !is_null( $approvedText ) ) {
 37+ $text = $approvedText;
 38+ }
 39+ // if there's no approved revision, and 'blank if
 40+ // unapproved' is set to true, set the text to blank
 41+ if ( is_null( $approvedText ) ) {
 42+ global $egApprovedRevsBlankIfUnapproved;
 43+ if ( $egApprovedRevsBlankIfUnapproved ) {
 44+ $text = '';
 45+ }
 46+ }
 47+ }
 48+ return true;
 49+ }
 50+
 51+ /**
 52+ * If the user saving this page has approval power, automatically
 53+ * set this latest revision to be the approved one - don't bother
 54+ * logging the approval, though; the log is reserved for manual
 55+ * approvals.
 56+ */
 57+ static public function setLatestAsApproved( &$article ) {
 58+ $title = $article->getTitle();
 59+ if ( ! ApprovedRevs::pageIsApprovable( $title ) ) {
 60+ return true;
 61+ }
 62+ if ( $title->userCan( 'approverevisions' ) ) {
 63+ // the rev ID is actually passed in via the hook, but
 64+ // it's at the end of a very long set of parameters,
 65+ // so for the sake of sanity we'll just re-get it
 66+ // here instead
 67+ $latestRevisionID = $title->getLatestRevID();
 68+ // save approval without logging
 69+ ApprovedRevs::saveApprovedRevIDInDB( $title, $latestRevisionID );
 70+ }
 71+ return true;
 72+ }
 73+
 74+ /**
 75+ * Return the approved revision of the page, if there is one, and if
 76+ * the page is simply being viewed, and if no specific revision has
 77+ * been requested.
 78+ */
 79+ static function showApprovedRevision( &$title, &$article ) {
 80+ if ( ! ApprovedRevs::isDefaultPageRequest() ) {
 81+ return true;
 82+ }
 83+
 84+ $revisionID = ApprovedRevs::getApprovedRevID( $title );
 85+ if ( ! empty( $revisionID ) ) {
 86+ $article = new Article( $title, $revisionID );
 87+ }
 88+ return true;
 89+ }
 90+
 91+ public static function showBlankIfUnapproved( &$article, &$content ) {
 92+ if ( ! ApprovedRevs::isDefaultPageRequest() ) {
 93+ return true;
 94+ }
 95+
 96+ $title = $article->getTitle();
 97+ $revisionID = ApprovedRevs::getApprovedRevID( $title );
 98+ if ( empty( $revisionID ) ) {
 99+ global $egApprovedRevsBlankIfUnapproved;
 100+ if ( $egApprovedRevsBlankIfUnapproved ) {
 101+ $content = '';
 102+ global $wgOut;
 103+ $wgOut->setSubtitle( wfMsg( 'approvedrevs-blankpageshown' ) );
 104+ }
 105+ }
 106+ return true;
 107+ }
 108+
 109+ /**
 110+ * If user is viewing the page via its main URL, and what they're
 111+ * seeing is the approved revision of the page, remove the standard
 112+ * subtitle shown for all non-latest revisions, and replace it with
 113+ * either nothing or a message explaining the situation, depending
 114+ * on the user's rights
 115+ */
 116+ static function setSubtitle( &$article, &$revisionID ) {
 117+ if ( ! ApprovedRevs::hasApprovedRevision( $article->getTitle() ) ) {
 118+ return true;
 119+ }
 120+
 121+ global $wgRequest;
 122+ if ( $wgRequest->getCheck( 'oldid' ) ) {
 123+ return true;
 124+ }
 125+
 126+ if ( ! $article->getTitle()->userCan( 'viewlinktolatest' ) ) {
 127+ return false;
 128+ }
 129+
 130+ wfLoadExtensionMessages( 'ApprovedRevs' );
 131+ if ( $revisionID == $article->getLatest() ) {
 132+ $text = wfMsg( 'approvedrevs-approvedandlatest' );
 133+ } else {
 134+ $text = wfMsg( 'approvedrevs-notlatest' );
 135+ global $wgUser;
 136+ $sk = $wgUser->getSkin();
 137+ $curRevLink = $sk->link(
 138+ $article->getTitle(),
 139+ wfMsgHtml( 'approvedrevs-viewlatest' ),
 140+ array(),
 141+ array( 'oldid' => $article->getLatest() ),
 142+ array( 'known', 'noclasses' )
 143+ );
 144+ $text .= ' ' . $curRevLink;
 145+ }
 146+ global $wgOut;
 147+ $wgOut->setSubtitle( $text );
 148+ return false;
 149+ }
 150+
 151+ /**
 152+ * If user is looking at a revision through a main 'view' URL (no
 153+ * revision specified), have the 'edit' tab link to the basic
 154+ * 'action=edit' URL (i.e., the latest revision), no matter which
 155+ * revision they're actually on.
 156+ */
 157+ static function changeEditLink( &$skin, &$contentActions ) {
 158+ global $wgRequest;
 159+ if ( $wgRequest->getCheck( 'oldid' ) ) {
 160+ return true;
 161+ }
 162+ if ( ApprovedRevs::hasApprovedRevision( $skin->getTitle() ) ) {
 163+ // the URL is the same regardless of whether the tab
 164+ // is 'edit' or 'view source', but the "action" is
 165+ // different
 166+ if ( array_key_exists( 'edit', $contentActions['views'] ) ) {
 167+ $contentActions['views']['edit']['href'] = $skin->getTitle()->getLocalUrl( array( 'action' => 'edit' ) );
 168+ }
 169+ if ( array_key_exists( 'viewsource', $contentActions['views'] ) ) {
 170+ $contentActions['views']['viewsource']['href'] = $skin->getTitle()->getLocalUrl( array( 'action' => 'edit' ) );
 171+ }
 172+ }
 173+ return true;
 174+ }
 175+
 176+ /**
 177+ * Store the approved revision ID, if any, directly in the object
 178+ * for this article - this is called so that a query to the database
 179+ * can be made just once for every view of a history page, instead
 180+ * of for every row.
 181+ */
 182+ static function storeApprovedRevisionForHistoryPage( &$article ) {
 183+ // this will be null if there's no ID
 184+ $approvedRevID = ApprovedRevs::getApprovedRevID( $article->getTitle() );
 185+ $article->approvedRevID = $approvedRevID;
 186+ // also load extension messages, while we're at it
 187+ wfLoadExtensionMessages( 'ApprovedRevs' );
 188+ return true;
 189+ }
 190+
 191+ /**
 192+ * If the user is allowed to make revision approvals, add either an
 193+ * 'approve' or 'unapprove' link to the end of this row in the page
 194+ * history, depending on whether or not this is already the approved
 195+ * revision. If it's the approved revision also add on a "star"
 196+ * icon, regardless of the user.
 197+ */
 198+ static function addApprovalLink( $historyPage, &$row , &$s ) {
 199+ $title = $historyPage->getTitle();
 200+ if ( ! ApprovedRevs::pageIsApprovable( $title ) ) {
 201+ return true;
 202+ }
 203+
 204+ $article = $historyPage->getArticle();
 205+ // use the rev ID field in the $article object, which was
 206+ // stored earlier
 207+ $approvedRevID = $article->approvedRevID;
 208+ if ( $row->rev_id == $approvedRevID ) {
 209+ $s .= '&#9733; ';
 210+ }
 211+ if ( $title->userCan( 'approverevisions' ) ) {
 212+ if ( $row->rev_id == $approvedRevID ) {
 213+ $url = $title->getLocalUrl(
 214+ array( 'action' => 'unapprove' )
 215+ );
 216+ $msg = wfMsg( 'approvedrevs-unapprove' );
 217+ } else {
 218+ $url = $title->getLocalUrl(
 219+ array( 'action' => 'approve', 'oldid' => $row->rev_id )
 220+ );
 221+ $msg = wfMsg( 'approvedrevs-approve' );
 222+ }
 223+ $s .= '(' . Xml::element(
 224+ 'a',
 225+ array( 'href' => $url ),
 226+ $msg
 227+ ) . ')';
 228+ }
 229+ return true;
 230+ }
 231+
 232+ /**
 233+ * Handle the 'approve' action, defined for ApprovedRevs -
 234+ * mark the revision as approved, log it, and show a message to
 235+ * the user.
 236+ */
 237+ static function setAsApproved( $action, $article ) {
 238+ // return "true" if the call failed (meaning, pass on handling
 239+ // of the hook to others), and "false" otherwise
 240+ if ( $action != 'approve' ) {
 241+ return true;
 242+ }
 243+ $title = $article->getTitle();
 244+ if ( ! ApprovedRevs::pageIsApprovable( $title ) ) {
 245+ return true;
 246+ }
 247+ if ( ! $title->userCan( 'approverevisions' ) ) {
 248+ return true;
 249+ }
 250+ global $wgRequest;
 251+ if ( ! $wgRequest->getCheck( 'oldid' ) ) {
 252+ return true;
 253+ }
 254+ $revision_id = $wgRequest->getVal( 'oldid' );
 255+ ApprovedRevs::setApprovedRevID( $title, $revision_id );
 256+
 257+ global $wgOut;
 258+ $wgOut->addHTML( ' ' . Xml::element(
 259+ 'div',
 260+ array( 'class' => 'successbox' ),
 261+ wfMsg( 'approvedrevs-approvesuccess' )
 262+ ) . "\n" );
 263+ $wgOut->addHTML( ' ' . Xml::element(
 264+ 'p',
 265+ array( 'style' => 'clear: both' )
 266+ ) . "\n" );
 267+
 268+ // show the revision, instead of the history page
 269+ $article->doPurge();
 270+ $article->view();
 271+ return false;
 272+ }
 273+
 274+ /**
 275+ * Handle the 'unapprove' action, defined for ApprovedRevs -
 276+ * unset the previously-approved revision, log the change, and show
 277+ * a message to the user.
 278+ */
 279+ static function unsetAsApproved( $action, $article ) {
 280+ // return "true" if the call failed (meaning, pass on handling
 281+ // of the hook to others), and "false" otherwise
 282+ if ( $action != 'unapprove' ) {
 283+ return true;
 284+ }
 285+ $title = $article->getTitle();
 286+ if ( ! $title->userCan( 'approverevisions' ) ) {
 287+ return true;
 288+ }
 289+
 290+ ApprovedRevs::unsetApproval( $title );
 291+
 292+ // the message depends on whether the page should display
 293+ // a blank right now or not
 294+ global $egApprovedRevsBlankIfUnapproved;
 295+ if ( $egApprovedRevsBlankIfUnapproved ) {
 296+ $successMsg = wfMsg( 'approvedrevs-unapprovesuccess2' );
 297+ } else {
 298+ $successMsg = wfMsg( 'approvedrevs-unapprovesuccess' );
 299+ }
 300+
 301+ global $wgOut;
 302+ $wgOut->addHTML( ' ' . Xml::element(
 303+ 'div',
 304+ array( 'class' => 'successbox' ),
 305+ $successMsg
 306+ ) . "\n" );
 307+ $wgOut->addHTML( ' ' . Xml::element(
 308+ 'p',
 309+ array( 'style' => 'clear: both' )
 310+ ) . "\n" );
 311+
 312+ // show the revision, instead of the history page
 313+ $article->doPurge();
 314+ $article->view();
 315+ return false;
 316+ }
 317+
 318+ /**
 319+ * Use the approved revision, if it exists, for templates and other
 320+ * transcluded pages.
 321+ */
 322+ static function setTranscludedPageRev( $parser, &$title, &$skip, &$id ) {
 323+ $revision_id = ApprovedRevs::getApprovedRevID( $title );
 324+ if ( !is_null( $revision_id ) ) {
 325+ $id = $revision_id;
 326+ }
 327+ return true;
 328+ }
 329+
 330+ /**
 331+ * Delete the approval record in the database if the page itself is
 332+ * deleted.
 333+ */
 334+ static function deleteRevisionApproval( &$article, &$user, $reason, $id ) {
 335+ ApprovedRevs::deleteRevisionApproval( $article->getTitle() );
 336+ return true;
 337+ }
 338+
 339+ /**
 340+ * Register magic-word variable IDs
 341+ */
 342+ static function addMagicWordVariableIDs( &$magicWordVariableIDs ) {
 343+ $magicWordVariableIDs[] = 'MAG_APPROVEDREVS';
 344+ return true;
 345+ }
 346+
 347+ /**
 348+ * Set the actual value of the magic words
 349+ */
 350+ static function addMagicWordLanguage( &$magicWords, $langCode ) {
 351+ switch( $langCode ) {
 352+ default:
 353+ $magicWords['MAG_APPROVEDREVS'] = array( 0, '__APPROVEDREVS__' );
 354+ }
 355+ return true;
 356+ }
 357+
 358+ /**
 359+ * Set values in the page_props table based on the presence of the
 360+ * 'APPROVEDREVS' magic word in a page
 361+ */
 362+ static function handleMagicWords( &$parser, &$text ) {
 363+ $mw_hide = MagicWord::get( 'MAG_APPROVEDREVS' );
 364+ if ( $mw_hide->matchAndRemove( $text ) ) {
 365+ $parser->mOutput->setProperty( 'approvedrevs', 'y' );
 366+ }
 367+ return true;
 368+ }
 369+
 370+ /**
 371+ * Add a link to 'Special:ApprovedPages' to the the page
 372+ * 'Special:AdminLinks', defined by the Admin Links extension.
 373+ */
 374+ function addToAdminLinks( &$admin_links_tree ) {
 375+ $general_section = $admin_links_tree->getSection( wfMsg( 'adminlinks_general' ) );
 376+ $extensions_row = $general_section->getRow( 'extensions' );
 377+ if ( is_null( $extensions_row ) ) {
 378+ $extensions_row = new ALRow( 'extensions' );
 379+ $general_section->addRow( $extensions_row );
 380+ }
 381+ $extensions_row->addItem( ALItem::newFromSpecialPage( 'ApprovedPages' ) );
 382+ $extensions_row->addItem( ALItem::newFromSpecialPage( 'UnapprovedPages' ) );
 383+ return true;
 384+ }
 385+
 386+ public static function describeDBSchema() {
 387+ global $wgExtNewTables, $wgDBtype;
 388+
 389+ $dir = dirname( __FILE__ );
 390+
 391+ // DB updates
 392+ // For now, there's just a single SQL file for all DB types.
 393+ //if ( $wgDBtype == 'mysql' ) {
 394+ $wgExtNewTables[] = array( 'approved_revs', "$dir/ApprovedRevs.sql" );
 395+ //}
 396+ return true;
 397+ }
 398+}
Property changes on: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs.hooks.php
___________________________________________________________________
Added: svn:eol-style
1399 + native
Index: tags/extensions/ApprovedRevs/REL_0_4/AR_UnapprovedPages.php
@@ -0,0 +1,64 @@
 2+<?php
 3+/**
 4+ * Special page that lists all pages that have an approved revision.
 5+ *
 6+ * @author Yaron Koren
 7+ */
 8+
 9+if ( !defined( 'MEDIAWIKI' ) ) die();
 10+
 11+class ARUnapprovedPages extends SpecialPage {
 12+
 13+ /**
 14+ * Constructor
 15+ */
 16+ function ARUnapprovedPages() {
 17+ SpecialPage::SpecialPage( 'UnapprovedPages' );
 18+ wfLoadExtensionMessages( 'ApprovedRevs' );
 19+ }
 20+
 21+ function execute( $query ) {
 22+ $this->setHeaders();
 23+ list( $limit, $offset ) = wfCheckLimits();
 24+ $rep = new ARUnapprovedPagesPage();
 25+ return $rep->doQuery( $offset, $limit );
 26+ }
 27+}
 28+
 29+class ARUnapprovedPagesPage extends QueryPage {
 30+ function getName() {
 31+ return "UnapprovedPages";
 32+ }
 33+
 34+ function isExpensive() { return false; }
 35+
 36+ function isSyndicated() { return false; }
 37+
 38+ function getPageHeader() {
 39+ $header = Xml::element( 'p', null, wfMsg( 'approvedrevs-unapprovedpages-docu' ) ) . "<br />\n";
 40+ return $header;
 41+ }
 42+
 43+ function getPageFooter() {
 44+ }
 45+
 46+ function getSQL() {
 47+ $dbr = wfGetDB( DB_SLAVE );
 48+ $approved_revs = $dbr->tableName( 'approved_revs' );
 49+ $page = $dbr->tableName( 'page' );
 50+ return "SELECT 'Page' AS type,
 51+ p.page_id AS id
 52+ FROM $approved_revs ar RIGHT OUTER JOIN $page p
 53+ ON ar.page_id = p.page_id
 54+ WHERE ar.page_id IS NULL";
 55+ }
 56+
 57+ function getOrder() {
 58+ return ' ORDER BY p.page_namespace, p.page_title ASC';
 59+ }
 60+
 61+ function formatResult( $skin, $result ) {
 62+ $title = Title::newFromId( $result->id );
 63+ return $skin->makeLinkObj( $title );
 64+ }
 65+}
Index: tags/extensions/ApprovedRevs/REL_0_4/README
@@ -0,0 +1,36 @@
 2+Approved Revs Extension
 3+
 4+ Version 0.4
 5+ Yaron Koren
 6+
 7+This is free software licensed under the GNU General Public License. Please
 8+see http://www.gnu.org/copyleft/gpl.html for further details, including the
 9+full text and terms of the license.
 10+
 11+== Overview ==
 12+
 13+Approved Revs is an extension to MediaWiki that lets administrators mark a
 14+certain revision of a page as "approved". The approved revision is the one
 15+displayed when users view the page at its main URL.
 16+
 17+For more information, see the extension homepage at:
 18+http://www.mediawiki.org/wiki/Extension:Approved_Revs
 19+
 20+== Requirements ==
 21+
 22+This version of the Approved Revs extension requires MediaWiki 1.11 or
 23+higher, except for the approveAllPages.php script, which requires
 24+MediaWiki 1.16 or higher.
 25+
 26+== Installation ==
 27+
 28+To install the extension, place the entire 'ApprovedRevs' directory
 29+within your MediaWiki 'extensions' directory, then add the following
 30+line to your 'LocalSettings.php' file:
 31+
 32+ require_once( "$IP/extensions/ApprovedRevs/ApprovedRevs.php" );
 33+
 34+== Contact ==
 35+
 36+Comments, questions, suggestions and bug reports should be sent to Yaron
 37+Koren, at yaron57@gmail.com.
Property changes on: tags/extensions/ApprovedRevs/REL_0_4/README
___________________________________________________________________
Added: svn:eol-style
138 + native
Index: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs.alias.php
@@ -0,0 +1,19 @@
 2+<?php
 3+/**
 4+ * Aliases for special pages of Approved Revs extension.
 5+ *
 6+ */
 7+
 8+$specialPageAliases = array();
 9+
 10+/** English
 11+ */
 12+$specialPageAliases['en'] = array(
 13+ 'ApprovedPages' => array( 'ApprovedPages' ),
 14+ 'UnapprovedPages' => array( 'UnapprovedPages' ),
 15+);
 16+
 17+/**
 18+ * For backwards compatibility with MediaWiki 1.15 and earlier.
 19+ */
 20+$aliases =& $specialPageAliases;
Property changes on: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs.alias.php
___________________________________________________________________
Added: svn:keywords
121 + Id
Added: svn:eol-style
222 + native
Index: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs.sql
@@ -0,0 +1,6 @@
 2+CREATE TABLE /*_*/approved_revs (
 3+ page_id int(8) default NULL,
 4+ rev_id int(8) default NULL
 5+) /*$wgDBTableOptions*/;
 6+
 7+CREATE UNIQUE INDEX approved_revs_page_id ON /*_*/approved_revs (page_id);
Property changes on: tags/extensions/ApprovedRevs/REL_0_4/ApprovedRevs.sql
___________________________________________________________________
Added: svn:eol-style
18 + native

Status & tagging log