Source code for file /joomla/document/feed/renderer/rss.php
Documentation is available at rss.php
* @version $Id: rss.php 9919 2008-01-10 18:31:25Z willebil $
* @package Joomla.Framework
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
// Check to ensure this file is within the rest of the framework
jimport( 'joomla.utilities.date' );
* JDocumentRenderer_RSS is a feed that implements RSS 2.0 Specification
* @author Johan Janssens <johan.janssens@joomla.org>
* @package Joomla.Framework
* @see http://www.rssboard.org/rss-specification
var $_mime =
"application/rss+xml";
$url =
$uri->toString(array('scheme', 'user', 'pass', 'host', 'port'));
$feed =
"<rss version=\"2.0\">\n";
$feed.=
" <title>".
$data->title.
"</title>\n";
$feed.=
" <description>".
$data->description.
"</description>\n";
$feed.=
" <link>".
$url.
$data->link.
"</link>\n";
$feed.=
" <lastBuildDate>".
htmlspecialchars($now->toRFC822(), ENT_COMPAT, 'UTF-8').
"</lastBuildDate>\n";
$feed.=
" <generator>".
$data->getGenerator().
"</generator>\n";
$feed.=
" <url>".
$data->image->url.
"</url>\n";
$feed.=
" <title>".
htmlspecialchars($data->image->title, ENT_COMPAT, 'UTF-8').
"</title>\n";
$feed.=
" <link>".
$data->image->link.
"</link>\n";
if ($data->image->width !=
"") {
$feed.=
" <width>".
$data->image->width.
"</width>\n";
if ($data->image->height!=
"") {
$feed.=
" <height>".
$data->image->height.
"</height>\n";
if ($data->image->description!=
"") {
$feed.=
" <description><![CDATA[".
$data->image->description.
"]]></description>\n";
if ($data->language!=
"") {
$feed.=
" <language>".
$data->language.
"</language>\n";
if ($data->copyright!=
"") {
$feed.=
" <copyright>".
htmlspecialchars($data->copyright,ENT_COMPAT, 'UTF-8').
"</copyright>\n";
$feed.=
" <managingEditor>".
htmlspecialchars($data->editor, ENT_COMPAT, 'UTF-8').
"</managingEditor>\n";
if ($data->webmaster!=
"") {
$feed.=
" <webMaster>".
htmlspecialchars($data->webmaster, ENT_COMPAT, 'UTF-8').
"</webMaster>\n";
if ($data->pubDate!=
"") {
$pubDate =
new JDate($data->pubDate);
$feed.=
" <pubDate>".
htmlspecialchars($pubDate->toRFC822(),ENT_COMPAT, 'UTF-8').
"</pubDate>\n";
if ($data->category!=
"") {
$feed.=
" <category>".
htmlspecialchars($data->category, ENT_COMPAT, 'UTF-8').
"</category>\n";
$feed.=
" <docs>".
htmlspecialchars($data->docs, ENT_COMPAT, 'UTF-8').
"</docs>\n";
$feed.=
" <rating>".
htmlspecialchars($data->rating, ENT_COMPAT, 'UTF-8').
"</rating>\n";
if ($data->skipHours!=
"") {
$feed.=
" <skipHours>".
htmlspecialchars($data->skipHours, ENT_COMPAT, 'UTF-8').
"</skipHours>\n";
if ($data->skipDays!=
"") {
$feed.=
" <skipDays>".
htmlspecialchars($data->skipDays, ENT_COMPAT, 'UTF-8').
"</skipDays>\n";
for ($i=
0; $i<
count($data->items); $i++
)
$feed.=
" <link>".
$url.
$data->items[$i]->link.
"</link>\n";
$feed.=
" <description><![CDATA[".
$this->_relToAbs($data->items[$i]->description).
"]]></description>\n";
if ($data->items[$i]->author!=
"") {
$feed.=
" <author>".
htmlspecialchars($data->items[$i]->author, ENT_COMPAT, 'UTF-8').
"</author>\n";
if ($data->items[$i]->source!="") {
$data.= " <source>".htmlspecialchars($data->items[$i]->source, ENT_COMPAT, 'UTF-8')."</source>\n";
if ($data->items[$i]->category!=
"") {
$feed.=
" <category>".
htmlspecialchars($data->items[$i]->category, ENT_COMPAT, 'UTF-8').
"</category>\n";
if ($data->items[$i]->comments!=
"") {
$feed.=
" <comments>".
htmlspecialchars($data->items[$i]->comments, ENT_COMPAT, 'UTF-8').
"</comments>\n";
if ($data->items[$i]->date!=
"") {
$itemDate =
new JDate($data->items[$i]->date);
$feed.=
" <pubDate>".
htmlspecialchars($itemDate->toRFC822(), ENT_COMPAT, 'UTF-8').
"</pubDate>\n";
if ($data->items[$i]->guid!=
"") {
$feed.=
" <guid>".
htmlspecialchars($data->items[$i]->guid, ENT_COMPAT, 'UTF-8').
"</guid>\n";
if ($data->items[$i]->enclosure !=
NULL)
$feed.=
" <enclosure url=\"";
$feed.=
$data->items[$i]->enclosure->url;
$feed.=
$data->items[$i]->enclosure->length;
$feed.=
$data->items[$i]->enclosure->type;
* Convert links in a text from relative to absolute
$text =
preg_replace("/(href|src)=\"(?!http|ftp|https)([^\"]*)\"/", "$1=\"$base\$2\"", $text);