コード例 #1
0
ファイル: epg.class.php プロジェクト: saydulk/stalker_portal
 public function getSimpleDataTable()
 {
     $ch_id = intval($_REQUEST['ch_id']);
     $date = $_REQUEST['date'];
     $page = intval($_REQUEST['p']);
     $default_page = false;
     $page_items = 10;
     $from = $date . ' 00:00:00';
     $to = $date . ' 23:59:59';
     //$epg = $this->getEpgForChannelsOnPeriod(array($ch_id), $from, $to);
     $program = Mysql::getInstance()->from('epg')->select('epg.*, UNIX_TIMESTAMP(epg.time) as start_timestamp, UNIX_TIMESTAMP(epg.time_to) as stop_timestamp, TIME_FORMAT(epg.time,"' . _('%H:%i') . '") as t_time, TIME_FORMAT(epg.time_to,"' . _('%H:%i') . '") as t_time_to')->where(array('epg.ch_id' => $ch_id, 'epg.time>=' => $from, 'epg.time<=' => $to))->orderby('epg.time')->get()->all();
     $total_items = count($program);
     $ch_idx = Mysql::getInstance()->from('epg')->count()->where(array('epg.ch_id' => $ch_id, 'epg.time>=' => $from, 'epg.time<' => date(Mysql::DATETIME_FORMAT)))->get()->counter();
     //var_dump($ch_idx, date('Y-m-d'));
     if ($page == 0) {
         $default_page = true;
         $page = ceil($ch_idx / $page_items);
         if ($page == 0) {
             $page = 1;
         }
         if ($date != date('Y-m-d')) {
             $page = 1;
             $default_page = false;
         }
     }
     $program = array_slice($program, ($page - 1) * $page_items, $page_items);
     $now = time();
     $recorder = new StreamRecorder();
     $user_rec_ids = $recorder->getDeferredRecordIdsForUser(Stb::getInstance()->id);
     $tv_archive = new TvArchive();
     $archived_recs = $tv_archive->getAllTasksAssoc();
     $reminder = new TvReminder();
     $reminders = $reminder->getAllActiveForMac(Stb::getInstance()->mac);
     //var_dump($reminders);
     for ($i = 0; $i < count($program); $i++) {
         if ($program[$i]['stop_timestamp'] < $now) {
             $program[$i]['open'] = 0;
         } else {
             $program[$i]['open'] = 1;
         }
         /*if ($program[$i]['start_timestamp'] < $now){
               $program[$i]['mark_memo'] = null;
           }*/
         //var_dump($reminders);
         if (array_key_exists($program[$i]['real_id'], $reminders)) {
             $program[$i]['mark_memo'] = 1;
         } else {
             $program[$i]['mark_memo'] = 0;
         }
         //if (in_array($program[$i]['id'], $user_rec_ids)){
         if (array_key_exists($program[$i]['real_id'], $user_rec_ids)) {
             $program[$i]['mark_rec'] = 1;
             $program[$i]['rec_id'] = $user_rec_ids[$program[$i]['real_id']];
         } else {
             $program[$i]['mark_rec'] = 0;
         }
         if (array_key_exists($program[$i]['ch_id'], $archived_recs)) {
             if ($program[$i]['start_timestamp'] > time() - $archived_recs[$program[$i]['ch_id']]['parts_number'] * 3600 && $program[$i]['stop_timestamp'] < time()) {
                 $program[$i]['mark_archive'] = 1;
             } else {
                 $program[$i]['mark_archive'] = 0;
             }
         } else {
             $program[$i]['mark_archive'] = 0;
         }
     }
     if ($default_page) {
         $cur_page = $page;
         $selected_item = $ch_idx - ($page - 1) * $page_items;
     } else {
         $cur_page = 0;
         $selected_item = 0;
     }
     return array('cur_page' => $cur_page, 'selected_item' => $selected_item, 'total_items' => $total_items, 'max_page_items' => $page_items, 'data' => $program);
 }