Forum Patio
スガラボットのForum Patioに戻る 掲示板トップページ

スガラボットの Forum Patio

★ logファイルと各種データファイルの構造

● data/index1.log 現行スレッド一覧ファイル

・1行目

   $no  $ho  $t
3.06 [最大スレッド番号] [ホスト名] [タイムスタンプ]
きりしま式 [最大スレッド番号] [ホスト名] [タイムスタンプ]
スガラボット版 [最大スレッド番号] [ホスト名] [タイムスタンプ]

・2行目以降

   $num  $sub  $res  $nam  $date  $na2  $key $upl $ressub $restime
3.06 [スレッド番号] [タイトル] [レス数] [作成者] [日付] [最終レス者] [スレッドの状態] [アップロードファイル名]    
きりしま式(計画) [スレッド番号] [タイトル] [レス数] [作成者] [日付] [最終レス者] [スレッドの状態]   [最終レスタイトル]  [タイムスタンプ]
スガラボット版 [スレッド番号] [スレッドテーマ] [レス数] [作成者] スレッドの
最終更新
[日付]
※2
[最終レス者] [スレッドの状態]   [最終レスタイトル] ※1 [最終レスタイムスタンプ]

アップロードファイル名はファイルがアップロードされているフラグ(アップロードのタイムスタンプ)
※1 新規スレッドで返信が未だないとき、新規投稿の題名がスレッドテーマと同じ時は空、異なるときは投稿の題名 (forum_patio_v120より変更)
※2 ユーザによる編集も含めて、そのスレッドの内容に栂最後に更新された日付 (管理者による編集の場合は含まない)

● data/index2.log 過去スレッド一覧ファイル

現行スレッド一覧ファイルの1行目がない状態

● log/n.cgi 個別ログファイル

・1行目

   $no  $sub  $res  $key
3.06 [スレッド番号] [スレッドタイトル] [レス数] [スレッドの状態]
きりしま式 [スレッド番号] [スレッドタイトル] [レス数] [スレッドの状態]
スガラボット版 [スレッド番号] [スレッドテーマ] [レス数] [スレッドの状態]

 スレッドの状態 0=ロック 1=書き込み可(通常) 2=管理者 3=FAQ  4=管理者ロック -1=過去ログ (きりしま式k052以降及びスガラボット版)

・2行目及び3行目以降

   $no  $sub  $nam  $eml  $com  $dat  $ho  $pw  $url  $mvw  $myid  $tim  $upl{1}  $upl{2}  $upl{3}  $idcrypt $color $resto
3.06 0~n [スレッドタイトル] [名前] [メール] [本文] [日付] [ホスト] [暗号化されたパスワード] [URL] [メアド表示] [ログインID] [タイムスタンプ] [.画像1の拡張子],[横],[縦] [.画像2の拡張子],[横],[縦] [.画像3の拡張子],[横],[縦]      
きりしま式
(計画)
0~n [スレッドタイトル] [名前] [メール] [本文] [日付] [ホスト] [暗号化されたパスワード] [URL] [メアド表示] [ログインID] [タイムスタンプ] [.画像1の拡張子],[横],[縦] [.画像2の拡張子],[横],[縦] [.画像3の拡張子],[横],[縦] [ID]    
スガラボット版 0~n [レスタイトル]
 
[名前] [メール] [本文] [日付] [ホスト] [暗号化されたパスワード] [URL] [メアド表示] [ログインID] [タイムスタンプ] [.画像1の拡張子],[横],[縦],[ファイル名],[ファイル標題] [.画像1の拡張子],[横],[縦],[ファイル名],[ファイル標題] [.画像1の拡張子],[横],[縦],[ファイル名],[ファイル標題] [ID] [本文文字色] [参照する記事番号]

$no=0 のスレッド新規投稿で、スレッドテーマと投稿の題名が異なるときは、投稿の題名となる

● log/n.dat 個別スレッドの閲覧数記録ファイル

・1行のみのファイル

   $count  区切り記号  $ip
3.06/きりしま/スガラボット各方式共通 [閲覧数] : [最終閲覧者のIPアドレス]

・ 閲覧数は閲覧者のIPアドレスが記録された最終閲覧者のIPアドレスとと異なった場合にカウントアップされ、IPアドレスもその時更新される。
・ 区切り記号が他のログファイルで使用されている "<>" とは異なり単一文字の ":" (半角コロン)であることに注意。

● data/viewcount.dat 各スレッド閲覧数の統合記録ファイル (v1.03m/v1.03sより導入)

・トップページで各スレッドの閲覧数を表示するために、オリジナルのpatio.cgiでは スレッド毎の閲覧数を記録した"./data/$no.dat"
 ファイルを開いているが、スレッド数が多いとDISK/IOの数も増えてサーバリソースの負担が大きいため、viewcount.datという統合ファイルを
 作成して、サーバ負荷の低減を図ることとした。
・このファイルは、ログファイルの更新があったとき、forum.cgiが作成する。このファイルが存在するとき、patio.cgi もスレッド毎の閲覧数は
 このファィルから取得し、"./data/$no.dat"はアクセスしない。
・各スレッドの閲覧時には従来との互換性確保のため read.cgi が "./data/$no.dat" には従来通り閲覧数を記録し、viewcount.dat
 ファイルが存在するときは、こちらのデータも更新することとした。
・1行目は 各スレッド閲覧数の合計値
・2行目以降は1列目がスレッド番号、二列目以降は "./data/$no.dat" ファイルと同様の内容で区切り記号のみ"<>"に変更したもの

  $tno  $count $ip
1行目 総閲覧数
2行目 [1番目のスレッド番号] [閲覧数] [最終閲覧者のIPアドレス]
N+1行目 [N番目のスレッド番号] [閲覧数] [最終閲覧者のIPアドレス]

(最新記事のあるスレッドを上にソートするときは、スレッド番号の順番は記事が新しいスレッド順になります。)

● /data/fcache_pN.txt Forum形式トップページ各スレッドツリー表示のキャッシュ・ファイル (v1.00m/v1.00sより導入)


・このキャッシュ・ファイルが無いか、何れかのスレッドで書込みや更新があった場合、最初のHTTPリクエストで forum.cgi が作成する。
・掲示板のいずれのスレッドにも更新がなかったときは、forum.cgiへのHTTPリクエストに対して、各スレッドのログファイルをオープン
 することなく、このキャッシュファイルからスレッドのツリー表示を出力する。
・fcache_pN.txt の N はスレッド数が多く複数ページにわたる場合の各ページ毎のキャッシュファイル。
・キャッシュされる内容は、ページ上方の「」、「」、「」の説明書きより下 ~ 新規スレッド投稿フォームの上の水平線までの部分。
・スレッド親発言の一番右に表示される「閲覧数:」以降の数字はキャッシュからではなく、各スレッドの$num.datまたはviewcount.datから
 最新のデータを読み出して表示する。これは各スレッドの「閲覧数:」の箇所に特定の行パターンでスレッド番号を記録することで識別する。
・新しい記事につける new! のマークはキャッシュから出力するのではなく、forum.cgiにHTTPリクエストがあったときの時間を見て表示する。
 キャッシュにはその記事が投稿された時間を特定の行パターンで記録しておき、閲覧がリクエストされた時間との差で判断する。

  各行の内容 備考
1行目 スレッドが管理者コメントやロックされている場合はそのコメント  
2行目 第1スレッド親発言の投稿日時までの内容  
3行目 <>$tim[0]<>\n  ⇒ 親記事が投稿されたUnixタイム ← <>[数字10桁]<>\nという特定の行パターンで識別
4行目 続く「閲覧数:」の表示内容  
5行目 <>count:$i:$tno[$i]:$count[$i]<>\n ⇒ $tno[$i]がスレッド番号 ← <>count:・・・・<>\nという特別の行パターンで識別
6行目 第1スレッドの最初の返信記事の投稿日時までの内容  
7行目 <>$tim[1]<>\n  ⇒ 1番記事が投稿されたUnixタイム ← <>[数字10桁]<>\nという特定の行パターンで識別
8行目 第1スレッドの2番目の返信記事の投稿日時までの内容  
9行目 <>$tim[2]<>\n  ⇒ 2番記事が投稿されたUnixタイム ← <>[数字10桁]<>\nという特定の行パターンで識別
 
 
xx行目 第2スレッドの表示内容 (1行目~9行目と同様)  
 
 
yy行目 第Nスレッドの表示内容 (1行目~9行目と同様)  
 
 
zz行目 以下同様  

● date/feed.log RSSフィード作成用の投稿記録ログファイル

・1行目 最新RSSフィードファイル (RSS1.0/RSS2.0/ATOM1.0) の発行日時(pdate)及び更新日時(udate)

   $pdate  $pdate2  $udate  $udate2
v1.32以降 [発行日時]
(RFC822形式)
[更新日時]
(W3Cdtf形式)
[発行日時]
(RFC822形式)
[更新日時]
(W3Cdtf形式)

 *注) FEDDログ新規作成時はpdate,udate共にログ作成日時、新規投稿時は共に投稿した日時で、記事修正時のみ日時は異なる。

・2行目及び3行目以降

   $tnum  $no  $tsub  $sub  $pdate2  $pdate  $udate2  $nam  $fcom  $reg_upl  $resto
v1.32以降 [スレッドNo]
1~n
[記事No]
1~n
[スレッドテーマ]
※1
[記事タイトル] [発行日時]
(W3Cdtf形式)
[発行日時]
(rfc822形式)
[更新日時]
(W3Cdtf形式)
[投稿者氏名] [記事サマリー]
※2
[アップフラグ]
(あればタイ
ムスタンプ)
[返信先]

※1 スレッドテーマがスレッド親発言と異なるときはその通り記録。スレッドテーマとスレッド親タイトルが同一のときは、スレッド親発言の行では空、
   返信記事の行では"<0>スレッド親タイトル"として記録。記事タイトルと共に、BBCode は削除。
※2 投稿記事の BBCode を削除し、アップロードや更新があればその旨の補足を付けて本文の長さは init.cgi の $len パラメータで切り詰めたもの。


<以上>