Mercurial > epgrec.yaz
view index.php @ 122:709bc9c69318
mod: チャンネルスキップ引き続き実装中(まだ途中)
author | yoneda <epgrec@park.mda.or.jp> |
---|---|
date | Tue, 16 Mar 2010 23:08:59 +0900 |
parents | ea54c3128da3 |
children | 47a3acf19870 |
line wrap: on
line source
<?php include_once("config.php"); include_once( INSTALL_PATH . "/DBRecord.class.php" ); include_once( INSTALL_PATH . "/Smarty/Smarty.class.php" ); include_once( INSTALL_PATH . "/reclib.php" ); include_once( INSTALL_PATH . "/Settings.class.php" ); // 荐絎<ゃ<罎祉 if( ! file_exists( INSTALL_PATH."/settings/config.xml") ) { header( "Content-Type: text/html;charset=utf-8" ); exit( "<script type=\"text/javascript\">\n" . "<!--\n". "window.open(\"install/step1.php\",\"_self\");". "// -->\n</script>" ); } $settings = Settings::factory(); $DAY_OF_WEEK = array( "()","()","()","(羂)","()","()","()" ); // <若帥 // 茵腓冴激鐚鐚 $program_length = $settings->program_length; if( isset( $_GET['length']) ) $program_length = (int) $_GET['length']; // 遺=GR/BS=BS $type = "GR"; if( isset( $_GET['type'] ) ) $type = $_GET['type']; // 憜 $top_time = mktime( date("H"), 0 , 0 ); if( isset( $_GET['time'] ) ) { if( sscanf( $_GET['time'] , "%04d%2d%2d%2d", $y, $mon, $day, $h ) == 4 ) { $tmp_time = mktime( $h, 0, 0, $mon, $day, $y ); if( ($tmp_time < ($top_time + 3600 * 24 * 8)) && ($tmp_time > ($top_time - 3600 * 24 * 8)) ) $top_time = $tmp_time; } } $last_time = $top_time + 3600 * $program_length; // 紙 for( $i = 0 ; $i < $program_length; $i++ ) { $tvtimes[$i] = date("H", $top_time + 3600 * $i ); } // 腟茵 $programs = array(); if( $type == "BS" ) $channel_map = $BS_CHANNEL_MAP; else if( $type == "GR" ) $channel_map = $GR_CHANNEL_MAP; else if( $type == "CS" ) $channel_map = $CS_CHANNEL_MAP; $st = 0; $prec = null; try { $prec = new DBRecord(PROGRAM_TBL); } catch( Exception $e ) { exit('違若絖сゃ潟鴻若眼.'); } $num_ch = 0; foreach( $channel_map as $channel_disc => $channel ) { $prev_end = $top_time; try { $crec = new DBRecord( CHANNEL_TBL, "channel_disc", $channel_disc ); $programs[$st]["skip"] = $crec->skip; if( $crec->skip == 0 ) $num_ch++; $programs[$st]["channel_disc"] = $channel_disc; $programs[$st]["station_name"] = $crec->name; $programs[$st]["sid"] = $crec->sid; $programs[$st]["ch_hash"] = md5($channel_disc); $reca = $prec->fetch_array( "channel_disc", $channel_disc, "endtime > '".toDatetime($top_time)."' ". "AND starttime < '". toDatetime($last_time)."' ". "ORDER BY starttime ASC " ); $programs[$st]['list'] = array(); $num = 0; foreach( $reca as $prg ) { // 違腥冴茯帥鴻 $start = toTimestamp( $prg['starttime'] ); if( ($start - $prev_end) > 0 ) { $height = ($start-$prev_end) * $settings->height_per_hour / 3600; $height = $height; $programs[$st]['list'][$num]['category_none'] = "none"; $programs[$st]['list'][$num]['height'] = $height; $programs[$st]['list'][$num]['title'] = ""; $programs[$st]['list'][$num]['starttime'] = ""; $programs[$st]['list'][$num]['description'] = ""; $num++; } $prev_end = toTimestamp( $prg['endtime'] ); $height = ((toTimestamp($prg['endtime']) - toTimestamp($prg['starttime'])) * $settings->height_per_hour / 3600); // $top_time 鎈障c腟 if( toTimestamp($prg['starttime']) <$top_time ) { $height = ((toTimestamp($prg['endtime']) - $top_time ) * $settings->height_per_hour / 3600); } // $last_time 靚腟 if( toTimestamp($prg['endtime']) > $last_time ) { $height = (($last_time - toTimestamp($prg['starttime'])) * $settings->height_per_hour / 3600); } // 違 $cat = new DBRecord( CATEGORY_TBL, "id", $prg['category_id'] ); $programs[$st]['list'][$num]['category_name'] = $cat->name_en; $programs[$st]['list'][$num]['height'] = $height; $programs[$st]['list'][$num]['title'] = $prg['title']; $programs[$st]['list'][$num]['starttime'] = date("H:i", $start )."" ; $programs[$st]['list'][$num]['description'] = $prg['description']; $programs[$st]['list'][$num]['prg_start'] = str_replace( "-", "/", $prg['starttime']); $programs[$st]['list'][$num]['duration'] = "" . (toTimestamp($prg['endtime']) - toTimestamp($prg['starttime'])); $programs[$st]['list'][$num]['channel'] = ($prg['type'] == "GR" ? "遺D" : "BS" ) . ":". $prg['channel'] . "ch"; $programs[$st]['list'][$num]['id'] = "" . ($prg['id']); $programs[$st]['list'][$num]['rec'] = DBRecord::countRecords(RESERVE_TBL, "WHERE complete = '0' AND program_id = '".$prg['id']."'" ); $num++; } } catch( exception $e ) { // exit( $e->getMessage() ); // 篏 } // 腥冴 if( ($last_time - $prev_end) > 0 ) { $height = ($last_time - $prev_end) * $settings->height_per_hour / 3600; $height = $height; $programs[$st]['list'][$num]['category_name'] = "none"; $programs[$st]['list'][$num]['height'] = $height; $programs[$st]['list'][$num]['title'] = ""; $programs[$st]['list'][$num]['starttime'] = ""; $programs[$st]['list'][$num]['description'] = ""; $num++; } $st++; } $prec = null; // 絮綛 $ch_set_width = (int)($settings->ch_set_width); // 篏綛 $chs_width = $ch_set_width * $num_ch; // GET< $get_param = $_SERVER['SCRIPT_NAME'] . "?type=".$type."&length=".$program_length.""; $smarty = new Smarty(); // 眼筝荀 $crec = DBRecord::createRecords( CATEGORY_TBL ); $cats = array(); $num = 0; foreach( $crec as $val ) { $cats[$num]['name_en'] = $val->name_en; $cats[$num]['name_jp'] = $val->name_jp; $num++; } $smarty->assign( "cats", $cats ); // 帥ゃ御 $types = array(); $i = 0; if( $settings->bs_tuners != 0 ) { $types[$i]['selected'] = $type == "BS" ? 'class="selected"' : ""; $types[$i]['link'] = $_SERVER['SCRIPT_NAME'] . "?type=BS&length=".$program_length."&time=".date( "YmdH", $top_time); $types[$i]['name'] = "BS"; $i++; // CS if ($settings->cs_rec_flg != 0) { $types[$i]['selected'] = $type == "CS" ? 'class="selected"' : ""; $types[$i]['link'] = $_SERVER['SCRIPT_NAME'] . "?type=CS&length=".$program_length."&time=".date( "YmdH", $top_time); $types[$i]['name'] = "CS"; $i++; } } if( $settings->gr_tuners != 0 ) { $types[$i]['selected'] = $type == "GR" ? 'class="selected"' : ""; $types[$i]['link'] = $_SERVER['SCRIPT_NAME'] . "?type=GR&length=".$program_length."&time=".date( "YmdH", $top_time); $types[$i]['name'] = "遺吾帥"; $i++; } $smarty->assign( "types", $types ); // ヤ御 $days = array(); $day = array(); $day['d'] = ""; $day['link'] = $get_param . "&time=". date( "YmdH", time() - 3600 *24 ); $day['ofweek'] = ""; $day['selected'] = $top_time < mktime( 0, 0 , 0) ? 'class="selected"' : ''; array_push( $days , $day ); $day['d'] = "憜"; $day['link'] = $get_param; $day['ofweek'] = ""; $day['selected'] = ""; array_push( $days, $day ); for( $i = 0 ; $i < 8 ; $i++ ) { $day['d'] = "".date("d", time() + 24 * 3600 * $i ) . ""; $day['link'] = $get_param . "&time=".date( "Ymd", time() + 24 * 3600 * $i) . date("H" , $top_time ); $day['ofweek'] = $DAY_OF_WEEK[(int)date( "w", time() + 24 * 3600 * $i )]; $day['selected'] = date("d", $top_time) == date("d", time() + 24 * 3600 * $i ) ? 'class="selected"' : ''; array_push( $days, $day ); } $smarty->assign( "days" , $days ); // 御 $toptimes = array(); for( $i = 0 ; $i < 24; $i+=4 ) { $tmp = array(); $tmp['hour'] = sprintf( "%02d:00", $i ); $tmp['link'] = $get_param . "&time=".date("Ymd", $top_time ) . sprintf("%02d", $i ); array_push( $toptimes, $tmp ); } $smarty->assign( "toptimes" , $toptimes ); $smarty->assign( "tvtimes", $tvtimes ); $smarty->assign( "programs", $programs ); $smarty->assign( "ch_set_width", (int)($settings->ch_set_width) ); $smarty->assign( "chs_width", $chs_width ); $smarty->assign( "height_per_hour", $settings->height_per_hour ); $smarty->assign( "height_per_min", $settings->height_per_hour / 60 ); $smarty->assign( "num_ch", $num_ch ); $smarty->assign( "num_all_ch" , count( $channel_map ) ); // date("Y-m-d H:i:s", $timestamp); $sitetitle = date( "Y", $top_time ) . "綛" . date( "m", $top_time ) . "" . date( "d", $top_time ) . "". date( "H", $top_time ) . "鐔".( $type == "GR" ? "遺吾帥" : "BS吾帥" )."腟茵"; $smarty->assign("sitetitle", $sitetitle ); $smarty->assign("top_time", str_replace( "-", "/" ,toDatetime($top_time)) ); $smarty->assign("last_time", str_replace( "-", "/" ,toDatetime($last_time)) ); $smarty->display("index.html"); ?>