DIGITAL-TIPS.NET

2004年09月 | 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
CGI研究室 | 2004年09月



2004年09月08日(水) 13:48

eMzStyle Boardの設定ファイル解説

インデックス
  1. 基本設定
  2. クッキー
  3. メニュー
  4. 管理者情報
  5. 返信記事
  6. ジャンプ
  7. フォーム
  8. デザイン
  9. アイコン
  10. おみくじ
  11. ランキング
  12. カウンタ
  13. 過去ログ
  14. フリーエリア
  15. ファイルロック
  16. セキュリティ


基本設定
# ホームページ
$home = "http://www85.sakura.ne.jp/~cgilabo/cgi.html";

メニューの「ホーム」にリンクするページを指定します。初期設定では、CGI LABOにリンクするようになっていますので、自分のホームページのトップページのアドレスなどに書き換えてください。

# スクリプト
$script = "bbs.cgi";

ファイルをリネームして使いたいときにここを書き換えるようになっています。補助スクリプト書込スクリプト記事抽出スクリプト管理スクリプトの項目についても同様です。通常、変更する必要はありません。

例 : bbs.cgi を msb.cgi にリネームして使いたい場合は、 $script = "msb.cgi"; と書きます。

# ログファイル
$logfile = "log/bbs_log.log";

記事データを記録するログファイルをリネームして使いたいときにここを書き換えます。ログファイルには、投稿者のホスト情報なども記載されていますのでリネームして使うのが望ましいと思います。

# スキンモジュール
$skinfile = "msb_normal.pl";

Ver2.00よりスキンファイルを使用できるようになりました。スキンファイルとは、ページデザインを定義するもので、これを変更することにより見た目を一新することができます。当サイトの記念ヒット時などに特別仕様のものを公開する予定です。サンプルとして、見た目を疑似ツリー表示にするスキンが同梱されていますのでお試しください。

例 : 疑似ツリースキンに変更する場合は $skinfile = "msb_tree.pl"; と書きます。

# スタイルシート
$cssfile = "style_normal.css";

スタイルシートはページの配色などを定義するファイルで、これを変更したい場合はここを書き換えます。スタイルシートについての詳細は とほほのスタイルシート入門 をご参照ください。また、@nifty のようにCGIとそれ以外のファイルを別々の場所に置かなければいけない、かつCGIとそれ以外のファイルの参照URLが違うところがありますので、解説ページをよく読んで適切に設定ないとスタイルシートが全く適用されない状態になります。

# タイトル(ブラウザ)
$title = "eMzStyle Board";

ブラウザのタイトルバーに表示する文字列を指定するところです。

# タイトル(HTML:タグ可)
$html_title = "eMzStyle Board";

掲示板のタイトルを設定します。こちらはHTMLタグが使用できます。タグを使用する場合、若干書式が違いますので下の例を参考にしてください。

例 : タグで装飾する場合 $html_title = qq{< font size="+3"> 掲示板< /font> };

例 : 画像を使う場合 $html_title = qq{< img src="title.jpg" alt="掲示板">};

# 1ページあたりのスレッド数
$p_max = "5";

1ページに表示する親記事の数を指定します。返信数が多い掲示板ではこの数値を少な目に、逆に返信数が少ない掲示板では少し多めに設定しましょう。目安としては、1ページあたりの親記事と返信記事の合計が30〜50程度になるように設定すると良いでしょう。

# スレッド一覧1ページあたりの表示件数
$list_max = "25";

スレッド一覧の1ページに表示する件数を指定します。目安としては、上記の1ページあたりのスレッド数の2〜3倍くらいで良いと思います。

# 新着記事の1ページあたりの表示件数
$topic_max = "20";

新着記事に表示する件数を指定します。あまり多くしすぎると、新着じゃない記事まで載ることになりますので程々にしましょう。

# 検索の1ページあたりの表示件数
$search_max="25";

ワード検索でヒットした記事を1ページあたりに何件表示するか指定します。

# URL自動リンク
$autolink = "1";

記事の本文中にあるURL(http、https、ftp)やメールアドレスを、そのまま文字として表示するかリンクとして表示するかを指定します。

# トピックリストを表示(0=no,1=yes)
$topic = "1";

掲示板上部に、某巨大掲示板風のトピックを表示するかを指定します。




クッキー
# クッキーがうまく保存されない場合は1を入れてください(AAA!CAFEなど)
$aaa_cookie = "0";

AAA!CAFE 専用の特殊設定です。AAA!CAFEの場合、この機能を有効にしていないとクッキーが残りません。また、AAA!CAFE以外のサーバでこの機能を有効にしていると不具合が生じる場合がありますのでご注意ください。



メニュー
# メイン画面上部に表示されるメニュー
$menu_box[0] = qq{|< a href="$home"> ホーム< /a> };
$menu_box[1] = qq{|< a href="$script?mode=new"> 新規投稿< /a> };
$menu_box[2] = qq{|< a href="$sub_script?mode=omikuji"> おみくじ< /a> };
$menu_box[3] = qq{|< a href="$sub_script?mode=ranking"> 発言ランキング< /a> };
$menu_box[4] = qq{|< a href="$script?"> リロード< /a> };
$menu_box[5] = qq{|< a href="$read_script?mode=topics"> 新着記事< /a> };
$menu_box[6] = qq{|< a href="help.cgi"> 使い方< /a> };
$menu_box[7] = qq{|< a href="$sub_script?mode=search"> ワード検索< /a> };
$menu_box[8] = qq{|< a href="$sub_script?"> スレッド一覧< /a> \n};
$menu_box[9] = qq{|< a href="$admin_script?"> 管理モード< /a> \n};

メニューを独自にカスタマイズしたい場合はこちらを編集します。

例 : メニューを英語にしてみる
$menu_box[0] = qq{|< a href="$home"> Home< /a> };
$menu_box[1] = qq{|< a href="$script?mode=new"> Post< /a> };
$menu_box[2] = qq{|< a href="$sub_script?mode=omikuji"> Luck< /a> };
$menu_box[3] = qq{|< a href="$sub_script?mode=ranking"> Ranking< /a> };
$menu_box[4] = qq{|< a href="$script?"> Reload< /a> };
$menu_box[5] = qq{|< a href="$read_script?mode=topics"> New< /a> };
$menu_box[6] = qq{|< a href="help.cgi"> Help< /a> };
$menu_box[7] = qq{|< a href="$sub_script?mode=search"> Search< /a> };
$menu_box[8] = qq{|< a href="$sub_script?"> Thread< /a> \n};
$menu_box[9] = qq{|< a href="$admin_script?"> Admin< /a> \n};



管理者情報
# 管理者パスワード
$password = "0123";

管理モードへの入室に使用するパスワードです。必ず変更してください。また、このパスワードを使用することにより、ページ下部の記事削除/修正フォームから全投稿者の記事を再編集または削除できます。

# 管理者ハンドルネーム保護を使用(0=no,1=yes)
$admin_lock = "1";

管理者名の不正利用によるなりすましを防止します。以下で指定する管理者名での記事投稿は、削除キーが上で設定した管理者パスワードでないとできなくなります。

# 管理者名
$admin_name = "管理人";

不正利用を防止するハンドルネームを指定します。※複数指定はできません

# 管理者専用文字色(指定しない場合は空白)
$admin_color = "#004000";

管理者を識別するための文字色を指定します。これを設定した場合、色選択フォームで選んだ文字色は無視されて自動的にこの色に置き換えられます。
※ここで設定した色は文字色選択フォームには表示されません。

# 管理人専用アイコン
$admin_icon = "admin.gif";

うえの専用文字色と同じで、管理人しか使えないアイコンを設定します。
※ここで設定したアイコンは一覧には表示されません。



返信記事
# 記事表示モード(0=通常,1=複数行)
$mres = "0";

返信記事をどのように表示するかを選択します。通常モードは「一行レス」程度の記事に適していて、長文の投稿がある場合は「複数行」を選択した方が見やすいと思います。
※返信記事でアイコンを利用する場合は、強制的に複数行モードになります。

# 通常モードレイアウトFIX(0=no,1=yes)
$res_fix = "1";

通常モード(一行レス表示)で、記事が複数行にわたるときに、2行目以降を名前の位置までインデント処理するかを指定します。

# 返信記事表示件数制限を使用(0=no,1=yes)
$res_hide = "1";

1スレッドあたりの返信数が多いとページの表示がものすごく遅くなりますので、某巨大掲示板のように最新記事のみを前面に表示させて、古い記事を自動的に隠します。

# 返信数管理ファイル
$listfile = "log/list.log";

記事の折り返しをするために各スレッドの返信数を記録するファイルです。また、トピックリスト表示にも使用しています。

# 前面に表示する件数
$view = "5";

返信記事表示件数制限を使用している場合に、通常画面に表示する記事の件数を指定します。

# 抽出表示1画面あたりの表示件数
$pick_max = "10";

返信数があまりにも多いような運営をしているサイト向けに、1スレッドの記事を分割表示させる機能を実装しています。その抽出表示画面で1ページあたりに何件の記事を表示させるかを指定します。

# スレッドバーを使用(0=no,1=yes,2=強制表示モード)
$thread_bar = "1";

各スレッドの下部に便利なメニューを表示させるかを指定します。



ジャンプ
# ナビゲーションポインタを表示(0=no,1=yes)
$navi = "1";

各スレッドの右側に「次スレッド」「前スレッド」に移動するリンクを表示させるかを設定します。

# マークを定義
$prev_mark = "▲";
$next_mark = "▼";

ナビゲーションポインタに使用するマークを指定できます。HTMLタグを使うことができますので、画像を使用することもできます。

例:画像を使用する場合
$prev_mark = qq{< img src="img/prev.gif" width="10" height="10" alt="ひとつ前のスレッドへ移動"> };
$next_mark = qq{< img src="img/next.gif" width="10" height="10" alt="次のスレッドへ移動">



フォーム
# スレッドトップソート(0=使用しない、1=あげモード、2=さげモード、3=強制あげ)
$topsort = "1";

返信時に返信したスレッドを最上部に移動させるかどうかを選択します。
あげモード : あげのチェックボックスにチェックして返信するとスレッドが最上部に移動します。
さげモード : さげのチェックボックスにチェックしないで返信するとスレッドが最上部に移動します。
強制あげ : 返信するとスレッドが最上部に移動します。

# 重要レス(0=使用しない、1=管理人のみ、2=全員)
$absres_view = "2";

返信フォームに重要レスのチェックボックスを表示します。重要レスとして投稿された記事は、記事表示制限を設定している場合でも裏面に隠れません。また、CSS編集によりその返信記事を強調表示させることもできます。

# 記事タイトル強制入力を使用(0=no,1=yes)
$abs_title = "0";

親記事投稿時にタイトル未記入での投稿ができなくなります。

# 返信件数制限を使用(0=使用しない、使用する場合は返信数)
$threadres_max = "25";

1スレッドあたりに投稿できる返信数を指定できます。返信があまりにも多いと掲示板の処理が重くなりますので、それを改善するために指定数以上返信できないようにしておくことをオススメします。

# 新規投稿フォーム(0=別画面、1=メイン画面)
$form_area = "0";

親記事を投稿するためのフォームを表示させる場所を指定できます。

# 新規投稿メッセージフォームの行数
$form_row = "10";

親記事投稿フォームのメッセージ部分のテキストエリアの行数を指定できます。フォームが別画面の時は多めに、メイン画面の時はやや少なめに設定しておくと良いかもしれません。

# 返信投稿フォーム(0=別画面、1=メイン画面)
$resform_area = "1";

返信記事を投稿するためのフォームの表示場所を指定できます。

# 返信メッセージフォームの行数
$resform_row = "5";

こちらも別画面の時は多く、メイン画面の時は少なめに。



デザイン
# 新着記事のマーク(タグ使用可)
$new_mark = "New!";

投稿後、丸1日ここで指定したマークを表示します。表示したくない場合は空白にしておいてください。

例:画像を使用する場合
$new_mark = qq{< img src="img/new.gif" width="20" height="5" alt="新着記事"> };

# 文字色サンプルのマーク
$mark = "■";

文字色のサンプルのマークを変更できます。★とか●とか自分の好きなものに変えてみてください。

# 親記事文字色サンプルの折り返し
$color_max = "15";

文字色をたくさん登録してしまった場合、画面に入りきらなくなりますので折り返して複数行で表示します。

# 記事文字色
@color_c = ('#777777','#DF0000','#008040','#0000FF','#C100C1','#FF80C0');
@color_w = ('灰','赤','緑','青','紫','桃');

文字色をカスタマイズできます。あまり増やし過ぎないように注意しましょう。あと、増やしたり減らしたりする場合は上下セットで編集してくださいね。

# 文字色ランダム選択を追加(no=0、yes=1)※返信フォームのみ
$random_color = "1";

文字色を選ぶのが面倒な人のために、返信フォームの文字色選択に自動で文字色を選んでくれる「ランダム」を追加します。



アイコン
# アイコンを使用する(0=no、1=親記事のみ、2=レスにも使用)
$icon_mode = "0";

アイコンを使用するかを設定します。

# ランダム選択を使用する(0=no、1=yes)
$random_icon = "0";

アイコンを自動選択する「ランダム」をアイコン選択フォームに追加します。

# アイコンのフォルダ(他の画像もここに入れること)
$imgf = "./img";

アイコン画像をアップロードしておくディレクトリを指定します。@nifyなど、CGIとそれ以外のファイルを別々の場所に置かなければならないサーバの場合は、http://から記述するようにしてください。

# アイコンを定義(上下は必ずペアで)
@icon1 = ('icon1.gif','icon2.gif','icon3.gif');
@icon2 = ('アイコン1','アイコン2','アイコン3');

サーバにアップロードするアイコン画像のファイル名と、選択フォームに表示する文字列を指定します。

例:
@icon1 = ('moja.gif','afro.gif','mic.gif','sakura','perl');
@icon2 = ('もじゃ','アフロ','ミック','さくら','パール')

# プレビュー1行あたりの数
$icon_cnt = "5";

アイコンプレビュー画面の1行あたりに表示させるアイコンの数を指定します。画像の大きさによって1行あたりどれくらいの数にすればよいのかが違ってきますので、設置後プレビュー画面で確認のうえ最適な数を設定してください。 



おみくじ
# おみくじを使用する(0=no、1=yes)
$use_omikuji= '1';

1日1回おみくじを引けるようにします。
※おみくじは別画面に表示されます。

# ユーザーデータ
# ※発言ランキングと共用

1日1回しか引けないようにするために、発言ランキング記録ファイルにその日引いたおみくじを記録しています。

# おみくじデータ
$lucky[0] = "< span class='omikuji'> 大吉< /span> < P> 運は最高です。なにごともうまくいくでしょう♪";
$lucky[1] = "< span class='omikuji'> 中吉< /span> < P> ふむふむ、まずまずの運気ですな。";
$lucky[2] = "< span class='omikuji'> 小吉< /span> < P> 幸運はすぐそこに来ているかも・・・。";
$lucky[3] = "< span class='omikuji'> 吉< /span> < P> ふつうだぁ〜ね・・・";
$lucky[4] = "< span class='omikuji'> 凶< /span> < P> 明日があるさ・・・";
$lucky[5] = "< span class='omikuji'> 大凶< /span> < P> Σ( ̄□ ̄;)";

おみくじの内容を自由に編集できるようにしています。初期状態では、理論上全てのおみくじが同じ確率で出るようになっています。

例 : おみくじデータを増やして確率を変更する
$lucky[0] = "< span class='omikuji'> 大吉< /span> < P> 運は最高です。なにごともうまくいくでしょう♪";
$lucky[1] = "< span class='omikuji'> 中吉< /span> < P> ふむふむ、まずまずの運気ですな。";
$lucky[2] = "< span class='omikuji'> 中吉< /span> < P> ちょっといいことがあるかも";
$lucky[3] = "< span class='omikuji'> 小吉< /span> < P> 幸運はすぐそこに来ているかも・・・。";
$lucky[4] = "< span class='omikuji'> 小吉< /span> < P> ちょっとしたことに幸せを感じる一日になるでしょう";
$lucky[5] = "< span class='omikuji'> 小吉< /span> < P> 今日も一日がんばろう!";
$lucky[6] = "< span class='omikuji'> 吉< /span> < P> ふつうだぁ〜ね・・・";
$lucky[7] = "< span class='omikuji'> 吉< /span> < P> 何事も普通がいちばんです";
$lucky[8] = "< span class='omikuji'> 吉< /span> < P> 平凡な一日になりそうです";
$lucky[9] = "< span class='omikuji'> 吉< /span> < P> まぁ〜、昨日となんら変わらない一日になりますな";
$lucky[10] = "< span class='omikuji'> 吉< /span> < P> 日々平凡";
$lucky[11] = "< span class='omikuji'> 凶< /span> < P> 明日があるさ・・・";
$lucky[12] = "< span class='omikuji'> 大凶< /span> < P> Σ( ̄□ ̄;)";



ランキング
# 発言ランキングを使用する(0=no、1=yes)
$use_ranking = "1";

投稿回数や投稿文字数による(どちらかを選択)ユーザーランキング機能を追加します。

# ランキングタイプ(0=投稿回数、1=ポイント)
# ※ポイントは文字数を最大値とする乱数から算出
$rank_type = "0";

ランキングの算出方法を選択できます。
※運用中に途中からモード変更するとデータがおかしくなりますので、モードを変更した場合はランキングファイルの中身を全て消してください。

# データ保持日数
# ※指定した日数の間にデータ更新されない場合は自動的にランキングリストから削除
$memberdel = "30";

一見さんのデータを残しておいてもしょうがないので、指定日数が内に投稿がない場合、自動的にランキングデータを削除します。
この機能はOFFにできません。

# 投稿回数を記録するファイル
$rankfile = "log/rank.log";

ランキングデータを記録するファイルです。

# ランキング表示件数(上位 $rankcnt 位まで表示)
$rankcnt = "5";

ランキングの初期画面に表示する件数を指定します。全投稿者表示をクリックすると全員表示されます。

# 昇級システム(使用しない場合は空白)
$rankup = "1";

発言回数(またはポイント)が一定数に達するとランクがあがるシステムを使用するかを指定します。

# 昇級に必要な投稿回数(昇級数を増やすときはクラスとセットで)
$rcnt[1] = "1";
$rcnt[2] = "10";
$rcnt[3] = "25";
$rcnt[4] = "50";
$rcnt[5] = "100";

ランクアップするために必要な投稿回数を定義します。

例 : ポイントの場合
$rcnt[1] = "1";
$rcnt[2] = "100";
$rcnt[3] = "500";
$rcnt[4] = "1000";
$rcnt[5] = "3000";

# クラス(クラスを増やすときは投稿回数とセットで)
$rnkcom[1] = "新人さん";
$rnkcom[2] = "カキコ好き";
$rnkcom[3] = "常連さん";
$rnkcom[4] = "カキコ職人";
$rnkcom[5] = "カキコ王";

ランクアップした際のランク名を定義します。



カウンタ
# カウンタを使用する(0=no、1=yes)
$use_counter = "1";

アクセス数を示すカウンタを使用するかを指定します。

# カウンタログファイル
$cntlog = "log/count.log";

アクセス数を記録するファイル。

# カウンタコメント(タグ可)
$rc_msg = "You are the ";
$lc_msg = "th visitor...";

カウンタの左右に表示する文字列を編集できます。表示したくないときは空白。



過去ログ
# 最大記事数(親記事)
# ※過去ログを使用しない場合古い記事は消えます
$max_log = '100';

ログファイルにスレッドをいくつ残すかを指定します。多すぎるとサーバに過度の負荷をかけますので30〜100程度で設定してください。返信数が多いようなサイトの場合はできるだけ少なくしてください。逆に返信数が少ないサイトでは多めに設定しても良いです。

# 過去ログを使用(0=no、1=yes)
$use_oldlog = '1';

上で指定したスレッド数を超えるとデータが過去ログに移動します。

# 過去ログナンバーファイル
$numberfile = "log/no.log";

過去ログが多くなると複数ファイルに分けて記録されるようになりますので、その数を記録しておくためのファイルです。

# 過去ログディレクトリ
$pdir = "./log/";

過去ログファイルを保存するディレクトリ。

# 過去ログ拡張子
$tail = "log";

ログファイルの拡張子を指定します。ログファイルの中を見られたくない場合は、cgiやplなどにしておくと良いでしょう。

# 過去ログに記録する件数(親記事+返信記事)
# この行数を超えると新ファイルを生成
$max_line = "500";

過去ログファイル1ファイルあたりに記録する記事の数を指定します。この数を超えると自動的に次ファイル生成します。



フリーエリア(タグ使用可能)
# < !-- ここから --> と < !-- ここまで --> の間に記入
$freearea = < < "PRN";
< !-- ここから -->
< table summary="free-msg">
< tr>
< td>
 ・eMzStyle BoardはCSSにより強力なデザインカスタマイズができる掲示板です。< br>
 ・自作掲示板の動作テストも兼ねていますので、突然ログが飛んだりするかも知れません。
 < /td>
< /tr>
< /table>
< !-- ここまで -->
PRN

自由に何でも書ける場所です。無料ホームページのバナータグや、お知らせなどご自由にご利用ください。



ファイルロック
# テンポラリファイルディレクトリ
$tempdir = "./lock";

投稿時に記事を一時的に記録しておくファイルを生成するための場所を指定します。
このディレクトリのパーミッションを777にしないと記事が投稿できないサーバもあります。

# ファイルロックを使用(0=no、1=yes)
# ※サーバによっては使用できないかもしれません(mkdir関数を使用)
$filelock = "1";

ログとびを防止するファイルロック機構を使用するかを指定します。

# ロックディレクトリ
$lockdir = "/filelock";

mkdir関数でロック時に生成するロックファイルのファイル名を指定します。

# ロック確認リトライ回数
# ※推奨値:5以内を推奨
$locktime = "3";

ファイルロックにより投稿が抑止された際に、自動でリトライする回数を指定します。多くしすぎるとサーバがダウンする可能性があります。できるだけ初期値以下の数値にしてください。



セキュリティ
# ホストをコメントとして表示(0=no、1=yes)
$view_host = "0";

コメントタグを使用してソースにホスト情報を書き出すかを指定します。

# アクセス拒否を使用(0=no、1=書込禁止、2=読み書き禁止)
$access_check = "0";

悪質ユーザーやプロキシを使用した不正アクセスユーザーに対しアクセス制限をかけることができます。

# ホスト情報取得モード(0=IP、1=ホスト名)
# ※サーバによってはホスト名を取得できない場合があります
$access_mode = "1";

一度、投稿した後に管理モードでサーバの特性を確認してから、ホストで制限するかIPで制限するかを決めてください。

# アクセス拒否ホスト情報記録ファイル
$denyhostfile = "denyhost.pl";

アクセス制限情報を記録するファイル。

# 1時間内の投稿回数リミットを指定(0=no、1=yes)
$use_postcount = "0";

ツールによる連続POSTを排除するために、1時間あたりに投稿できる回数を指定できます。

# 投稿数記録ファイル
$acc_logfile = "log/postcount.log";

1時間あたりの投稿数制限をする場合に投稿数を記録するファイル。

# 1時間の許容投稿回数
$hourmax = "10";

1時間あたりに投稿できる数を指定。

# 投稿禁止にする時間(分)
$deftime = "30";

1時間あたりの投稿数を超えた場合、投稿禁止状態にする時間を指定します。

# NGワードチェックを使用(0=no、1=yes)
$use_ngword = "0";

投稿内容に悪質な文字列を含んでいる場合、投稿を拒否します。

# NGワードを指定(あまり多くすると処理が重くなります)
@ngword = ('死','馬鹿');

投稿を排除する文字列。

# 悪質ユーザー記録ファイル
# ※記録しない場合は空白にしてください
$wickedfile = "log/wicked_user.log";

悪質な文字列を含んだ記事を投稿したユーザーを記録します。

# 文字数チェックを使用(0=no、文字数=yes)
# ※文字数は半角換算です。全角文字数で制限する場合は2倍の数値を入れること。
$msg_length = "0";

大量文字列POSTによる掲示板破壊を防止するために、1回あたりに投稿可能な文字数を制限できます。

人気ブログランキングに参加中。いま何位くらいでしょうか? → 人気blogランキング




コメント


名前 Mail

HP

この記事のTrackBack URL

http://www.digital-tips.net/tb.php?id=1094618880


TrackBack

この記事のトラックバックはありません。