本日  昨日
 
03/16(Sun) 02:56

ツリー表示・検索機能つき掲示板の作り方(kapiさん)
【ダウンロード先紹介】(2003/02/23)
本掲示板の作者のサイトは現在閉鎖されてますが、本掲示板のスクリプトの改編版を以下のサイトで再配布しています。
Wanderer's Home Pageさん「掲示板」→「Tree Type BBS 紹介」
上記再配布ページは閉鎖もしくは移転したようです。(2008/12/20)
現在、作者のサイトは閉鎖されてます。この解説ページからスクリプトのダウンロードは出来ませんのでご注意ください(2001/03/15)

ホームページを訪れると、いろいろな掲示板にお目にかかります。
Web裏技さんの簡易BBS(minibbs)、目黒のさかなさんのWWBoard、kapiさんの掲示板(bbs)、Terraさんのnotebookなどです。

ここでは当ホームページで設置してる「kapiさんの掲示板」(サンプルはこちら) の設置法を紹介します。<フリーソフトです。使用にあたっては、スクリプト内の使用条件をお読み下さい。>

この掲示板は、ツリー表示方式で、ディスプレイの美しさ、機能の豊富さ、設置のしやすさなど始めての方でも簡単に本格的な掲示板を楽しめるとおもいます。

「kapiさんの掲示板」の特徴

  1. ツリー表示、投稿順表示、一括表示が可能。
  2. 新規投稿記事の最上段表示。(新規投稿記事が一目でわかる)
  3. 24時間以内の投稿記事の赤色表示。(新規投稿記事が一目でわかる)
  4. 記事検索----タイトル、投稿者名、本文の検索が可能
  5. 記事管理----記事編集、記事削除が可能
  6. クッキーによるユーザカスタマイズ機能。表示記事数のユーザ設定などが可能。
  7. 過去ログの自動生成、削除機能
  8. IPアドレス指定による投稿排除機能
  9. 名前をパスワードでロックする機能
  10. 掲示板の使用容量算出機能

V1.xx から V2.0 へバージョンアップ時の注意点(始めて設置される方はこの項は無視してください。)

  • V2.0では初期設定用プログラム setup.cgi が新しく追加になってます。基本的に,管理者の設定は setup.cgi で行います。V1.xxでの bbs.cgi、admin.cgi の設定は必要なくなりました。


掲示板を作る手順を説明します。
  1. 掲示板プログラムをダウンロードします.
  2. ダウンロードしたプログラムを編集します.
  3. 掲示板プログラムを呼び出すHTMLファイルを編集します.
  4. プログラムとHTMファイルをサーバに転送し、実行権を設定をします.

掲示板プログラムをダウンロードします。

  1. ファイルのダウンロードの前に、あなたのパソコンにディレクトリを作ります。
    • ホームページのある場所(index.htmを置いてある場所)にbbsというサブディレクトリを作成します。(ここにファイルをダウンロードします。)
    • サーバー側にもbbsというディレクトリを作成しておきます。

  2. 必要なプログラムとダウンロード

    下の4つのプログラムをダウンロードします。

    • bbs.pl (掲示板プログラム本体)
    • admin.pl (記事管理用プログラム)
    • setup.pl (初期設定用プログラム)
    • jcode.pl (日本語コード変換プログラム。すでにお持ちの方はダウンロードの必要はありません。それを使いましょう)

    ダウンロードの方法は、プログラムの名前にカーソルをあて右クリックします。

    • Netscapeの場合は「リンクを名前をつけて保存」
    • Internet Explorerの場合は「対象をファイルに保存」

    を選択します。 「名前をつけて保存」のウィンドウが起動します。 「保存する場所」としてbbsを指定します。 「ファイル名」を「bbs.cgi」に変更します(admin.plはadmin.cgiに、setup.plはsetup.cgiに変更、jcode.pl はそのまま)。 「保存」を選択します。これでダウンロードができました。

    下の2つの空のファイルをディレクトリbbsに作成します。空のファイルの作り方はこちらです。

    • article.dat (掲示板データ格納用ファイル)
    • tree.dat (ツリー構造格納用ファイル)

    まとめてダウンロード。(ファイル解凍できる方はこちらが便利です。)

    • bbs.lzh  (左クリックするとダウンロードを始めます)

    解凍すると、bbsフォルダが作られその中に以下のファイルが作られます。

    bbs/---+-bbs.cgi
           +-admin.cgi
           +-setup.cgi
           +-jcode.pl
           +-article.dat
           +-tree.dat
           +-index.html(このファイルは使いません。参考用です。)
    

ダウンロードしたプログラムを編集します。

  1. bbs.cgi、admin.cgi、setup.cgi
    • 1行目 #!/usr/local/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。
      Infowebの場合は #!/usr/bin/perl になります。

  2. setup.cgi
    • 2行目 $passwd = "admin"; の admin を あなたのパスワード必ず変更します。このパスワードは「記事管理」を行う時に使用します。
    • 14行目 $homeurl = "."; を戻らせたいページのURLに変更します。すると[戻る]のアンカーで任意のページに飛ぶようになります。
      たとえば私のページのトップページに飛ばしたい場合 $homeurl = "http://kikuchisan.net/index.htm"; に変更します。
  3. jcode.pl、article.dat、tree.dat
    • jcode.pl、article.dat、tree.datは、なにも変更しません。そのまま使います。

[補足]

  • jcode.plのディレクトリー指定の方法(手持ちの jcode.pl を使う方)
    いくつかのCGIを設置してて、jcode.plを共通に使ってる方は、jcode.plを違うディレクトリーに置いてあると思いますので、bbs.cgiadmin.cgiの require './jcode.pl'; の赤の部分をそのディレクトリー指定に書き換えます。パスの指定のしかたはこちらです。


    掲示板プログラムを呼び出すHTMLファイルを編集します。

    • index.htm から 掲示板プログラム bbs.cgi をリンクするには index.htm の なかに <A HREF="bbs/bbs.cgi?page=0">掲示板</A> と記述します。

    プログラムとHTMファイルをサーバに転送し、実行権を設定をします。

    1. bbs.cgi、admin.cgi、setup.cgi、jcode.pl、article.dat、tree.datの 6つのファイルをサーバ側のディレクトリ bbs に、index.htmをホームディレクトリにアスキーモードで転送します。

    2. ファイルの構成と実行権

      転送が終わったら、それぞれのファイルに下の実行権を設定します。ディレクトリ bbs の実行権の設定を忘れないで下さい。

      index.htm
      bbs(777)/---+-bbs.cgi      (755)
                  +-admin.cgi    (755)
                  +-setup.cgi    (755)
                  +-jcode.pl     (755)
                  +-article.dat  (666)
                  +-tree.dat     (666)
      

    さぁ,これで完成です。index.htmを再読み込みし、掲示板をクリックしてみましょう。掲示板が表示されれば完成です。
    もっとあなた好みにしてみませんか!(おまけ)

    正常動作が確認できたら、もっとあなた好みに改造しましょう。

    簡単に変更できる項目
    setup.cgiの各項目の赤色の部分が変更できます。いろいろトライしてみて下さい。

    1. 記事の最大保存サイズ。単位はKb。
      このサイズを越えた記事は,昔のツリーから破棄か,HTML化されます。(どちらにするかは後述の $makepl で指定します)
      • 5行目 $maxsiz = 100;
    2. ツリー表示のときの1ページに表示される記事数
      • 8行目 $treeunit = 10;
    3. 投稿順表示のときの1ページに表示される記事数
      • 9行目 $linearunit = 30;
    4. 一括表示のときの1ページに表示される記事数
      • 10行目 $dumbunit = 10;
    5. 背景色
      • 16行目 $bgcol = '<BODY TEXT="black" LINK="blue" VLINK="Midnightblue" ALINK="#FF0000">';
    6. 掲示板のタイトル
      • 18行目 $bbstitle = "<center><font size=\"+2\">Tree Type BBS</font></center>";
    7. 赤で表示する時間
      • 20行目 $flushtime = 24;
    8. テーブルトップの色
      • 21行目 $tbtop = "bgcolor=\"lightsteelblue\"";
    9. テーブル内の色
      • 22行目 $tbback = "bgcolor=\"White\"";
    10. 過去ログの自動作成−作成する場合1にする
      • 28行目 $makepl = 0;
    11. 1記事の最大文字数。全角文字で計算。
      • 32行目 $commax = 2000;
    12. バックアップを使用する場合 1
      • 34行目 $usebak = 0;
    13. 新規発言があったツリーを最上段に移動する場合1
      • 35行目 $movetree = 0;

    当ホームページの例(下記の項目を変更してます)

    • $bgcol = '<BODY bgcolor="#FFE4C4">';

    • $bbstitle = "<center><IMG SRC=\"../gif/keiji.gif\" WIDTH=400 HEIGHT=45 ALT=\"keiji\"><I><B>Ver.2.0</B></I></center>";

    • $tbtop = "bgcolor=\"#E0FFFF\"";

    • $tbback = "bgcolor=\"#FFFFE0\"";

    • $makepl = 1;

    • $usebak = 1;

    • $movetree = 1;

    (参考) CGIプログラムの文字列を表す「"」記号と HTMLタグの文字列を表す「"」記号とを区別するために CGIプログラム内では、HTMLタグの「"」記号は「\"」と「\」記号を「"」の前につけて記述します。


    スクリプト改造編

    投稿者名を強調表示するには
      setup.cgiの268行と270行の$nameの前後に<b>と</b>をつけます。 print "<font color=red><b>$name</b><font size=-1>\($atime\)</font></font>"; print "<b>$name</b><font size=-1>\($atime\)</font>";
    ツリー全記事表示マーク◇を画像に変更するには
      setup.cgiの213行、215行、217行の◇の部分を表示したい画像に置き換えます。 push(@nest,"<IMG SRC=\"../gif/smiley.gif\" border=0>-"); push(@nest,"<IMG SRC=\"../gif/smiley.gif\" border=0>-"); push(@nest,"<a href=\"$baseurl/$bbsname?num=$btree[1]&ope=sel&id=$id\"> <IMG SRC=\"../gif/smiley.gif\" border=0></a>-");
    タグを使えるようにするには(セキュリティホールになり易いという危険があります。)
      1.bbs.cgi admin.cgi双方の最後の方,関数decode中に $value =~ s/\&/\&amp;/g;<br> $value =~ s/\"/\&quot;/g;<br> $value =~ s/</\&lt;/g;<br> $value =~ s/>/\&gt;/g; という個所があります。これを # $value =~ s/\&/\&amp;/g;<br> # $value =~ s/\"/\&quot;/g;<br> # $value =~ s/</\&lt;/g;<br> # $value =~ s/>/\&gt;/g; と変更します。

      2.さらに、http://・・・・・を使い他ページへのリンクを貼ったり、画像を参照するようにするには、695行と1009行の文をコメント行にします。

      # $tcomment = &getcomurl($tcomment); # $comment = &getcomurl($comment);
    コメント文を引用しないようにするには
      bbs.cgiの242行と243行 $textcols = (int(($textcols + 1)/2))*2; print "<center><h1>$title へのコメント</h1></center>\n"; の間に $textcols = (int(($textcols + 1)/2))*2; $comment =""; print "<center><h1>$title へのコメント</h1></center>\n"; $comment ="";を挿入します。

    ちょっと高度な使い方
    この掲示板はいくつかのセキュリティ機能をもっています。


    IPアドレスの指定による投稿排除の方法
    1. setup.cgiの31行目 @deniedaddrs = ();

      投稿して欲しくない人がいたらIPアドレスをここに設定すると投稿を拒否します。 悪戯する人がいたらここで規制してください。

      例えば,123.456.789.0と123.456.789.1 というIPアドレスからの投稿を排除したい場合@deniedaddrs = ('123.456.789.0','123.456.789.1');と設定することにより,この二つのアドレスからの投稿はできなくなります。

      この指定は前方一致です。例えば@deniedaddrs = ('123.456.789.0','124.356');と設定することにより,123.456.789.0及び124.356.*.*からの投稿を排除することができます。(*は任意の数字に一致する)

      あと,@deniedaddrs = ('All');とすることにより,すべてのホストからの投稿を排除できます。

    2. 投稿して欲しくない人のIPアドレスを調べるには、article.datをダウンロードし メモ帳などのエディタで開き該当者の投稿記事をみます。「記事番号」「参照記事番号」「投稿日時」「e-mail」「URL」「投稿者名」「記事タイトル」「記事内容」「投稿者のIPアドレス」の順に記録されてます。

    3. 対象IPアドレスの一部の人だけの投稿は受理したい,という場合があります。これは,名前にパスワードを設定することにより可能です。たとえ'All'と設定されていても,パスワード設定者の投稿はかならず受け付けます。


    名前にパスワードを設定する方法
    1. この掲示板には名前をパスワードでロックする機能があります。初期設定では、bbs.cgi最後尾に 管理人<>mastor が設定されています。これは"管理人"と言う名前の人が投稿しようとすると、パスワード入力が要求され、mastorを入力しない限り書き込みができない、ということです。

    2. 名前とパスワードは「管理人<>mastor」の次の行につけたしていけば、いくつでも設定できます。パスワード部分は"<>"を除く半角英数&記号にしてください。なおperl5では@も含むことができません。

    3. admin.cgi V1.11からは「名前とパスワードの追加」機能が追加されてますので、こちらから登録すれば、自動的に追加登録されます。


  •  
     
    ©1997- Kikuchisan's workshop All rights reserved //

    スポンサーリンク

    関連コンテンツ