You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by ch...@apache.org on 2008/11/07 15:23:26 UTC
svn commit: r712132 -
/incubator/shindig/trunk/php/src/gadgets/ProxyHandler.php
Author: chabotc
Date: Fri Nov 7 06:23:13 2008
New Revision: 712132
URL: http://svn.apache.org/viewvc?rev=712132&view=rev
Log:
SHINDIG-597 by Eiji Kitamura, make feed fetcher results consistent with latest java shindig code
Modified:
incubator/shindig/trunk/php/src/gadgets/ProxyHandler.php
Modified: incubator/shindig/trunk/php/src/gadgets/ProxyHandler.php
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/gadgets/ProxyHandler.php?rev=712132&r1=712131&r2=712132&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/gadgets/ProxyHandler.php (original)
+++ incubator/shindig/trunk/php/src/gadgets/ProxyHandler.php Fri Nov 7 06:23:13 2008
@@ -77,7 +77,7 @@
if (isset($_GET['contentType']) && $_GET['contentType'] == 'FEED') {
require 'external/Zend/Feed.php';
$numEntries = $_GET['numEntries'];
- $getSummaries = $_GET['getSummaries'];
+ $getSummaries = ! empty($_GET['getSummaries']) && $_GET['getSummaries'] != 'false' ? true : false;
$channel = array();
$request = new RemoteContentRequest($url);
$request = $this->context->getHttpFetcher()->fetch($request, $this->context);
@@ -86,45 +86,96 @@
try {
$feed = Zend_Feed::importString($content);
if ($feed instanceof Zend_Feed_Rss) {
- $channel = array('title' => $feed->title(),
- 'link' => $feed->link(),
- 'description' => $feed->description(),
- 'pubDate' => $feed->pubDate(),
- 'language' => $feed->language(),
- 'category' => $feed->category(), 'items' => array());
+ // Try get author
+ if ($feed->author()) {
+ $author = $feed->author();
+ } else
+ if ($feed->creator()) {
+ $author = $feed->creator();
+ }
// Loop over each channel item and store relevant data
$counter = 0;
+ $channel['Entry'] = array();
foreach ($feed as $item) {
if ($counter >= $numEntries) {
break;
}
+ $_entry = array();
+ $_entry['Title'] = $item->title();
+ $_entry['Link'] = $item->link();
+ if ($getSummaries && $item->description()) {
+ $_entry['Summary'] = $item->description();
+ }
+ $date = 0;
+ if ($item->date()) {
+ $date = strtotime($item->date());
+ } else {
+ if ($item->pubDate()) {
+ $date = strtotime($item->pubDate());
+ }
+ }
+ $_entry['Date'] = $date;
+ $channel['Entry'][] = $_entry;
+ // Remember author if first found
+ if (empty($author) && $item->author()) {
+ $author = $item->author();
+ } else
+ if ($item->creator()) {
+ $author = $item->creator();
+ }
$counter ++;
- $channel['items'][] = array('title' => $item->title(),
- 'link' => $item->link(),
- 'author' => $item->author(),
- 'description' => $getSummaries ? $item->description() : '',
- 'category' => $item->category(),
- 'comments' => $item->comments(),
- 'pubDate' => $item->pubDate());
}
+ $channel['Title'] = $feed->title();
+ $channel['URL'] = $url;
+ $channel['Description'] = $feed->description();
+ if ($feed->link()) {
+ if (is_array($feed->link())) {
+ foreach ($feed->link() as $_link) {
+ if ($_link->nodeValue)
+ $channel['Link'] = $_link->nodeValue;
+ }
+ } else {
+ $channel['Link'] = $feed->link();
+ }
+ }
+ $channel['Author'] = $author;
} elseif ($feed instanceof Zend_Feed_Atom) {
- $channel = array('title' => $feed->title(),
- 'link' => $feed->link(), 'id' => $feed->id(),
- 'subtitle' => $feed->subtitle(), 'items' => array());
+ // Try get author
+ $author = $feed->author() ? $feed->author() : '';
+ // Loop over each entries and store relevant data
$counter = 0;
+ $channel['Entry'] = array();
foreach ($feed as $entry) {
if ($counter >= $numEntries) {
break;
}
- $channel['items'][] = array('id' => $entry->id(),
- 'title' => $entry->title(),
- 'link' => $entry->link('alternate'),
- 'summary' => $entry->summary(),
- 'content' => $entry->content(),
- 'author' => $entry->author(),
- 'published' => $entry->published(),
- 'updated' => $entry->updated());
+ $_entry = array();
+ $_entry['Title'] = $entry->title();
+ $_entry['Link'] = $entry->link('alternate');
+ if ($getSummaries && $entry->summary()) {
+ $_entry['Summary'] = $entry->summary();
+ }
+ $date = 0;
+ if ($entry->updated()) {
+ $date = strtotime($entry->updated());
+ } else
+ if ($entry->published()) {
+ $date = strtotime($entry->published());
+ }
+ $_entry['Date'] = $date;
+
+ $channel['Entry'][] = $_entry;
+ // Remember author if first found
+ if (empty($author) && $entry->author()) {
+ $author = $entry->author();
+ }
+ $counter ++;
}
+ $channel['Title'] = $feed->title();
+ $channel['URL'] = $url;
+ $channel['Description'] = $feed->subtitle();
+ $channel['Link'] = $feed->link('alternate');
+ $channel['Author'] = $author;
} else {
throw new Exception('Invalid feed type');
}