summaryrefslogtreecommitdiff
path: root/includes/FeedUtils.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/FeedUtils.php')
-rw-r--r--includes/FeedUtils.php76
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
+}