X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FFeed.php;h=590d9ca6cc01c0924f5e88abb14e72645ceb2766;hb=2f7946f0bb7463d18d9bca501c4dfe06bcea8295;hp=e5c7c18bc161a402fd28d933ccda74b492c038d6;hpb=361c83706363c10685dd4baccd24164886094994;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Feed.php b/includes/Feed.php index e5c7c18bc1..590d9ca6cc 100644 --- a/includes/Feed.php +++ b/includes/Feed.php @@ -1,4 +1,23 @@ +# http://www.mediawiki.org/ +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# http://www.gnu.org/copyleft/gpl.html $wgFeedClasses = array( "rss" => "RSSFeed", @@ -9,11 +28,15 @@ class FeedItem { var $Title = "Wiki"; var $Description = ""; var $Url = ""; + var $Date = ""; + var $Author = ""; - function FeedItem( $Title, $Description, $Url ) { + function FeedItem( $Title, $Description, $Url, $Date = "", $Author = "" ) { $this->Title = $Title; $this->Description = $Description; $this->Url = $Url; + $this->Date = $Date; + $this->Author = $Author; } /* Static... */ @@ -21,7 +44,7 @@ class FeedItem { global $wgInputEncoding, $wgLang; $string = str_replace( "\r\n", "\n", $string ); if( strcasecmp( $wgInputEncoding, "utf-8" ) != 0 ) { - $string = $wgLang->iconv( $wgInputEncoding, "utf-8" ); + $string = $wgLang->iconv( $wgInputEncoding, "utf-8", $string ); } return htmlspecialchars( $string ); } @@ -38,6 +61,12 @@ class FeedItem { global $wgLanguageCode; return $wgLanguageCode; } + function getDate() { + return $this->Date; + } + function getAuthor() { + return $this->xmlEncode( $this->Author ); + } } class ChannelFeed extends FeedItem { @@ -54,15 +83,27 @@ 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, $wgOut; + + # We take over from $wgOut, excepting its cache header info + $wgOut->disable(); + header( "Content-type: application/xml; charset=UTF-8" ); + $wgOut->sendCacheControl(); + print '<' . '?xml version="1.0" encoding="utf-8"?' . ">\n"; - ?> - + ?> <?php print $this->getTitle() ?> getUrl() ?> getDescription() ?> getLanguage() ?> + MediaWiki + formatTime( wfTimestampNow() ) ?> getTitle() ?> getUrl() ?> getDescription() ?> + getDate() ) { ?>formatTime( $item->getDate() ) ?> + getAuthor() ) { ?>getAuthor() ?> +