200501010000){
}else{
$now = date("YmdHi");
}
$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_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 >= '$now'
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 >= '$now' ORDER BY \"startdatetime\" ASC
";
$rs = m_query($con, $query, "DBクエリに失敗しました");
$maxrows = pg_num_rows($rs);
//チューナー数
if (getgetnumform(r) != ""){
$recunits = getgetnumform(r);
}elseif($recunits == ""){
$recunits = 2;
}
?>
予約一覧
録画予約番組放映予定と予約番組名を表示します。
if ($maxrows == 0) {
print "番組データがありません
\n";
}else{
/* フィールド数 */
$maxcols = pg_num_fields($rs);
?>
TID |
放映局 |
タイトル |
話数 |
サブタイトル |
開始時刻(ズレ) |
総尺 |
画質 |
デジタル優先 |
\n");
/* pg_fetch_row で一行取り出す */
$rowdata = pg_fetch_row($rs, $row);
$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 > '$rowdata[5]'
AND foltia_subtitle.startdatetime < '$endtime'
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 > '$rowdata[5]'
AND foltia_subtitle.startdatetime < '$endtime'
";
$rclass = "";
$overlap = m_query($con, $query, "DBクエリに失敗しました");
$overlapmaxrows = pg_num_rows($overlap);
if ($overlapmaxrows > ($recunits) ){
$owtimeline = array();
for ($rrow = 0; $rrow < $overlapmaxrows ; $rrow++) {
$owrowdata = pg_fetch_array($overlap, $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 > '$rowdata[5]'
AND foltia_subtitle.startdatetime < '$endtime'
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 > '$rowdata[5]'
AND foltia_subtitle.startdatetime < '$endtime'
AND (foltia_station.stationrecch = '0' OR foltia_station.stationrecch = '-1' )
";
$eoverlap = m_query($con, $query, "DBクエリに失敗しました");
$eoverlapmaxrows = pg_num_rows($eoverlap);
if ($eoverlapmaxrows > ($externalinputs) ){
$eowtimeline = array();
for ($erow = 0; $erow < $eoverlapmaxrows ; $erow++) {
$eowrowdata = pg_fetch_array($eoverlap, $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");
}
?>
アナログ重複表示 |
|
エンコーダ数 | =$recunits ?> |
チューナー重複 |
|
外部入力重複 |
|
録画予約番組タイトルを表示します。
予約解除 |
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
}//for
}//else
?>