diff options
Diffstat (limited to 'includes/FeedUtils.php')
-rw-r--r-- | includes/FeedUtils.php | 76 |
1 files changed, 56 insertions, 20 deletions
diff --git a/includes/FeedUtils.php b/includes/FeedUtils.php index 38bff363..7e841f32 100644 --- a/includes/FeedUtils.php +++ b/includes/FeedUtils.php @@ -1,8 +1,20 @@ <?php -// TODO: document +/** + * Helper functions for feeds + * + * @ingroup Feed + */ class FeedUtils { + /** + * Check whether feed's cache should be cleared; for changes feeds + * If the feed should be purged; $timekey and $key will be removed from + * $messageMemc + * + * @param $timekey String: cache key of the timestamp of the last item + * @param $key String: cache key of feed's content + */ public static function checkPurge( $timekey, $key ) { global $wgRequest, $wgUser, $messageMemc; $purge = $wgRequest->getVal( 'action' ) === 'purge'; @@ -12,8 +24,14 @@ class FeedUtils { } } + /** + * Check whether feeds can be used and that $type is a valid feed type + * + * @param $type String: feed type, as requested by the user + * @return Boolean + */ public static function checkFeedOutput( $type ) { - global $wgFeed, $wgOut, $wgFeedClasses; + global $wgFeed, $wgFeedClasses; if ( !$wgFeed ) { global $wgOut; @@ -30,8 +48,11 @@ class FeedUtils { } /** - * Format a diff for the newsfeed - */ + * Format a diff for the newsfeed + * + * @param $row Object: row from the recentchanges table + * @return String + */ public static function formatDiff( $row ) { global $wgUser; @@ -53,9 +74,20 @@ class FeedUtils { $actiontext ); } + /** + * Really format a diff for the newsfeed + * + * @param $title Title object + * @param $oldid Integer: old revision's id + * @param $newid Integer: new revision's id + * @param $timestamp Integer: new revision's timestamp + * @param $comment String: new revision's comment + * @param $actiontext String: text of the action; in case of log event + * @return String + */ public static function formatDiffRow( $title, $oldid, $newid, $timestamp, $comment, $actiontext='' ) { global $wgFeedDiffCutoff, $wgContLang, $wgUser; - wfProfileIn( __FUNCTION__ ); + wfProfileIn( __METHOD__ ); $skin = $wgUser->getSkin(); # log enties @@ -71,12 +103,14 @@ class FeedUtils { $anon = new User(); $accErrors = $title->getUserPermissionsErrors( 'read', $anon, true ); - if( $title->getNamespace() >= 0 && !$accErrors ) { + if( $title->getNamespace() >= 0 && !$accErrors && $newid ) { if( $oldid ) { - wfProfileIn( __FUNCTION__."-dodiff" ); + wfProfileIn( __METHOD__."-dodiff" ); #$diffText = $de->getDiff( wfMsg( 'revisionasof', - # $wgContLang->timeanddate( $timestamp ) ), + # $wgContLang->timeanddate( $timestamp ), + # $wgContLang->date( $timestamp ), + # $wgContLang->time( $timestamp ) ), # wfMsg( 'currentrev' ) ); // Don't bother generating the diff if we won't be able to show it @@ -85,7 +119,9 @@ class FeedUtils { $diffText = $de->getDiff( wfMsg( 'previousrevision' ), // hack wfMsg( 'revisionasof', - $wgContLang->timeanddate( $timestamp ) ) ); + $wgContLang->timeanddate( $timestamp ), + $wgContLang->date( $timestamp ), + $wgContLang->time( $timestamp ) ) ); } if ( ( strlen( $diffText ) > $wgFeedDiffCutoff ) || ( $wgFeedDiffCutoff <= 0 ) ) { @@ -106,7 +142,7 @@ class FeedUtils { $diffText = UtfNormal::cleanUp( $diffText ); $diffText = self::applyDiffStyle( $diffText ); } - wfProfileOut( __FUNCTION__."-dodiff" ); + wfProfileOut( __METHOD__."-dodiff" ); } else { $rev = Revision::newFromId( $newid ); if( is_null( $rev ) ) { @@ -120,19 +156,19 @@ class FeedUtils { $completeText .= $diffText; } - wfProfileOut( __FUNCTION__ ); + wfProfileOut( __METHOD__ ); return $completeText; } /** - * Hacky application of diff styles for the feeds. - * Might be 'cleaner' to use DOM or XSLT or something, - * but *gack* it's a pain in the ass. - * - * @param $text String: - * @return string - * @private - */ + * Hacky application of diff styles for the feeds. + * Might be 'cleaner' to use DOM or XSLT or something, + * but *gack* it's a pain in the ass. + * + * @param $text String: diff's HTML output + * @return String: modified HTML + * @private + */ public static function applyDiffStyle( $text ) { $styles = array( 'diff' => 'background-color: white; color:black;', @@ -152,4 +188,4 @@ class FeedUtils { return $text; } -}
\ No newline at end of file +} |