Source for file atom.php
Documentation is available at atom.php
* @package Joomla.Platform
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
* JDocumentRenderer_Atom is a feed that implements the atom specification
* Please note that just by using this class you won't automatically
* produce valid atom files. For example, you have to specify either an editor
* for the feed or an author for every single feed item.
* @package Joomla.Platform
* @see http://www.atomenabled.org/developers/syndication/atom-format-spec.php
protected $_mime =
"application/atom+xml";
* @param string $name The name of the element to render
* @param array $params Array of values
* @param string $content Override the output of the renderer
* @return string The output of the script
* @see JDocumentRenderer::render()
public function render($name =
'', $params =
null, $content =
null)
// Gets and sets timezone offset from site configuration
$tz =
new DateTimeZone($app->getCfg('offset'));
$url =
$uri->toString(array('scheme', 'user', 'pass', 'host', 'port'));
$syndicationURL =
JRoute::_('&format=feed&type=atom');
if ($app->getCfg('sitename_pagetitles', 0) ==
1)
$title =
JText::sprintf('JPAGETITLE', $app->getCfg('sitename'), $data->title);
elseif ($app->getCfg('sitename_pagetitles', 0) ==
2)
$title =
JText::sprintf('JPAGETITLE', $data->title, $app->getCfg('sitename'));
$feed =
"<feed xmlns=\"http://www.w3.org/2005/Atom\" ";
if ($data->language !=
"")
$feed .=
" xml:lang=\"" .
$data->language .
"\"";
$feed .=
" <title type=\"text\">" .
$feed_title .
"</title>\n";
$feed .=
" <subtitle type=\"text\">" .
htmlspecialchars($data->description, ENT_COMPAT, 'UTF-8') .
"</subtitle>\n";
if (empty($data->category) ===
false)
foreach ($data->category as $cat)
$feed .=
" <category term=\"" .
htmlspecialchars($cat, ENT_COMPAT, 'UTF-8') .
"\" />\n";
$feed .=
" <category term=\"" .
htmlspecialchars($data->category, ENT_COMPAT, 'UTF-8') .
"\" />\n";
$feed .=
" <link rel=\"alternate\" type=\"text/html\" href=\"" .
$url .
"\"/>\n";
$feed .=
" <id>" .
str_replace(' ', '%20', $data->getBase()) .
"</id>\n";
$feed .=
" <updated>" .
htmlspecialchars($now->toISO8601(true), ENT_COMPAT, 'UTF-8') .
"</updated>\n";
$feed .=
" <name>" .
$data->editor .
"</name>\n";
if ($data->editorEmail !=
"")
$feed .=
" <email>" .
htmlspecialchars($data->editorEmail, ENT_COMPAT, 'UTF-8') .
"</email>\n";
$feed .=
" <generator uri=\"http://joomla.org\" version=\"1.6\">" .
$data->getGenerator() .
"</generator>\n";
$feed .=
' <link rel="self" type="application/atom+xml" href="' .
str_replace(' ', '%20', $url .
$syndicationURL) .
"\"/>\n";
for ($i =
0, $count =
count($data->items); $i <
$count; $i++
)
$feed .=
' <link rel="alternate" type="text/html" href="' .
$url .
$data->items[$i]->link .
"\"/>\n";
if ($data->items[$i]->date ==
"")
$data->items[$i]->date =
$now->toUnix();
$itemDate->setTimeZone($tz);
$feed .=
" <published>" .
htmlspecialchars($itemDate->toISO8601(true), ENT_COMPAT, 'UTF-8') .
"</published>\n";
$feed .=
" <updated>" .
htmlspecialchars($itemDate->toISO8601(true), ENT_COMPAT, 'UTF-8') .
"</updated>\n";
if (empty($data->items[$i]->guid) ===
true)
$feed .=
" <id>" .
str_replace(' ', '%20', $url .
$data->items[$i]->link) .
"</id>\n";
$feed .=
" <id>" .
htmlspecialchars($data->items[$i]->guid, ENT_COMPAT, 'UTF-8') .
"</id>\n";
if ($data->items[$i]->author !=
"")
$feed .=
" <name>" .
htmlspecialchars($data->items[$i]->author, ENT_COMPAT, 'UTF-8') .
"</name>\n";
if ($data->items[$i]->authorEmail !=
"")
$feed .=
" <email>" .
htmlspecialchars($data->items[$i]->authorEmail, ENT_COMPAT, 'UTF-8') .
"</email>\n";
if ($data->items[$i]->description !=
"")
$feed .=
" <summary type=\"html\">" .
htmlspecialchars($data->items[$i]->description, ENT_COMPAT, 'UTF-8') .
"</summary>\n";
$feed .=
" <content type=\"html\">" .
htmlspecialchars($data->items[$i]->description, ENT_COMPAT, 'UTF-8') .
"</content>\n";
if (empty($data->items[$i]->category) ===
false)
if (is_array($data->items[$i]->category))
foreach ($data->items[$i]->category as $cat)
$feed .=
" <category term=\"" .
htmlspecialchars($cat, ENT_COMPAT, 'UTF-8') .
"\" />\n";
$feed .=
" <category term=\"" .
htmlspecialchars($data->items[$i]->category, ENT_COMPAT, 'UTF-8') .
"\" />\n";
if ($data->items[$i]->enclosure !=
null)
$feed .=
" <link rel=\"enclosure\" href=\"" .
$data->items[$i]->enclosure->url .
"\" type=\""
.
$data->items[$i]->enclosure->type .
"\" length=\"" .
$data->items[$i]->enclosure->length .
"\" />\n";
Documentation generated on Tue, 19 Nov 2013 14:54:09 +0100 by phpDocumentor 1.4.3