http://www.mediawiki.org/wiki/Special:Code/MediaWiki/88366

Revision: 88366
Author:   raymond
Date:     2011-05-18 12:27:18 +0000 (Wed, 18 May 2011)
Log Message:
-----------
Commit work in progress: This extensions provides the possibility to get an 
atom feed from private wikis.
It uses the user specific watchlist token defined in Special:Preferences, 
section "Watchlist".
http://link.to.your.wiki/index.php/Special:RecentChanges?feed=atom&username=foo&key=bar
See README for todo's

Added Paths:
-----------
    trunk/extensions/FeedsFromPrivateWikis/
    trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.hooks.php
    trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.i18n.php
    trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.php
    trunk/extensions/FeedsFromPrivateWikis/README

Added: trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.hooks.php
===================================================================
--- trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.hooks.php      
                        (rev 0)
+++ trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.hooks.php      
2011-05-18 12:27:18 UTC (rev 88366)
@@ -0,0 +1,28 @@
+<?php
+if ( !defined( 'MEDIAWIKI' ) ) {
+       die();
+}
+
+class FeedsFromPrivateWikis {
+
+       static function efUserCan( &$title, &$user, $action, &$result ) {
+               global $wgRequest;
+               $feed = $wgRequest->getText( 'feed' );
+               
+               if ( $action != 'read' || $feed != 'atom' ) {
+                       return true;
+               }
+       
+               $username = $wgRequest->getText( 'username' );
+               $key = $wgRequest->getText( 'key' );
+               $editor = User::newFromName( $username );
+               $result = null;
+               if ( $editor ) {
+                       if ( $key == $editor->getOption( 'watchlisttoken' ) ) {
+                               $result = true;
+                       }
+               }
+               
+               return false;
+       }
+}


Property changes on: 
trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.hooks.php
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.i18n.php
===================================================================
--- trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.i18n.php       
                        (rev 0)
+++ trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.i18n.php       
2011-05-18 12:27:18 UTC (rev 88366)
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Internationalisation file for FeedsFromPrivateWikis extension.
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Raimond Spekking
+ * @copyright © 2011 Raimond Spekking for Wikimedia Deutschland e.V.
+ * @license GNU General Public Licence 2.0 or later
+ */
+
+$messages = array();
+
+/** English
+ * @author Raimond Spekking
+ */
+$messages['en'] = array(
+       'feedsfromprivatewikis-desc' => 'Adds possibilty to get feeds from 
private wikis',
+);
+


Property changes on: 
trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.i18n.php
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.php
===================================================================
--- trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.php            
                (rev 0)
+++ trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.php    
2011-05-18 12:27:18 UTC (rev 88366)
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Setup for FeedsFromPrivateWikis extension
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Raimond Spekking
+ * @copyright © 2011 Raimond Spekking for Wikimedia Deutschland e.V.
+ * @licence GNU General Public Licence 2.0 or later
+ */
+
+if( !defined( 'MEDIAWIKI' ) ) {
+       echo( "This file is an extension to the MediaWiki software and cannot 
be used standalone.\n" );
+       die( 1 );
+}
+
+// Extension credits that will show up on Special:Version
+$wgExtensionCredits['specialpage'][] = array(
+       'path' => __FILE__,
+       'name' => 'FeedsFromPrivateWikis',
+       'version' => '0.1',
+       'author' => 'Raimond Spekking',
+       'url' => 
'http://www.mediawiki.org/wiki/Extension:FeedsFromPrivateWikis',
+       'descriptionmsg' => 'feedsfromprivatewikis-desc',
+);
+
+$dir = dirname( __FILE__ ) . '/';
+$wgExtensionMessagesFiles['FeedsFromPrivateWikis'] = $dir . 
'FeedsFromPrivateWikis.i18n.php';
+
+$wgAutoloadClasses['FeedsFromPrivateWikis'] = $dir . 
'FeedsFromPrivateWikis.hooks.php';
+
+$wgHooks['userCan'][] = 'FeedsFromPrivateWikis::efUserCan';
+


Property changes on: 
trunk/extensions/FeedsFromPrivateWikis/FeedsFromPrivateWikis.php
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/extensions/FeedsFromPrivateWikis/README
===================================================================
--- trunk/extensions/FeedsFromPrivateWikis/README                               
(rev 0)
+++ trunk/extensions/FeedsFromPrivateWikis/README       2011-05-18 12:27:18 UTC 
(rev 88366)
@@ -0,0 +1,15 @@
+This extensions provides the possibility to get an atom feed from private 
wikis.
+
+It uses the user specific watchlist token defined in Special:Preferences, 
section "Watchlist".
+
+http://link.to.your.wiki/index.php/Special:RecentChanges?feed=atom&username=foo&key=bar
+
+Other actions are not allowed with this combination of username and key.
+
+foo = Username
+bar = Watchlist token
+
+== to do ==
+1. Modify the atom link in Special:RecentChanges to make it more user friendly
+2. Expand this technique to the other feeds: Page history, Special:NewPages,
+   Special:Contributions etc.


Property changes on: trunk/extensions/FeedsFromPrivateWikis/README
___________________________________________________________________
Added: svn:eol-style
   + native


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to