<?php
-
-# Copyright (C) 2004 Brion Vibber <brion@pobox.com>
-# 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.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-# http://www.gnu.org/copyleft/gpl.html
-
/**
- * @defgroup Feed Feed
- *
* Basic support for outputting syndication feeds in RSS, other formats.
+ *
* Contain a feed class as well as classes to build rss / atom ... feeds
* Available feeds are defined in Defines.php
*
+ * Copyright © 2004 Brion Vibber <brion@pobox.com>
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
* @file
*/
+/**
+ * @defgroup Feed Feed
+ */
+
/**
* A base class for basic support for outputting syndication feeds in RSS and other formats.
*
var $Url = '';
var $Date = '';
var $Author = '';
+ var $UniqueId = '';
+ var $RSSIsPermalink;
/**#@-*/
/**
$this->Title = $Title;
$this->Description = $Description;
$this->Url = $Url;
+ $this->UniqueId = $Url;
+ $this->RSSIsPermalink = false;
$this->Date = $Date;
$this->Author = $Author;
$this->Comments = $Comments;
return htmlspecialchars( $string );
}
+ /**
+ * Get the unique id of this item
+ *
+ * @return String
+ */
+ public function getUniqueId() {
+ if ( $this->UniqueId ) {
+ return $this->xmlEncode( $this->UniqueId );
+ }
+ }
+
+ /**
+ * set the unique id of an item
+ *
+ * @param $uniqueId String: unique id for the item
+ * @param $RSSisPermalink Boolean: set to true if the guid (unique id) is a permalink (RSS feeds only)
+ */
+ public function setUniqueId($uniqueId, $RSSisPermalink = False) {
+ $this->UniqueId = $uniqueId;
+ $this->RSSIsPermalink = $isPermalink;
+ }
+
/**
* Get the title of this item; already xml-encoded
*
* @return String
*/
public function getLanguage() {
- global $wgContLanguageCode;
- return $wgContLanguageCode;
+ global $wgLanguageCode;
+ return $wgLanguageCode;
}
/**
public function getComments() {
return $this->xmlEncode( $this->Comments );
}
-
+
/**
* Quickie hack... strip out wikilinks to more legible form from the comment.
*
<item>
<title><?php print $item->getTitle() ?></title>
<link><?php print $item->getUrl() ?></link>
+ <guid<?php if( !$item->RSSIsPermalink ) print ' isPermaLink="false"' ?>><?php print $item->getUniqueId() ?></guid>
<description><?php print $item->getDescription() ?></description>
<?php if( $item->getDate() ) { ?><pubDate><?php print $this->formatTime( $item->getDate() ) ?></pubDate><?php } ?>
<?php if( $item->getAuthor() ) { ?><dc:creator><?php print $item->getAuthor() ?></dc:creator><?php }?>
global $wgMimeType;
?>
<entry>
- <id><?php print $item->getUrl() ?></id>
+ <id><?php print $item->getUniqueId() ?></id>
<title><?php print $item->getTitle() ?></title>
<link rel="alternate" type="<?php print $wgMimeType ?>" href="<?php print $item->getUrl() ?>"/>
<?php if( $item->getDate() ) { ?>