サンプル1
サンプル2
新規板追加画面
1つのスクリプトで複数の板を設置できます。
- 一つのスクリプトで複数の板が設置可。
- 管理者のみ記事、スレッド、板の削除、修正ができる。
- 板、スレッドごとに詳細な設定が出来る。
- データベース(MySQL)対応。
- 負荷は高そう。
- flockを用いた排他処理。
Ver1.00 ThreadBbs.zip
一応オブジェクト指向のソースです……が、ソース汚い。
ソースは SHIFT-JIS で書かれています。必要な方はご自分で EUC に保存し直してください。
色々ファイルのオープン、クローズを繰り返したりしているので負荷が結構高いです。共有サーバでの使用はあまりオススメできません。
また、文字コードに関しては一切処理をしていません。文字化けの出る方は mb_convert_encoding 関数や jcode.phps などで対処してください。
- まずは解凍
- ダウンロードしたら、専用のディレクトリを作成してそこでアーカイブファイルを解凍します。まあ専用のディレクトリを作成しなくてもいいのですが、ファイル数が多いので作成したほうがいいと思います。
ここでは ThreadBbs というディレクトリに解凍したとして説明します。ThreadBbsディレクトリに解凍したときの構成状況。 ThreadBbs ┣lock[755](ディレクトリ) ┃ ┗lock.txt[666] ┃ ┣Data[777](ディレクトリ) ┃ ┗css.css[644] ┃ ┣Script[755](ディレクトリ) ┃ ┗ ディレクトリ[755] と スクリプト[644] 色々 ┃ ┣board.dat[666] ┣custom.php[644] ← カスタマイズ用ファイル ┣index.html[644] ← 板追加HTML ┗sql.txt ← データベース使用時のSQL文。設置する必要なし。 ★注 [ ]内はパーミッション(サーバによってはこれと違う場合があります) たくさんファイルがありますが、実際に自分で管理するファイルは限定されるので 気負いしなくても大丈夫です。
- custom.phpの編集
- custom.phpファイルでパスワードやらデータベース使用するか否かなどの設定を記述します。
- 設置
- ここまでできたらサーバ側に設置します。↑のパーミッションに注意しながらアップしてください。ファイル数が多いので専用のディレクトリを作成することをオススメします。
後は↓のようなURLにアクセスして板の新規追加を行えれば設置完了です。
http://〜/ThreadBbs/
見栄えを代えるには Data ディレクトリ下の css.css や BbsView ディレクトリ下のスクリプトをいじってください。
新規板追加時などに設定する時に必要なアクセス権についての説明です。パーミッションとは似て非なる物です。混同させないよう注意してください。
パーミッションと同じように 755 や 644 など 3 桁の数字で表します。
100 の位が OWNER(管理者)、10 位がGROUP(管理者の指定した人達。まだ指定機能ありません。)、1 の位がOTHER(その他の人達)に対応しています。
パーミッションと異なるのが数値の意味です。アクセス権は以下のようになります。
4 → 読み込み可能 2 → 修正、削除可能 1 → 下位要素を追加可能
例えば スレッドに 755 のアクセス権を指定していると、OWNER は読み込み、修正削除、記事を追加可、GROUP、OTHER は読み込み、記事を追加可(つまり修正削除はできない)ってことです。
このアクセス権を使うといわゆるスレッドストッパーを再現できます。
手順
これでOKです。
- スレッド修正画面に入る。
- スレッドに 754 など OTHER に下位要素追加権限をあたえないようにする。
注意
OWNER は 0 を指定できません。また、100 などを指定してしまうと管理者権限からでも修正削除出来なくなってしまうので注意してください。
アクセス権、よくわからんって人はデフォルトのままいじらなければ OK です。
管理人はまだphpに詳しくないので、質問されても答えられないかもしれません。
- リファレンスの渡し方がよくわからん。うまく渡ってないっぽい。
- ソースの可読性が低い……どなたかリファクタリングの助言を!!
- BbsPlayerディレクトリ下に重複したコードがチラホラ
- Player って名前はダメだろ。もっと良い名前考えないと
- データベースの扱い方が未熟
- 全ての板のスレッド、メッセージを同じテーブルで扱ってるけどいいのか?
- MySQL 以外のデータベースにも対応させる
- 排他処理の仕方が未熟
著作権はたかひろにあります。
改造は可。再配布は不可。改造したものの再配布はメールをください。
設置後に感想、要望、バグ等々メールください。
<03/01/13> Ver1.00
<02/12/15> Ver0.20
- 正式完成
- テスト公開