예제 #1
0
 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);
 }