きりしま式 WebPatio > Ver 3.XX 対応のための改造メモ
3.06の上位互換のログフォーマットになるように、2系から拡張されて、きりしま式と衝突している部分を変更すること。対応済み
動作するレベルになったら2系のきりしま式からのログコンバーターを作成する。本家2系、3系からはそのまま移行できるようにしたい。対応済みきりしま式
Web Patio Ver2.XX → Ver 3.XX ログコンバータ
1行目
3.06 | [最大スレッド番号] | [ホスト名] | [タイムスタンプ] |
きりしま式 | [最大スレッド番号] | [ホスト名] | [タイムスタンプ] |
2行目以降
$upl | $ressub | $restime | ||||||||
3.06 | [スレッド番号] | [タイトル] | [レス数] | [作成者] | [日付] | [最終レス者] | [スレッドの状態] | [アップロードファイル名] | ||
きりしま式 2.XX | [スレッド番号] | [タイトル] | [レス数] | [作成者] | [日付] | [最終レス者] | [スレッドの状態] | [最終レスタイトル] | [タイムスタンプ] | |
計画 | [アップロードファイル名] | [最終レスタイトル] | [タイムスタンプ] |
アップロードファイル名はファイルがアップロードされているフラグ(アップロードのタイムスタンプ)
現行スレッド一覧ファイルの1行目がない状態
1行目
3.06 | [スレッド番号] | [スレッドタイトル] | [レス数] | [スレッドの状態] |
きりしま式 | [スレッド番号] | [スレッドタイトル] | [レス数] | [スレッドの状態] |
スレッドの状態 0=ロック 1=書き込み可(通常) 2=管理者 3=未使用(旧FAQ) 4=管理者ロック -1=過去ログ ※-1はk052の暫定対応
2行目
3.06 | 0 | [スレッドタイトル] | [名前] | [メール] | [本文] | [日付] | [ホスト] | [暗号化されたパスワード] | [URL] | [メアド表示] | [ログインID] | [タイムスタンプ] | [.画像1の拡張子],[横],[縦] | [.画像2の拡張子],[横],[縦] | [.画像3の拡張子],[横],[縦] | |
きりしま式 2.XX | 0 | [スレッドタイトル] | [名前] | [メール] | [本文] | [日付] | [ホスト] | [暗号化されたパスワード] | [URL] | [メアド表示] | [ログインID] | [タイムスタンプ] | [ID] | |||
計画 | [.画像1の拡張子],[横],[縦] | [.画像2の拡張子],[横],[縦] | [.画像3の拡張子],[横],[縦] | [ID] |
3行目以降
3.06 | [レス番号] | [レスタイトル] | [名前] | [メール] | [本文] | [日付] | [ホスト] | [暗号化されたパスワード] | [URL] | [メアド表示] | [ログインID] | |||||
きりしま式 2.XX | [レス番号] | [レスタイトル] | [名前] | [メール] | [本文] | [日付] | [ホスト] | [暗号化されたパスワード] | [URL] | [メアド表示] | [ログインID] | [タイムスタンプ] | [ID] | |||
計画 | [タイムスタンプ] | dummy | dummy | dummy | [ID] |
dummyのパラメータを持たせることで、2行目と同等のフォーマットとする。画像の入出力のロジックを作ればレスにも画像が貼れるワケだが面倒なのでやらない。
1行目のレス数はホントにレス数。最大レス番号は、ログの最後の行のレス番号を取得する。
きりしま式 | [ホスト] | [タイムスタンプ] |
同一ホストから連続してメールを送信することができないように記録している。
きりしま式 | [検索語] | [スタート] | [表示件数] | [日付] | [タイムスタンプ] | [ホスト] |
検索機能の利用ログ。
きりしま式 | [キーワード] | [名前] | [題名] | [本文] | [URL] | [日] | [時] | [ホスト] |
禁止語フィルタに引っかかった投稿のログ。実際には投稿として受け付けられていないが、有用な書き込みだった場合に復元できるように記録。また、禁止語フィルタがうっかり厳しくなっていないかのチェックに。
FAQ機能のための予約。
・スレッド一覧で、新しい書き込みがあるスレッドにNEWマークを表示【済】
・スレッド一覧に、最新のレスのタイトルと、投稿者名を表示【済】・トリップを昔の2ch互換に【済】・トップページに検索窓を設置【済】・スレッド表示に、スレッド一覧と新規スレッドへのリンクを追加・メールアドレスを表示せずにメールを受け付けることができるルーチンを追加。(0.4)
・スレッド一覧の一番下の凡例に新規書き込みとFAQの表示を追加しました。(0.4 FAQは廃止)
・レスの表示範囲が指定できるように
・2ch風のID表示機能をつけました。init.cgi で使用の有無を設定できます。ユーザーが記事を編集した場合は編集時点の情報で再度IDが生成されます。管理者が編集した場合は、元のIDのままとなるようにしました。(0.4)
・他スレッド参照を >>[スレッド番号] でできるように。
・検索時、レスの本文も検索
・管理者ロック機能の追加、管理者がロックした場合は、スレッドを立てた人には解除できないように。
・検索に使用されたキーワードをファイルに記録するようにしました。掲示板の利用状況の把握に役立つかと思います。
・メール送信機能にも禁止ワードが有効になるようにしました。
・ユーザーが自分の記事を編集するスパナマークの画面に管理者パスワードを入れれば管理者として編集できるようにしてみました。
・管理者が特定のスレッドを過去ログ化したり、元に戻したりできるようにしました。(Thanks to ★さん)
・管理者モードでレスを削除したときに、レスのタイトルとレス数が正しくならない不具合を修正。
・管理者画面のスレッド一覧に記事が閲覧できるリンクを設定しました。
・記事修正後の「スレッドに戻る」を有効に。 (init.cgi → edit_log.pl)
・ユーザーが記事を編集するときにも禁止語フィルターが働くようにしました。管理者の編集時はフィルターはかかりません。
・FAQモード($keyフラグ3) スレッド一覧の上部に位置し続けるが、書き込み可能、という状態。あまり活躍しない割に改造部分が多岐にわたり面倒なので。
・書き込み禁止モードを設定。init.cgiの設定で書き込み動作を制限できるようにし、制限時はメッセージを表示できるようにしました。
・ユーザーの編集機能にロックのチェックを追加。ロックされている記事は編集も不可能に。管理者はそれでも編集可能。
・管理者が記事を編集した後で、ユーザーが管理者の編集意図を無にする(元に戻す)編集を行なうことがあったので、管理者の編集時は、ユーザーの設定したパスワードをクリアすることで、ロックせずにユーザーの改変をできないようにしました。
・スレッドを編集すると、スレッド一覧のデータをスレッドのデータで更新するようにしました。ロック状態や、ログファイルを直接編集したりした場合、一度スレッドを編集することで、スレッド一覧も更新できます。
・迷惑書き込み防止のため、メールアドレスの入力を禁止、をオプションで選択可能にしました。(0.4)
・メールアドレスを入力しても表示されないという設定を初期値にしました。【済】
・レスお知らせメール機能を装備しました。スレッドを立てるとき、レスを書き込む時に、メールアドレスを入力しておくと、レスがついたときにお知らせメールを受け取ることができます。設定はinit.cgiで、配信しないか、スレッドを立てた人だけか、レスをつけたひと全員かを指定できます。初期値は配信しません。(0.6)
・禁止語が含まれていると書き込みができないルーチンを組み込みました(Joyful Noteのパクリ)。regist.cgiを変更して、init.cgiに設定値を入れました。(3.X系には実装済)
・「>」ではじまる行の色が変わるようにしました。patio.cgiを変更して、init.cgiに色が設定できるようにしました。
・レスの時のデフォルトタイトルを「Re: (元のタイトル)」とするかどうかをソースを改造するのではなく、 init.cgi ファイルのオプションで変更することができるようにしました。(Thanks to IGさん)
・本文中の自動リンクのターゲットを設定できるようにしました。
・新規スレッド作成時、「【注意】新しいスレッドを作成する前に、既存のスレッドを検索してみましたか?」という注意書きの追加。やはり書くだけムダなので。
・管理者ロック時にNEWが消えるのに対処
・オリジナルのログを編集したときに空のスレッドができないように
・オリジナル版のログで利用時に、コメントを編集すると、ログにゴミが残る点の対処に1カ所漏れがありました