/** * Render feed * * Render RSS 2.0 feed (spec: http://blogs.law.harvard.edu/tech/rss) * * @param Angie_Feed $feed * @return string */ function render(Angie_Feed $feed) { $result = "<rss version=\"2.0\">\n"; //$result = "<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n"; $result .= "<channel>\n"; $feed_url = externalUrl(clean($feed->getLink())); //$result .= "<atom:link href=\"$feed_url\" rel=\"self\" type=\"application/rss+xml\" />\n"; $result .= '<title>' . clean($feed->getTitle()) . "</title>\n"; $result .= '<link>' . $feed_url . "</link>\n"; if ($description = trim($feed->getDescription())) { $description = "empty"; } // if $result .= '<description>' . clean($description) . "</description>\n"; if ($language = trim($feed->getLanguage())) { $result .= '<language>' . clean($language) . "</language>\n"; } // if foreach ($feed->getItems() as $feed_item) { $result .= $this->renderItem($feed_item) . "\n"; } // foreach $result .= "</channel>\n</rss>"; return $result; }
/** * Render feed * * Render RSS 2.0 feed (spec: http://blogs.law.harvard.edu/tech/rss) * * @param Angie_Feed $feed * @return string */ function render(Angie_Feed $feed) { $result = "<rss version=\"2.0\">\n<channel>\n"; $result .= '<title>' . clean($feed->getTitle()) . "</title>\n"; $result .= '<link>' . clean($feed->getLink()) . "</link>\n"; if($description = trim($feed->getDescription())) { $result .= '<description>' . clean($description) . "</description>\n"; } // if if($language = trim($feed->getLanguage())) { $result .= '<language>' . clean($language) . "</language>\n"; } // if foreach($feed->getItems() as $feed_item) { $result .= $this->renderItem($feed_item) . "\n"; } // foreach $result .= "</channel>\n</rss>"; return $result; } // render
/** * Populate feed object with activity log entries * * @param Angie_Feed * @param array $activity_log * @return Angie_Feed */ private function populateFeedFromLog(Angie_Feed $feed, $activity_log) { if (is_array($activity_log)) { foreach ($activity_log as $activity_log_entry) { $item = $feed->addItem(new Angie_Feed_Item($activity_log_entry->getText(), undo_htmlspecialchars($activity_log_entry->getObjectUrl()), '', $activity_log_entry->getCreatedOn())); $taken_by = $activity_log_entry->getTakenBy(); if ($taken_by instanceof User) { $item->setAuthor(new Angie_Feed_Author($taken_by->getDisplayName(), $taken_by->getEmail())); } // if } // foreach } // if return $feed; }
/** * Populate feed object with activity log entries * * @param Angie_Feed * @param array $activity_log * @return Angie_Feed */ private function populateFeedFromLog(Angie_Feed $feed, $activity_log) { $this->addHelper('textile'); if (is_array($activity_log)) { foreach ($activity_log as $activity_log_entry) { tpl_assign('object', $activity_log_entry->getObject()); $description = 'no object attached'; if ($activity_log_entry->getObject()) { $object_type = str_replace(" ", "_", strtolower($activity_log_entry->getObject()->getObjectTypeName())); if (file_exists(get_template_path('render_' . $object_type, 'feed'))) { $description = tpl_fetch(get_template_path('render_' . $object_type, 'feed')); } else { $description = tpl_fetch(get_template_path('render_object', 'feed')); } } $item = $feed->addItem(new Angie_Feed_Item($activity_log_entry->getText(), undo_htmlspecialchars($activity_log_entry->getObjectUrl()), $description, $activity_log_entry->getCreatedOn())); $taken_by = $activity_log_entry->getTakenBy(); if ($taken_by instanceof User) { $item->setAuthor(new Angie_Feed_Author($taken_by->getDisplayName(), $taken_by->getEmail())); } // if } // foreach } // if return $feed; }