Esempio n. 1
0
 function handleRSS($results)
 {
     $app =& Dataface_Application::getInstance();
     $record =& $app->getRecord();
     $query =& $app->getQuery();
     import('feedcreator.class.php');
     import('Dataface/FeedTool.php');
     $ft = new Dataface_FeedTool();
     $rss = new UniversalFeedCreator();
     $rss->encoding = $app->_conf['oe'];
     //$rss->useCached(); // use cached version if age<1 hour
     $del =& $record->_table->getDelegate();
     if (!$del or !method_exists($del, 'getSingleRecordSearchFeed')) {
         $del =& $app->getDelegate();
     }
     if ($del and method_exists($del, 'getSingleRecordSearchFeed')) {
         $feedInfo = $del->getSingleRecordSearchFeed($record, $query);
         if (!$feedInfo) {
             $feedInfo = array();
         }
     }
     if (isset($feedInfo['title'])) {
         $rss->title = $feedInfo['title'];
     } else {
         $rss->title = $record->getTitle() . '[ Search for "' . $query['--subsearch'] . '"]';
     }
     if (isset($feedInfo['description'])) {
         $rss->description = $feedInfo['description'];
     } else {
         $rss->description = '';
     }
     if (isset($feedInfo['link'])) {
         $rss->link = $feedInfo['link'];
     } else {
         $rss->link = htmlentities(df_absolute_url($app->url('') . '&--subsearch=' . urlencode($query['--subsearch'])));
     }
     $rss->syndicationURL = $rss->link;
     $records = array();
     foreach ($results as $result) {
         foreach ($result as $rec) {
             $records[] = $rec->toRecord();
         }
     }
     uasort($records, array($this, 'cmp_last_modified'));
     foreach ($records as $rec) {
         if ($rec->checkPermission('view') and $rec->checkPermission('view in rss')) {
             $rss->addItem($ft->createFeedItem($rec));
         }
     }
     if (!$query['--subsearch']) {
         $rss->addItem($ft->createFeedItem($record));
     }
     header("Content-Type: application/xml; charset=" . $app->_conf['oe']);
     echo $rss->createFeed('RSS2.0');
     exit;
 }