200501010000){
}else{
$now = date("YmdHi");
}
$query = "
SELECT
foltia_program.tid, stationname, foltia_program.title,
foltia_subtitle.countno, foltia_subtitle.subtitle,
foltia_subtitle.startdatetime as x, foltia_subtitle.lengthmin,
foltia_tvrecord.bitrate, foltia_subtitle.startoffset,
foltia_subtitle.pid, foltia_subtitle.epgaddedby,
foltia_tvrecord.digital
FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord
WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid
AND foltia_subtitle.enddatetime >= ?
UNION
SELECT
foltia_program.tid, stationname, foltia_program.title,
foltia_subtitle.countno, foltia_subtitle.subtitle,
foltia_subtitle.startdatetime, foltia_subtitle.lengthmin,
foltia_tvrecord.bitrate, foltia_subtitle.startoffset,
foltia_subtitle.pid, foltia_subtitle.epgaddedby,
foltia_tvrecord.digital
FROM foltia_tvrecord
LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid )
LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid )
LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid )
WHERE foltia_tvrecord.stationid = 0 AND
foltia_subtitle.enddatetime >= ? ORDER BY x ASC
";
// $rs = m_query($con, $query, "DBクエリに失敗しました");
$rs = sql_query($con, $query, "DBクエリに失敗しました",array($now,$now));
//チューナー数
if (getgetnumform(r) != ""){
$recunits = getgetnumform(r);
}elseif($recunits == ""){
$recunits = 2;
}
?>
予約一覧
録画予約番組放映予定と予約番組名を表示します。
$rowdata = $rs->fetch();
if (! $rowdata) {
print "番組データがありません
\n";
}else{
/* フィールド数 */
$maxcols = $rs->columnCount();
?>
TID |
放映局 |
タイトル |
話数 |
サブタイトル |
開始時刻(ズレ) |
総尺 |
画質 |
デジタル優先 |
\n");
$pid = htmlspecialchars($rowdata[9]);
$tid = htmlspecialchars($rowdata[0]);
$title = htmlspecialchars($rowdata[2]);
$subtitle = htmlspecialchars($rowdata[4]);
$dbepgaddedby = htmlspecialchars($rowdata[10]);
//重複検出
//開始時刻 $rowdata[5]
//終了時刻
$endtime = calcendtime($rowdata[5],$rowdata[6]);
//番組の開始時刻より遅い時刻に終了し、終了時刻より前にはじまる番組があるかどうか
//オンボードチューナー録画
$query = "
SELECT
foltia_program.tid, stationname, foltia_program.title,
foltia_subtitle.countno, foltia_subtitle.subtitle,
foltia_subtitle.startdatetime, foltia_subtitle.lengthmin,
foltia_tvrecord.bitrate, foltia_subtitle.startoffset,
foltia_subtitle.pid, foltia_tvrecord.digital
FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord
WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid
AND foltia_subtitle.enddatetime > ?
AND foltia_subtitle.startdatetime < ?
UNION
SELECT
foltia_program.tid, stationname, foltia_program.title,
foltia_subtitle.countno, foltia_subtitle.subtitle,
foltia_subtitle.startdatetime, foltia_subtitle.lengthmin,
foltia_tvrecord.bitrate, foltia_subtitle.startoffset,
foltia_subtitle.pid, foltia_tvrecord.digital
FROM foltia_tvrecord
LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid )
LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid )
LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid )
WHERE foltia_tvrecord.stationid = 0 AND
foltia_subtitle.enddatetime > ?
AND foltia_subtitle.startdatetime < ?
";
$rclass = "";
// $overlap = m_query($con, $query, "DBクエリに失敗しました");
$overlap = sql_query($con, $query, "DBクエリに失敗しました",array($rowdata[5],$endtime,$rowdata[5],$endtime));
$owrowall = $overlap->fetchAll();
$overlapmaxrows = count($owrowall);
if ($overlapmaxrows > ($recunits) ){
$owtimeline = array();
for ($rrow = 0; $rrow < $overlapmaxrows ; $rrow++) {
$owrowdata = $owrowall[$rrow];
$owtimeline[ $owrowdata['startdatetime'] ] = $owtimeline[ $owrowdata['startdatetime'] ] +1;
$owrend = calcendtime( $owrowdata['startdatetime'], $owrowdata['lengthmin'] );
$owtimeline[ $owrend ] = $owtimeline[ $owrend ] -1;
//注意: NULL に減算子を適用しても何も起こりませんが、NULL に加算子を 適用すると 1 となります。
}
ksort ( $owtimeline );
$owcount = 0;
foreach ( $owtimeline as $key => $val ) {
$owcount += $val;
if ( $owcount > $recunits ) {
$rclass = "overwraped";
break;
}
}
}
//外部チューナー録画
$externalinputs = 1; //現状一系統のみ
$query = "
SELECT
foltia_program.tid, stationname, foltia_program.title,
foltia_subtitle.countno, foltia_subtitle.subtitle,
foltia_subtitle.startdatetime, foltia_subtitle.lengthmin,
foltia_tvrecord.bitrate, foltia_subtitle.startoffset,
foltia_subtitle.pid, foltia_tvrecord.digital
FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord
WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid
AND foltia_subtitle.enddatetime > ?
AND foltia_subtitle.startdatetime < ?
AND (foltia_station.stationrecch = '0' OR foltia_station.stationrecch = '-1' )
UNION
SELECT
foltia_program.tid, stationname, foltia_program.title,
foltia_subtitle.countno, foltia_subtitle.subtitle,
foltia_subtitle.startdatetime, foltia_subtitle.lengthmin,
foltia_tvrecord.bitrate, foltia_subtitle.startoffset,
foltia_subtitle.pid, foltia_tvrecord.digital
FROM foltia_tvrecord
LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid )
LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid )
LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid )
WHERE foltia_tvrecord.stationid = 0 AND
foltia_subtitle.enddatetime > ?
AND foltia_subtitle.startdatetime < ?
AND (foltia_station.stationrecch = '0' OR foltia_station.stationrecch = '-1' )
";
// $eoverlap = m_query($con, $query, "DBクエリに失敗しました");
$eoverlap = sql_query($con, $query, "DBクエリに失敗しました",array($rowdata[5], $endtime,$rowdata[5], $endtime));
$eowrowall = $eoverlap->fetchAll();
$eoverlapmaxrows = count($eowrowall);
if ($eoverlapmaxrows > ($externalinputs) ){
$eowtimeline = array();
for ($erow = 0; $erow < $eoverlapmaxrows ; $erow++) {
$eowrowdata = $eowrowall[$erow];
$eowtimeline[ $eowrowdata['startdatetime'] ] = $eowtimeline[ $eowrowdata['startdatetime'] ] +1;
$eowrend = calcendtime( $eowrowdata['startdatetime'], $eowrowdata['lengthmin'] );
$eowtimeline[ $eowrend ] = $eowtimeline[ $eowrend ] -1;
}
ksort ( $eowtimeline );
$eowcount = 0;
foreach ( $eowtimeline as $key => $val ) {
$eowcount += $val;
if ( $eowcount > $externalinputs ) {
$rclass = "exoverwraped";
break;
}
}
}
echo("\n");
// TID
print "";
if ($tid == 0 ){
print "$tid";
}else{
print "$tid";
}
print " | \n";
// 放映局
echo("".htmlspecialchars($rowdata[1])."
| \n");
// タイトル
print "";
if ($tid == 0 ){
print "$title";
}else{
print "$title";
}
print " | \n";
// 話数
echo("".htmlspecialchars($rowdata[3])."
| \n");
// サブタイ
if ($pid > 0 ){
print "$subtitle
| \n";
}else{
//if ( $userclass <= 2){
if (($mymemberid == $dbepgaddedby)||($userclass <= 1)){
if ($userclass <= 1 ){//管理者なら
$membername = getmemberid2name($con,$dbepgaddedby);
$membername = ":" . $membername ;
}else{
$membername = "";
}
print "$subtitle [予約解除$membername]
| \n";
}else{
print "$subtitle [解除不能]
| \n";
}
}
// 開始時刻(ズレ)
echo("".htmlspecialchars(foldate2print($rowdata[5]))." (".htmlspecialchars($rowdata[8]).") | \n");
// 総尺
echo("".htmlspecialchars($rowdata[6])."
| \n");
//録画レート
echo("".htmlspecialchars($rowdata[7])."
| \n");
//デジタル優先
echo("");
if (htmlspecialchars($rowdata[11]) == 1){
print "する";
}else{
print "しない";
}
echo("
| \n");
echo("
\n");
} while ($rowdata = $rs->fetch());
?>
アナログ重複表示 |
|
エンコーダ数 | =$recunits ?> |
チューナー重複 |
|
外部入力重複 |
|
fetch();
if (! $rowdata) {
//なければなにもしない
}else{
$maxcols = $rs->columnCount();
?>
録画予約番組タイトルを表示します。
予約解除 |
TID |
放映局 |
タイトル |
録画リスト |
画質 |
デジタル優先 |
0){
echo("\n");
//予約解除
if ( $userclass <= 1){
echo("解除 | \n");
}else{
echo("− | ");
}
//TID
echo("$tid | \n");
//放映局
echo("".htmlspecialchars($rowdata[1])."
| \n");
//タイトル
echo("" .
htmlspecialchars($rowdata[2]) . " | \n");
//MP4
echo("mp4 | \n");
//画質(アナログビットレート)
echo("".htmlspecialchars($rowdata[3])."
| \n");
//デジタル優先
echo("");
if (htmlspecialchars($rowdata[5]) == 1){
print "する";
}else{
print "しない";
}
echo(" |
\n");
}else{
print "
− | 0 |
[全局]
|
EPG録画 |
mp4 | ";
echo("".htmlspecialchars($rowdata[3])."
| ");
//デジタル優先
echo("");
if (htmlspecialchars($rowdata[5]) == 1){
print "する";
}else{
print "しない";
}
echo("\n |
");
}//if tid 0
} while ($rowdata = $rs->fetch());
}//else
?>