4 * RSS 2.0 feed renderer
6 * This renderer will use input feed object to render valid RSS 2.0 feed
9 * @subpackage feed.renderers
10 * @http://www.projectpier.org/
12 class Angie_Feed_Renderer_RSS2
extends Angie_Feed_Renderer
{
17 * Render RSS 2.0 feed (spec: http://blogs.law.harvard.edu/tech/rss)
19 * @param Angie_Feed $feed
22 function render(Angie_Feed
$feed) {
23 $result = "<rss version=\"2.0\">\n<channel>\n";
24 $result .= '<title>' . clean($feed->getTitle()) . "</title>\n";
25 $result .= '<link>' . clean($feed->getLink()) . "</link>\n";
26 if($description = trim($feed->getDescription())) {
27 $result .= '<description>' . clean($description) . "</description>\n";
29 if($language = trim($feed->getLanguage())) {
30 $result .= '<language>' . clean($language) . "</language>\n";
33 foreach($feed->getItems() as $feed_item) {
34 $result .= $this->renderItem($feed_item) . "\n";
37 $result .= "</channel>\n</rss>";
42 * Render single feed item
44 * @param Angie_Feed_Item $item
47 private function renderItem(Angie_Feed_Item
$item) {
49 $result .= '<title>' . clean($item->getTitle()) . "</title>\n";
50 $result .= '<link>' . clean($item->getLink()) . "</link>\n";
51 if($description = trim($item->getDescription())) {
52 $result .= '<description>' . clean($description) . "</description>\n";
55 $author = $item->getAuthor();
56 if($author instanceof Angie_Feed_Author
) {
57 $result .= '<author>' . clean($author->getEmail()) . ' (' . clean($author->getName()) . ")</author>\n";
60 $pubdate = $item->getPublicationDate();
61 if($pubdate instanceof DateTimeValue
) {
62 $result .= '<pubdate>' . $pubdate->toRSS() . "</pubdate>\n";
69 } // Angie_Feed_Renderer_RSS2