function run() { try { $repository = new SapphireRssNewsRepository(); $tx_manager = SapphireTransactionManager::getInstance(); $rss_news_manager = new RssNewsManager($repository, $tx_manager); $rss_news = $rss_news_manager->getNewsItemsFromSource(); $rss_news_manager->deleteAllNewsItems(); $rss_news_manager->saveNewsItems($rss_news); return 'OK'; } catch (Exception $ex) { SS_Log::log($ex, SS_Log::ERR); echo $ex->getMessage(); } }
function NewsItems($limit = 20) { $repository = new SapphireRssNewsRepository(); $tx_manager = SapphireTransactionManager::getInstance(); $rss_news_manager = new RssNewsManager($repository, $tx_manager); $return_array = new ArrayList(); $group_array = $rss_news_manager->getNewsItemsFromDatabaseGroupedByCategory(); for ($i = 0; $i < 7 && $i < count($group_array[RssNews::SuperUser]); $i++) { $item = $group_array[RssNews::SuperUser][$i]; $return_array->push(array('type' => $item->Category, 'link' => $item->Link, 'title' => $item->Headline, 'pubdate' => date('D, M jS Y', strtotime($item->Date)), 'rawpubdate' => $item->Date)); } for ($i = 0; $i < 3 && $i < count($group_array[RssNews::Planet]); $i++) { $item = $group_array[RssNews::Planet][$i]; $return_array->push(array('type' => $item->Category, 'link' => $item->Link, 'title' => $item->Headline, 'pubdate' => date('D, M jS Y', strtotime($item->Date)), 'rawpubdate' => $item->Date)); } /*for ($i = 0; $i < 3 && $i < count($group_array[RssNews::Blog]); $i++ ) { $item = $group_array[RssNews::Blog][$i]; $return_array->push(array('type' => $item->Category, 'link' => $item->Link, 'title' => $item->Headline, 'pubdate' => date('D, M jS Y', strtotime($item->Date)), 'rawpubdate' => $item->Date)); }*/ $rss_count = $return_array->count(); $openstack_news = DataObject::get('News', "Approved = 1", "Date DESC", "", $limit - $rss_count)->toArray(); foreach ($openstack_news as $item) { $art_link = 'news/view/' . $item->ID . '/' . $item->HeadlineForUrl; $return_array->push(array('type' => 'News', 'link' => $art_link, 'title' => $item->Headline, 'pubdate' => date('D, M jS Y', strtotime($item->Date)), 'rawpubdate' => $item->Date)); } return $return_array->sort('rawpubdate', 'DESC')->limit($limit, 0); }