r106814 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r106813‎ | r106814 | r106815 >
Date:17:11, 20 December 2011
Author:maxsem
Status:resolved (Comments)
Tags:
Comment:
Roughly done. Needs i18n review, messages 'ffeed-*-page' should be left untranslated
Modified paths:
  • /trunk/extensions/FeaturedFeeds/FeaturedFeeds.body.php (modified) (history)
  • /trunk/extensions/FeaturedFeeds/FeaturedFeeds.i18n.php (added) (history)
  • /trunk/extensions/FeaturedFeeds/FeaturedFeeds.php (modified) (history)
  • /trunk/extensions/FeaturedFeeds/FeaturedFeedsWMF.php (modified) (history)

Diff [purge]

Index: trunk/extensions/FeaturedFeeds/FeaturedFeedsWMF.php
@@ -1,39 +1,51 @@
22 <?php
3 -
43 /*
54 * Feed settings for WMF projects
65 */
76
 7+if ( !defined( 'MEDIAWIKI' ) ) {
 8+ die( 'Not a valid entry point' );
 9+}
 10+
811 $wgHooks['FeaturedFeeds::getFeeds'][] = 'wfFeaturedFeedsWMF_getFeeds';
912
1013 function wfFeaturedFeedsWMF_getFeeds( &$feeds ) {
1114 global $wgConf, $wgDBname;
1215 list( $site, $lang ) = $wgConf->siteFromDB( $wgDBname );
 16+ $media = array(
 17+ 'potd' => array( // Picture Of The Day
 18+ 'page' => 'ffeed-potd-page',
 19+ 'feedName' => 'ffeed-potd-title',
 20+ 'description' => 'ffeed-potd-desc',
 21+ 'entryName' => 'ffeed-potd-entry',
 22+ ),
 23+ 'motd' => array( // Media Of The Day
 24+ 'page' => 'ffeed-motd-page',
 25+ 'feedName' => 'ffeed-motd-title',
 26+ 'description' => 'ffeed-motd-desc',
 27+ 'entryName' => 'ffeed-motd-entry',
 28+ ),
 29+ );
1330 switch ( $site ) {
1431 case 'wikipedia':
1532 $feeds += array(
1633 'featured' => array(
17 - 'page' => 'ffeed-wp-featured-page',
18 - 'feedName' => 'ffeed-wp-featured-title',
19 - 'description' => 'ffeed-wp-featured-desc',
20 - 'entryName' => 'ffeed-wp-featured-entry',
 34+ 'page' => 'ffeed-fa-page',
 35+ 'feedName' => 'ffeed-fa-title',
 36+ 'description' => 'ffeed-fa-desc',
 37+ 'entryName' => 'ffeed-fa-entry',
2138 ),
2239 'onthisday' => array(
23 - 'page' => 'ffeed-wp-onthisday-page',
24 - 'feedName' => 'ffeed-wp-onthisday-title',
25 - 'description' => 'ffeed-wp-onthisday-desc',
26 - 'entryName' => 'ffeed-wp-onthisday-entry',
 40+ 'page' => 'ffeed-onthisday-page',
 41+ 'feedName' => 'ffeed-onthisday-title',
 42+ 'description' => 'ffeed-onthisday-desc',
 43+ 'entryName' => 'ffeed-onthisday-entry',
2744 ),
2845 );
 46+ $feeds += $media;
2947 break;
3048 case 'commons':
31 - $feeds['featured'] = array(
32 - 'page' => 'ffeed-com-featured-page',
33 - 'feedName' => 'ffeed-com-featured-title',
34 - 'description' => 'ffeed-com-featured-desc',
35 - 'entryName' => 'ffeed-com-featured-entry',
36 - 'inUserLanguage' => true,
37 - );
 49+ $feeds += $media;
3850 break;
3951 }
4052 return true;
Index: trunk/extensions/FeaturedFeeds/FeaturedFeeds.body.php
@@ -24,12 +24,37 @@
2525
2626 if ( !$feeds ) {
2727 $feeds = self::getFeedsInternal( $langCode );
28 - $wgMemc->set( $key, $feeds, 3600 ); //FIXME
 28+ // add 10 seconds to cater for time deviation between servers
 29+ $expiry = self::todaysStart() + 24 * 3600 - wfTimestamp() + 10;
 30+ $wgMemc->set( $key, $feeds, min( $expiry, 3600 ) );
2931 }
3032 $cache[$langCode] = $feeds;
3133 return $feeds;
3234 }
3335
 36+ /**
 37+ * Adds feeds to the page header
 38+ *
 39+ * @param OutputPage $out
 40+ * @return bool
 41+ */
 42+ public static function beforePageDisplay( OutputPage &$out ) {
 43+ global $wgAdvertisedFeedTypes;
 44+ if ( $out->getTitle()->isMainPage() ) {
 45+ foreach ( self::getFeeds( $out->getLanguage()->getCode() ) as $feed ) {
 46+ foreach ( $wgAdvertisedFeedTypes as $type ) {
 47+ $out->addLink( array(
 48+ 'rel' => 'alternate',
 49+ 'type' => "application/$type+xml",
 50+ 'title' => $feed['name'],
 51+ 'href' => self::getFeedURL( $feed, $type ),
 52+ ) );
 53+ }
 54+ }
 55+ }
 56+ return true;
 57+ }
 58+
3459 private static function getFeedsInternal( $langCode ) {
3560 global $wgFeaturedFeeds, $wgFeaturedFeedsDefaults, $wgContLang;
3661
@@ -113,6 +138,13 @@
114139 return $time;
115140 }
116141
 142+ /**
 143+ * Returns a URL to the feed
 144+ *
 145+ * @param Array $feed: Feed description returned by getFeeds()
 146+ * @param type $format: Feed format, 'rss' or 'atom'
 147+ * @return String
 148+ */
117149 public static function getFeedURL( $feed, $format ) {
118150 global $wgContLang;
119151
@@ -126,16 +158,4 @@
127159 }
128160 return wfScript( 'api' ) . '?' . wfArrayToCGI( $options );
129161 }
130 -
131 - public static function beforePageDisplay( OutputPage &$out ) {
132 -// global $wgFeedClasses;
133 -// if ( $out->getTitle()->isMainPage() ) {
134 -// foreach ( self::getFeeds( $out->getLanguage()->getCode() ) as $name => $feed ) {
135 -// foreach ( array_keys( $wgFeedClasses ) as $format ) {
136 -// $out->addFeedLink( $format, FeaturedFeeds::getFeedURL( $feed, $format ) );
137 -// }
138 -// }
139 -// }
140 - return true;
141 - }
142162 }
\ No newline at end of file
Index: trunk/extensions/FeaturedFeeds/FeaturedFeeds.i18n.php
@@ -0,0 +1,40 @@
 2+<?php
 3+/**
 4+ * Internationalisation file for FeaturedFeeds extension.
 5+ *
 6+ * @file
 7+ * @ingroup Extensions
 8+ */
 9+
 10+$messages = array();
 11+
 12+/** English
 13+ * @author Max Semenik
 14+ */
 15+$messages['en'] = array(
 16+ 'ffeed-desc' => 'Adds syndication feeds of wiki\'s featured content.',
 17+
 18+ # Featured Article
 19+ 'ffeed-fa-page' => '', # do not localise
 20+ 'ffeed-fa-title' => '{{SITENAME}} featured articles feed',
 21+ 'ffeed-fa-desc' => 'Best articles {{SITENAME}} has to offer',
 22+ 'ffeed-fa-entry' => '{{LOCALMONTHNAME}} {{LOCALDAY}} {{SITENAME}} featured article',
 23+
 24+ # On this day...
 25+ 'ffeed-onthisday-page' => '', # do not localise
 26+ 'ffeed-onthisday-title' => '{{SITENAME}} "On this day..." feed',
 27+ 'ffeed-onthisday-desc' => 'Historical events on this day',
 28+ 'ffeed-onthisday-entry' => 'On this day: {{LOCALMONTHNAME}} {{LOCALDAY}}',
 29+
 30+ // Media Of The Day
 31+ 'ffeed-motd-page' => '', # do not localise
 32+ 'ffeed-motd-title' => '{{SITENAME}} media of the day feed',
 33+ 'ffeed-motd-desc' => 'Some of the finest media on {{SITENAME}}',
 34+ 'ffeed-motd-entry' => '{{SITENAME}} Media of the day for {{LOCALMONTHNAME}} {{LOCALDAY}}',
 35+
 36+ # Picture Of The Day
 37+ 'ffeed-potd-page' => '', # do not localise
 38+ 'ffeed-potd-title' => '{{SITENAME}} Picture of the day feed',
 39+ 'ffeed-potd-desc' => 'Some of the finest images on {{SITENAME}}',
 40+ 'ffeed-potd-entry' => '{{SITENAME}} Picture of the day for {{LOCALMONTHNAME}} {{LOCALDAY}}',
 41+);
Property changes on: trunk/extensions/FeaturedFeeds/FeaturedFeeds.i18n.php
___________________________________________________________________
Added: svn:eol-style
142 + native
Index: trunk/extensions/FeaturedFeeds/FeaturedFeeds.php
@@ -4,7 +4,11 @@
55 * License: WTFPL 2.0
66 */
77
 8+if ( !defined( 'MEDIAWIKI' ) ) {
 9+ die( 'Not a valid entry point' );
 10+}
811
 12+
913 $wgExtensionCredits['other'][] = array(
1014 'path' => __FILE__,
1115 'name' => 'FeaturedFeeds',
@@ -18,6 +22,8 @@
1923 $wgAutoloadClasses['FeaturedFeeds'] = "$dir/FeaturedFeeds.body.php";
2024 $wgAutoloadClasses['ApiFeaturedFeeds'] = "$dir/ApiFeaturedFeeds.php";
2125
 26+$wgExtensionMessagesFiles['FeaturedFeeds'] = "$dir/FeaturedFeeds.i18n.php";
 27+
2228 $wgAPIModules['featuredfeed'] = 'ApiFeaturedFeeds';
2329
2430 $wgHooks['BeforePageDisplay'][] = 'FeaturedFeeds::beforePageDisplay';

Comments

#Comment by Raymond (talk | contribs)   21:46, 20 December 2011

Please add message documentation for the newly added messages. Thanks.

Status & tagging log