蓄々掲示板
特徴
- SSIなどでHTMLに埋め込み可能な掲示板CGIスクリプトです。
- Shift_JIS、EUC、JISでの出力に対応しています。
- デザインをほぼ自由にカスタマイズ出来ます。
- 書き込みの削除、復活が行えます。
- HTMLでも、XHTMLでも記述可能です。CSSも適用できます。
利用条件
- フリーソフト利用規定をご覧下さい。
ダウンロード
- rev1.3 ccbbs_rev13.zip
ChangeLog
- 2003-03-18 rev1.3 conf.cgiの記述ミスを修正。
- 2003-02-10 rev1.2 管理ログインページの記述ミスを修正。
- 2003-02-03 rev1.1 公開。
スクリプトの修正
bbs.cgi
#!/usr/bin/perl
conf.cgi
# 蓄々掲示板 設定ファイル rev1.1
# このファイルの文字コードはshift_jisで保存して下さい。
#
#____設定ここから
# 管理パスワード(必ず設定して下さい)
$conf{'password'} = '';
# 掲示板のタイトル(logview、adminで使用されます)
$conf{'title'} = '蓄々掲示板';
# 出力する文字コード ( sjis , euc , jis )
# 埋め込み先のHTMLの文字コードと同じにしてください
$conf{'charset'} = 'sjis';
# 埋め込み先のURL ( httpから全て記述してください )
$conf{'return_url'} = 'http://localhost/index.shtml';
# bbs.cgiのURL
$conf{'cgi'} = 'http://localhost/cgi-bin/ccbbs/bbs.cgi';
# 埋め込み時の表示件数
$conf{'viewline'} = 5;
# logview時の表示件数
$conf{'viewline_logview'} = 10;
# 自動リンクをする ( 1 = on )
$conf{'autolink'} = 1;
# 自動リンク時に置換する名前(空の場合はURLがそのままリンクされます)
$conf{'urlreplace'} = '';
# 自動リンク時のtarget属性の値(空白以外の場合にtarget属性が挿入されます)
# 例:_blank ... 新規ウィンドウ
# _top ... 親フレーム
$conf{'target'} = '';
# 書き込める名前+文章の最大長(単位:byte)
$conf{'maxlength'} = 2048;
# 改行を無視する ( 1 = on )
$conf{'nobreak'} = 0;
# 連続書き込み停止時間(単位:秒)
$conf{'stoptime'} = 10;
# ログの最大保存件数(多いほどサーバーに負荷がかかります)
$conf{'maxlog'} = 300;
# サーバーとの時差(単位:秒)
$conf{'timediff'} = 0;
# 全体のデザイン
# {cgi} ... cgiのURL
# {message_list} ... 書き込み一覧
# {navi} ... logviewでのナビゲーション表示
$conf{'html_body'} = <<"EOM";
<div style="font-size:82%;background-color:#fff;border:1px solid #666;padding:1ex">
<form action="{cgi}" method="post" name="ob" style="margin:0">
<p style="margin:0">
Name:<input type="text" name="name" size="8" value="" style="border:1px solid #888">
E-Mail:<input type="text" name="email" size="16" value="" style="border:1px solid #888"><br>
Message:<br>
<textarea name="text" cols="40" rows="4" style="border:1px solid #888"></textarea><br>
URL:<input type="text" name="url" size="30" value="" style="border:1px solid #888">
<input type="submit" value="write" style="color:#000;background-color:#ccc;border:1px outset #888">
<input type="hidden" name="mode" value="write">
</p>
</form>
<hr style="height:1px;color:#aaa;border-style:dotted">
{message_list}
{navi}
<p style="margin:0;text-align:right">
<a href="{cgi}?mode=logview">logview</a>
/ <a href="{cgi}">admin</a>
/ Script made by <a href="http://www.akiyan.com">蓄積多趣味人</a>
</p>
</div>
EOM
# 一書き込みのデザイン
# {name} ... 名前(E-Mailアドレスがある場合はリンク付き)
# {text} ... 文章
# {YEAR} ... 4桁年
# {year} ... 2桁年
# {mon} ... 月
# {mday} ... 日
# {hour} ... 時
# {min} ... 分
# {sec} ... 秒
# {number} ... 書き込み番号
# {url} ... URL
# {url_link} ... URLへのリンク
$conf{'html_message'} = <<"EOM";
<p style="margin:0">
<span style="font-weight:bold">{name}</span> - {YEAR}/{mon}/{mday} {hour}:{min} - No.{number}
</p>
<p style="margin:0.5em 1em;line-height:120%">
{text}
</p>
{url_link}
<hr style="height:1px;color:#aaa;border-style:dotted">
EOM
# URLへのリンクのデザイン
# {url} ... URL
$conf{'html_url'} = <<"EOM";
<p style="margin:0 1ex;font-style:italic">URL: <a href="{url}">{url}</a></p>
EOM
# logviewの全体のデザイン(charsetは必ずshift_jis)
# {title} ... タイトル
# {body} ... 書き込み一覧
# {return_url} ... 埋め込むページのURL
$conf{'html_logview'} = <<"EOM";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Trasitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<meta http-equiv="content-style-type" content="text/css">
<title>{title}</title>
</head>
<body>
<h1 style="font-size:100%;margin-bottom:1ex;text-align:center">{title}</h1>
{body}
<p style="font-size:82%"><a href="{return_url}">Return</a></p>
</body>
</html>
EOM
# logviewでのナビゲーションのデザイン
$conf{'html_navi'} = <<"EOM";
<p style="margin:0"><a href="{cgi}?mode=logview&start={start}">Next Page</a></p>
EOM
#____設定ここまで
重要な設定項目
- #!/usr/bin/perl
- プロバイダで定められたPerlへのパスを指定します。よくある例としては #!/usr/bin/perl もしくは #!/usr/local/bin/perl です。
- $conf{'password'} = '';
- 管理パスワードです。必ず設定してください。空の場合は管理ログインで警告が出ます。
- $conf{'charset'} = 'sjis';
- 埋め込み先のHTMLの文字コードと同じにしてください。異なる場合は、文字化けしてしまいます。
- $conf{'return_url'} = 'http://localhost/index.shtml';
- 埋め込まれるページのURLを、httpから全て記述してください。
- $conf{'cgi'} = 'http://localhost/cgi-bin/ccbbs/bbs.cgi';
- bbs.cgiのURLを、httpから全て記述してください。
- $conf{'nobreak'} = 0;
- 書き込みがあったとき、改行を無視して1行にします。
ディレクトリ構成例
public_html / | +-- ccbbs / bbs.cgi [755] メインプログラム / conf.cgi [644] 設定ファイル / jcode.pl [644] 文字コード変換ライブラリ / log.cgi [666] ログファイル
使い方
- HTMLに記述するタグの文法
- <!--#include virtual="パス/bbs.cgi?mode=latest" -->
- 記述例
- <!--#include virtual="/cgi-bin/ccbbs/bbs.cgi?mode=latest" -->
- 書き込みの管理
- bbs.cgiを開くか、掲示板下部のadminリンクを開いて下さい。
- 掲示板に直接リンクする場合の記述例
- <a href="http://www.akiyan.com/cgi-bin/ccbbs/bbs.cgi?mode=logview">BBS</a>
特殊な使い方
- 管理人だけが書き込み可能にする
- conf.cgiのデザインで<form>タグから</form>タグまでを削除します。書き込みは管理ページから行えるので、管理人だけが書き込めるようになります。
不具合報告や要望などは
メールフォームからご連絡ください。