var $Title = "Wiki";
var $Description = "";
var $Url = "";
+ var $Date = "";
- function FeedItem( $Title, $Description, $Url ) {
+ function FeedItem( $Title, $Description, $Url, $Date = "" ) {
$this->Title = $Title;
$this->Description = $Description;
$this->Url = $Url;
+ $this->Date = $Date;
}
/* Static... */
global $wgLanguageCode;
return $wgLanguageCode;
}
+ function getDate() {
+ return $this->Date;
+ }
}
class ChannelFeed extends FeedItem {
}
class RSSFeed extends ChannelFeed {
+ function formatTime( $ts ) {
+ return gmdate( "D, d M Y H:i:s T", wfTimestamp2Unix( $ts ) );
+ }
+
function outHeader() {
+ global $wgVersion;
+
print '<' . '?xml version="1.0" encoding="utf-8"?' . ">\n";
- ?><!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">
-<rss version="0.91">
+ ?><rss version="2.0">
<channel>
<title><?php print $this->getTitle() ?></title>
<link><?php print $this->getUrl() ?></link>
<description><?php print $this->getDescription() ?></description>
<language><?php print $this->getLanguage() ?></language>
+ <generator>MediaWiki <?php print $wgVersion ?></generator>
+ <lastBuildDate><?php print $this->formatTime( wfTimestampNow() ) ?></lastBuildDate>
<?php
}
<title><?php print $item->getTitle() ?></title>
<link><?php print $item->getUrl() ?></link>
<description><?php print $item->getDescription() ?></description>
+ <?php if( $item->getDate() ) { ?><pubDate><?php print $this->formatTime( $item->getDate() ) ?></pubDate><?php } ?>
+
</item>
<?php
}
}
# Override for custom handling. If the titles/links are ok, just do feedItemDesc()
- function feedResult( $result ) {
- if( isset( $result->cur_title ) ) {
- $title = Title::MakeTitle( $result->cur_namespace, $result->cur_title );
- } elseif( isset( $result->old_title ) ) {
- $title = Title::MakeTitle( $result->old_namespace, $result->old_title );
- } elseif( isset( $result->rc_title ) ) {
- $title = Title::MakeTitle( $result->rc_namespace, $result->rc_title );
+ function feedResult( $row ) {
+ if( isset( $row->cur_title ) ) {
+ $title = Title::MakeTitle( $row->cur_namespace, $row->cur_title );
+ } elseif( isset( $row->old_title ) ) {
+ $title = Title::MakeTitle( $row->old_namespace, $row->old_title );
+ } elseif( isset( $row->rc_title ) ) {
+ $title = Title::MakeTitle( $row->rc_namespace, $row->rc_title );
} else {
return NULL;
}
if( $title ) {
+ $date = "";
+ if( isset( $row->cur_timestamp ) ) {
+ $date = $row->cur_timestamp;
+ } elseif( isset( $row->old_timestamp ) ) {
+ $date = $row->old_timestamp;
+ } elseif( isset( $row->rc_cur_timestamp ) ) {
+ $date = $row->rc_cur_timestamp;
+ }
return new FeedItem(
$title->getText(),
- $this->feedItemDesc( $result ),
- wfFullUrl( $title->getUrl() ) );
+ $this->feedItemDesc( $row ),
+ wfFullUrl( $title->getUrl() ) ,
+ $date);
} else {
return NULL;
}