Index: /trunk/doc/CHANGES.txt =================================================================== --- /trunk/doc/CHANGES.txt (リビジョン 35) +++ /trunk/doc/CHANGES.txt (リビジョン 36) @@ -1,3 +1,8 @@ foltia 更新履歴 http://www.dcc-jpl.com/soft/foltia/ + +07.1.8 +viewepg.php: +graytable.css: + EPG番組表の表示スタイルを、横軸がそろうように改良。 07.1.4 Index: /trunk/doc/index.html =================================================================== --- /trunk/doc/index.html (リビジョン 34) +++ /trunk/doc/index.html (リビジョン 36) @@ -293,5 +293,5 @@
$/usr/bin/perl /usr/bin/tv_grab_jp | /home/foltia/perl/xmltv2foltia.pl
確認のためにブラウザで番組表ページを開きます。
-
+
テレビ東京のワールドビジネスサテライトを予約してみます。
@@ -345,8 +345,10 @@
EPG録画向け個別番組表を表示します。デフォルトで現在放映中の番組が最上段に表示されて、8時間分、8局表示します。タイトルをクリックすると放映時刻と放映局を選択しての録画予約ページとなります
- 自動録画に対応していない番組を録画するときに役に立つでしょう。ここで予約したものはTIDが0番の放送予定としてデータベースに追加されます。同じ時刻に始まる番組が局間で位置がそろってないのは作りがいいかげんだからで、よい解決方法思いついたら改良されるかもしれません。
+
EPG録画向け個別番組表を表示します。デフォルトで現在放映中の番組が最上段に表示されて、8時間分、8局表示します。
+既存の番組表サイトと比較して、常に現在放映されているものが最上段に表示されるため、常用に際しても便利です。
+タイトルをクリックすると放映時刻と放映局を選択しての録画予約ページとなります
+ 自動録画に対応していない番組を録画するときに役に立つでしょう。ここで予約したものはTIDが0番の放送予定としてデータベースに追加されます。
デモ画面:http://www.dcc-jpl.com/soft/foltia/demo/viewepg.php
-
+
番組表
+EPG番組表
番組表を表示します。 +
EPG番組表を表示します。 $maxdisplay){ //複数ページ @@ -127,44 +122,152 @@ } } - - - $query = "SELECT stationid, stationname, stationrecch, ontvcode FROM foltia_station WHERE \"ontvcode\" ~~ '%ontvjapan%' ORDER BY stationid ASC , stationrecch OFFSET $offset LIMIT $maxdisplay +//ココから新コード +//・局リスト +$query = "SELECT stationid, stationname, stationrecch, ontvcode +FROM foltia_station +WHERE \"ontvcode\" ~~ '%ontvjapan%' +ORDER BY stationid ASC , stationrecch +OFFSET $offset LIMIT $maxdisplay +"; +$slistrs = m_query($con, $query, "DBクエリに失敗しました"); +$stations = pg_num_rows($slistrs); +for ($i=0 ; $i < $stations ; $i++){ + $rowdata = pg_fetch_row($slistrs, $i); + $stationhash[$i] = $rowdata[3] ; +} + +//・時間と全順番のハッシュ作る +$epgstart = $start ; +$epgend = calcendtime($start , (8*60)); + +$query = "SELECT DISTINCT startdatetime +FROM foltia_epg +WHERE foltia_epg.ontvchannel in ( + SELECT ontvcode + FROM foltia_station + WHERE \"ontvcode\" ~~ '%ontvjapan%' + ORDER BY stationid ASC , stationrecch + OFFSET $offset LIMIT $maxdisplay + ) +AND startdatetime >= $start +AND startdatetime < $epgend +ORDER BY foltia_epg.startdatetime ASC "; + +$rs = m_query($con, $query, "DBクエリに失敗しました"); +$colmnums = pg_num_rows($rs); +if ($colmnums == 0){ +//番組データがない +$colmnums = 2; +}else{ + for ($i=0 ; $i < $colmnums ; $i++){ + $rowdata = pg_fetch_row($rs, $i); + $timetablehash["$rowdata[0]"] = $i; + } +} +//・局ごとに縦に配列入れていく +for ($j=0 ; $j < $stations ; $j++){ + $rowdata = pg_fetch_row($slistrs, $j); + $stationname = $rowdata[3]; + +$epgstart = $start ; +$epgend = calcendtime($start , (8*60)); +$query = " +SELECT startdatetime , enddatetime , lengthmin , epgtitle , epgdesc , epgcategory ,ontvchannel ,epgid +FROM foltia_epg +WHERE foltia_epg.ontvchannel = '$stationname' AND +enddatetime > $epgstart AND +startdatetime < $epgend +ORDER BY foltia_epg.startdatetime ASC "; - $rs = m_query($con, $query, "DBクエリに失敗しました"); - -//print ""; -$viewstations = pg_num_rows($rs); -print "
-$rowdata[1] | \n"; + $statiodh = m_query($con, $query, "DBクエリに失敗しました"); + $maxrowsstation = pg_num_rows($statiodh); +if ($maxrowsstation == 0) { + //print("番組データがありません". $item[$i][$stationname] . " | "; + $rowspan--; + } + //ROWSPAN + if ($rowspan === 1 ){ + $item[$dataplace][$stationname] = "". $item[$dataplace][$stationname] . " | "; + }else{ + $item[$dataplace][$stationname] = "". $item[$dataplace][$stationname] . " | "; + } + + }elseif ($item[$i][$stationname] == ""){ + //ヌルなら + $item[$i][$stationname] = $item[$i][$stationname] ; + }else{ + //なんか入ってるなら + $rowspan = $i - $dataplace; + if ($rowspan === 1 ){ + $item[$dataplace][$stationname] = "". $item[$dataplace][$stationname] . " | "; + }else{ + $item[$dataplace][$stationname] = "". $item[$dataplace][$stationname] . " | "; + } + $dataplace = $i; + } -} - -print "
---|---|---|---|---|---|
"; - renderepgstation($con,$rowdata[3],$start); - print " | \n"; +}//for +}// end of for://・局ごとに縦に配列入れていく + +//・テーブルレンダリング +print "
".htmlspecialchars($rowdata[1])." | " ; +} +//本体 +for ($l = 0 ;$l < $colmnums; $l++){ + print "
---|