きりしま式 WebPatio > Ver 5.XX 対応のための改造メモ
きりしま式の3.xx系を利用してきた環境で、WebPatio5.xx系に移行するのに何が必要かを再度洗い出してから、改造を行います。
(4.xxへの対応が終わらないまま、本家が5.xx系にバージョン番号を更新しています)
特に、オリジナル版の4.xxで、
・検索機能の検索範囲を、本文まで含めるようにした。
が実装されていることで、きりしま式が対応しなければならない点は少なくなったと考えています。また、
・全画面をテンプレート式に変更。
・画像認証(投稿キー)機能を改良。PNG連結式のライブラリー版とPerlモジュール を使用した本格版(Imnage::Magick必須)の2種を用意。
・内部動作を、CGI.pmモジュール利用方式に変更。
などの情報からも、内部構造が大きく変わっているようですので、ゼロベースでの再検討からです。
なお、KENT WEBの他のスクリプトで、画像アップロード後のサムネイル作成にImage::Magickを使うものが出現しているので、WebPatioにも、同等の機能が実装されたりするかもしれないので様子を見ています。(KENTさんには打診済み → 4.5で実装済み)
まだしばらく構想を練っていますので、きりしま式の4.xx相当のリリースは未定です。
きりしま式3.xx系が持っていて、オリジナル版の4.xx系に組み込みたい機能を再度洗い直します。簡単なので要望に応えて実装したものの、使い途が個人的にあまりない部分などは後回しにします。
オリジナル版4.xxの研究
改造ポイントの見直し
少しずつリリース
4.xxのログときりしま式3.xxの比較と計画
1行目
3.06 | [最大スレッド番号] | [ホスト名] | [タイムスタンプ] |
きりしま式 | [最大スレッド番号] | [ホスト名] | [タイムスタンプ] |
4.02 | [最大スレッド番号] | [ホスト名] | [タイムスタンプ] |
計画 | [最大スレッド番号] | [ホスト名] | [タイムスタンプ] |
2行目以降
$upl | $ressub | $restime | ||||||||
3.06 | [スレッド番号] | [タイトル] | [レス数] | [作成者] | [日付] | [最終レス者] | [スレッドの状態] | [アップロードファイル名] | ||
きりしま式 2.XX | [スレッド番号] | [タイトル] | [レス数] | [作成者] | [日付] | [最終レス者] | [スレッドの状態] | [最終レスタイトル] | [タイムスタンプ] | |
きりしま式 3.XX | [アップロードファイル名] | [最終レスタイトル] | [タイムスタンプ] | |||||||
4.02 | [スレッド番号] | [タイトル] | [レス数] | [作成者] | [日付] | [最終レス者] | [スレッドの状態] | [アップロードファイル名] | ||
計画 | [スレッド番号] | [タイトル] | [レス数] | [作成者] | [日付] | [最終レス者] | [スレッドの状態] | [アップロードファイル名] | [最終レスタイトル] | [タイムスタンプ] |
アップロードファイル名はファイルがアップロードされているフラグ(アップロードのタイムスタンプ)
現行スレッド一覧ファイルの1行目がない状態
1行目
3.06 | [スレッド番号] | [スレッドタイトル] | [レス数] | [スレッドの状態] |
きりしま式 | [スレッド番号] | [スレッドタイトル] | [レス数] | [スレッドの状態] |
4.02 | [スレッド番号] | [スレッドタイトル] | [レス数] | [スレッドの状態] |
計画 |
スレッドの状態 0=ロック 1=書き込み可(通常) 2=管理者 3=未使用(旧FAQ) 4=管理者ロック -1=過去ログ ※-1はk052の暫定対応
2行目
3.06 | 0 | [スレッドタイトル] | [名前] | [メール] | [本文] | [日付] | [ホスト] | [暗号化されたパスワード] | [URL] | [メアド表示] | [ログインID] | [タイムスタンプ] | [.画像1の拡張子],[横],[縦] | [.画像2の拡張子],[横],[縦] | [.画像3の拡張子],[横],[縦] | |
きりしま式 2.XX | 0 | [スレッドタイトル] | [名前] | [メール] | [本文] | [日付] | [ホスト] | [暗号化されたパスワード] | [URL] | [メアド表示] | [ログインID] | [タイムスタンプ] | [ID] | |||
きりしま式 3.XX | [.画像1の拡張子],[横],[縦] | [.画像2の拡張子],[横],[縦] | [.画像3の拡張子],[横],[縦] | [ID] | ||||||||||||
4.02 | 0 | [スレッドタイトル] | [名前] | [メール] | [本文] | [日付] | [ホスト] | [暗号化されたパスワード] | [URL] | [メアド表示] | [ログインID] | [タイムスタンプ] | [.画像1の拡張子],[横],[縦] | [.画像2の拡張子],[横],[縦] | [.画像3の拡張子],[横],[縦] | |
計画 |
3行目以降
3.06 | [レス番号] | [レスタイトル] | [名前] | [メール] | [本文] | [日付] | [ホスト] | [暗号化されたパスワード] | [URL] | [メアド表示] | [ログインID] | |||||
きりしま式 2.XX | [レス番号] | [レスタイトル] | [名前] | [メール] | [本文] | [日付] | [ホスト] | [暗号化されたパスワード] | [URL] | [メアド表示] | [ログインID] | [タイムスタンプ] | [ID] | |||
きりしま式 3.XX | [タイムスタンプ] | dummy | dummy | dummy | [ID] | |||||||||||
4.02 | ||||||||||||||||
計画 |
dummyのパラメータを持たせることで、2行目と同等のフォーマットとする。画像の入出力のロジックを作ればレスにも画像が貼れるワケだが面倒なのでやらない。
1行目のレス数はホントにレス数。最大レス番号は、ログの最後の行のレス番号を取得する。
4.02 | [参照数] | [IP] |
計画 |
個別記事が表示されるとカウントアップし、記事一覧で表示。
きりしま式 | [ホスト] | [タイムスタンプ] |
同一ホストから短時間に連続してメールを送信することができないように記録している。メールの本文ではない。ユーザー間でのメールのやりとりを管理者が閲覧できるのはおかしいと思うので。
きりしま式 | [検索語] | [スタート] | [表示件数] | [日付] | [タイムスタンプ] | [ホスト] |
検索機能の利用ログ。検索に使われたキーワードのログを収集して、FAQ化に役立てるイメージ。
きりしま式 | [キーワード] | [名前] | [題名] | [本文] | [URL] | [日] | [時] | [ホスト] |
禁止語フィルタに引っかかった投稿のログ。実際には投稿として受け付けられていないが、有用な書き込みだった場合に復元できるように記録。また、禁止語フィルタがうっかり厳しくなっていないかのチェックに。
FAQ機能のための予約。
文字が紫のものは3.xxで追加していた機能で対応済み、緑は4.xxでオリジナルに導入された、青は4.xxのきりしま式で新たに追加した機能です。黒い文字は検討前なので、3.xxの時のログに、更新履歴から変更点を改めて拾い直しただけのリストです(装備しないと決めたわけではありませんが優先度は低いです)。赤は4.xxのきりしま式で追加したい候補です。4.xxのオリジナル版をいじりながら検討しています。
・スレッド一覧で、新しい書き込みがあるスレッドにNEWマークを表示
・スレッド一覧に、最新のレスのタイトルと、投稿者名を表示
・トリップを昔の2ch互換に
・トップページに検索窓を設置
・スレッド表示に、スレッド一覧と新規スレッドへのリンクを追加・メールアドレスを表示せずにメールを受け付けることができるルーチンを追加。
・スレッド一覧の一番下の凡例に新規書き込みとFAQの表示を追加しました。
・レスの表示範囲が指定できるように
・2ch風のID表示機能をつけました。init.cgi で使用の有無を設定できます。ユーザーが記事を編集した場合は編集時点の情報で再度IDが生成されます。管理者が編集した場合は、元のIDのままとなるようにしました。
・他スレッド参照を >>[スレッド番号] でできるように。
・init.cgi のオプションでスレッド番号の表示を切り替えることができるようにしました。
・本文中の旧形式のURL(&mode=viewとなってるやつ)を縮めるようにしました。 &mode=view を省略できます。
・タイトルがスレッド一覧で表示されている意味を高めるために、タイトルは本文を入力し終えた次の画面で入力する手順としました。
・URL欄は必要性をあまり感じないので、オプションで抑制できるようにしたいところですが、4.xxではテンプレートファイルになっているので、切り替えができるようにする工数がバカにならないので、テンプレートで削除してしまっています。
・スマイリーの使用はオプションでテンプレートを置換するようになっているので、抑制する方向にしています。フォームのテンプレートがもともとはそういう前提ではないので最終的に双方の調整が必要そうです。
・レスが新しいものが上につく(新しい順)、というスタイルに変更になっていて、あとから見るときに時系列が変なので、3.xx同様、下についていく(古い順)ように変更しようと思っています。
・検索時、レスの本文も検索
・検索の際に大文字・小文字を区別しないようにすることができるようにしました。(Thanks to MSさん、なるよし◆og4viYKIyI さん)
・管理者ロック機能の追加、管理者がロックした場合は、スレッドを立てた人には解除できないように。
・検索に使用されたキーワードをファイルに記録するようにしました。掲示板の利用状況の把握に役立つかと思います。
・メール送信機能にも禁止ワードが有効になるようにしました。
・ユーザーが自分の記事を編集するスパナマークの画面に管理者パスワードを入れれば管理者として編集できるようにしてみました。
・編集用アイコンの右側に「編集」と出ているのは削除。テンプレートなので切替はできません。
・管理者が特定のスレッドを過去ログ化したり、元に戻したりできるようにしました。(Thanks to ★さん)
・管理者モードでレスを削除したときに、レスのタイトルとレス数が正しくならない不具合を修正。
・管理者画面のスレッド一覧に記事が閲覧できるリンクを設定しました。
・記事修正後の「スレッドに戻る」を有効に。 (init.cgi → edit_log.pl)
・ユーザーが記事を編集するときにも禁止語フィルターが働くようにしました。管理者の編集時はフィルターはかかりません。
・FAQモード($keyフラグ3) スレッド一覧の上部に位置し続けるが、書き込み可能、という状態。あまり活躍しない割に改造部分が多岐にわたり面倒なので。
・書き込み禁止モードを設定。init.cgiの設定で書き込み動作を制限できるようにし、制限時はメッセージを表示できるようにしました。ログを直接編集したり、掲示板の設定を変更したりする作業中の、また、あたらしい掲示板に移行するときの便宜をはかります。
・ユーザーの編集機能にロックのチェックを追加。ロックされている記事は編集も不可能に。管理者はそれでも編集可能。
・管理者が記事を編集した後で、ユーザーが管理者の編集意図を無にする(元に戻す)編集を行なうことがあったので、管理者の編集時は、ユーザーの設定したパスワードをクリアすることで、ロックせずにユーザーの改変をできないようにしました。
・管理人が編集をしても、パスワードをクリアしない、という設定ができるように修正しました。
・スレッドを編集すると、スレッド一覧のデータをスレッドのデータで更新するようにしました。ロック状態や、ログファイルを直接編集したりした場合、一度スレッドを編集することで、スレッド一覧も更新できます。
・連続投稿タイマーを新規スレッド作成とレスで分けました。(Thanks to Source◆tAo.kQ2STkさん)
・同時に、最大書き込み数を超えていてもレスフォームが表示されるようなので、暫定的に対処。
・管理者以外がスレッドを作成できなくするオプションを追加しました。(Thanks to 困り人さん)
・スレッド分割機能を装備してみました。指定したレス以降の記事を新規スレッドとしてコピーする機能です。実行後、元記事のレスを削除したり、編集したりして、1スレッド1トピックスの形態にメンテナンスできます。
・スレッドにレスがついたとき、メールアドレスを入力して書き込んだ人には、お知らせのメールが行く機能を追加しました。
・過去ログにしてもURLで直接指定するとフォームが表示されるため、迷惑書き込みがつく現象に対処してみました。過去ログに落ちるスレッドは $key フラグを -1 にセットして区別するように変更します。
・迷惑書き込み防止のため、メールアドレスの入力を禁止、をオプションで選択可能にしました。
・メールアドレスを入力しても表示されないという設定を初期値にしました。
・レスお知らせメール機能を装備しました。スレッドを立てるとき、レスを書き込む時に、メールアドレスを入力しておくと、レスがついたときにお知らせメールを受け取ることができます。設定はinit.cgiで、配信しないか、スレッドを立てた人だけか、レスをつけたひと全員かを指定できます。初期値は配信しません。
・「>」ではじまる行の色が変わるようにしました。patio.cgiを変更して、init.cgiに色が設定できるようにしました。
・レスの時のデフォルトタイトルを「Re: (元のタイトル)」とするかどうかをソースを改造するのではなく、 init.cgi ファイルのオプションで変更することができるようにしました。(Thanks to IGさん)
・本文中の自動リンクのターゲットを設定できるようにしました。
・配布アーカイブで Google AdSense を無効にするのをよく忘れるのでオプションで設定できるようにしました。