Multi Schedule Board 設置方法

最新バージョンはv1.1.7.3です。

注意:このプログラムは重要な情報を扱うことを想定していませんので、個人情報など重要な情報の入力には使用しないで下さい。

目次

印がv1.1.7で更新した部分。
※※印がv1.1.7.1で更新した部分。
※※※印がv1.1.7.2で更新した部分。
※※※※印がv1.1.7.3で更新した部分。

  1. Schedule Boardを使用していただいている方へ
  2. 機能概要
  3. 設置例
  4. その他
  5. 使用マニュアル
  6. 更新内容

1. Schedule Boardを使用していただいている方へ

本CGIはイベント日程調整用CGI「Schedule Board」をベースにイベントを複数登録できるようにしたものです。
Multi Schedule Boardへ移行したい方はその他:Schedule Boardからのデータ移行についてを参照してください。
「Schedule Board」とではデータ削除の処理が違う部分がありますので、以下の表を参考にしてください。
詳しい機能については使用マニュアルを参照ください。

処理名 CGI名 処理概要 削除されるファイル
イベント削除 Schedule Board - -
Multi Schedule Board イベントデータファイルのイベントデータ自体を削除します スケジュールデータファイルsch-evt*.txt
BBSデータファイルbbs-evt*.txt
イベントデータを削除 Schedule Board イベントデータファイルを空にします -
Multi Schedule Board イベントデータ枠(番号)は確保しておき、イベントのデータをクリアします -

2. Multi Schedule Board機能概要

本CGIはイベントの日程調整用に作成しており、「飲み会やツーリングを開催し、できるだけ多くの人に参加してもらいたいので日程の調整をしたい。」
「誰が参加できそうなのか、他の参加予定者からも見えるようにしたい」を基本として制作。

3. 設置例

本スクリプトは複数の人が同時にファイルに書き込まないようにする制御にflock関数を使用しています。
まず本スクリプトを利用する前に、使用しているプロバイダ(サーバ)がflock関数に対応しているかどうかの確認をしてから利用して下さい。

flock関数の対応チェック方法

サーバの管理者に問い合わせていただくか、KENT WEBにて配付されているSymlink Checkerなどのツールを設置したいサーバに設置し、実行させると対応状況が表示されます。

私が使用しているXREA、ロリポップ、インフォシークiswebライト、Hi-Ho(接続会員用webスペース)をSymlink Checkerでチェックしたところ、flock関数に対応しており、実際、設置してみましたが特に問題は見られませんでした。

ファイルの構成

zipファイルを解凍すると以下のファイルが展開されます。
その中に「.」で始まる名前のファイルがありましたら不要ですので削除しても構いません。

  1. mulsche.cgi
  2. jcode.pl ...歌代和正氏のライブラリを再配布するものです
  3. style.css
  4. title.gif
  5. sample-key.gif (v1.1.0以降のみ)
  6. data/evtdata.txt
  7. mulsche_manual(フォルダ)

※ Multi Schedule Boardでは、Schedule Boardに添付しているスケジュールデータファイル「schdata.txt」、BBSデータファイル「bbsdata.txt」は新規イベント登録時に自動で作成されます。

ファイルの構成例

  public_html (ホームディレクトリ)
      |
      +-- schedule /   mulsche.cgi   [705]
            |          jcode.pl      [604] 
            |          style.css
            |          title.gif
            |          sample-key.gif 
            +-- data / evtdata.txt   [606]

※Hi-Hoや@niftyの@homepageではサーバーの制限上、上記ファイル構成のままサーバーにアップロードしても、style.cssやtitle.gifを読込みません。
style.cssやtitle.gifを読込ませるためには、これらのファイルをhomepageフォルダ内に設置し、mulsche.cgiの設定でstyle.cssやtitle.gifの設置場所を「http://」から始まるURLにて指定して下さい。
Hi-Hoや@niftyの@homepage以外でもstyle.cssやtitle.gifを読込めない場合は、同じような制限があるかもしれませんので、詳細は契約されているサーバーのCGIについての利用方法を読んでみて下さい。

ファイル修正に際しての注意

本CGIは「Shift-JIS」というほとんどの掲示板用CGIでも使われている文字コードで記述していますが、Shift-JISで書かれたperlスクリプト(CGI)をUNIXサーバーで実行させた時などに、一部の文字で発生します。

例えば「表示」のShift-JIS漢字コードは「95 5C 8E A6」ですが、この「表(95 5C)」の5Cというコードが 、メタ文字(特殊文字)「\(バックスラッシュ)」と重複しているために、二つの文字「95 5C(表)」「8E A6(示)」が「95 8E 」と「A6」と解釈され、侮ヲ(半角)という文字化けが発生します。

この問題を解決するには以下の回避策を参考にして下さい。
もっと詳しく知りたい方は「cgi 文字化け」などで検索してみてください。

回避策

文字化けを起こす文字の後に「\」を付加する。

「文字化けする文字一覧」にある文字の後に「\」を付ける。

例:"表\示する"
シングルクォート「'」で文字列を囲む。
$str = '表示する'
ただしシングルクォート「'」の前に「文字化けする文字一覧」にある文字があると「'」も別の文字として認識されエラーが出てしまうので、この場合に限り「文字化けする文字一覧」にある文字の後に「\(バックスラッシュ)」を付加する必要がある。
このCGIの例でいえば、

$cgi_title = 'Multi Schedule Board';

$cgi_title = 'スケジュール調整表';

としてしまうと「表」が文字化けする文字で、後の「'」も別の文字と認識されエラーとなるので

$cgi_title = 'スケジュール調整表\';

と記述する。

文字化けする文字一覧

文字(コード)
—(815C)ソ(835C)Ы(845C)Ⅸ(875C)噂(895C)
浬(8A5C)欺(8B5C)圭(8C5C)構(8D5C)蚕(8E5C)
十(8F5C)申(905C)曾(915C)箪(925C)貼(935C)
能(945C)表(955C)暴(965C)予(975C)禄(985C)
兔(995C)喀(9A5C)媾(9B5C)彌(9C5C)拿(9D5C)
杤(9E5C)歃(9F5C)濬(E05C)畚(E15C)秉(E25C)
綵(E35C)臀(E45C)藹(E55C)觸(E65C)軆(E75C)
鐔(E85C)饅(E95C)鷭(EA5C)偆(ED5C)砡(EE5C)

ファイルの修正

mulsche.cgiをエディタ開き、赤字の個所を修正します。

以下で日付、項目欄追加の入力項目数を設定します。以下の注意を守って設定してください。 New ... v1.1.5
※あまり数を多く設定するとサーバーやブラウザに負荷がかかってしまうので必要最低限で設定してください。
※入力項目自体が多いと、とくにブラウザ側で処理スピードの低下が見られます。(ブラウザによる)
$add_cell_num = 15、$select_num = 40とした場合、Mac版Firefox2で確実に処理スピードの低下が見られたが、それ以外のブラウザではあまり変わらない。(サーバー側の処理もそれほど気にならない)

以下v1.1.0以降のみ

項目欄追加機能設定の動作 ...重要

項目欄追加機能設定「$add_cell」をCGI使用中に使用→不使用に切り替えた場合、初期の状態はevtdata.txt、bbs-evt*.txtともに追加した項目のデータは保存されたままですが、イベント設定やイベント日決定画面、スケジュール修正画面で「設定ボタン」を押すと追加した項目のデータは削除されます。
逆に不使用→使用に切り替えた場合、同様に各画面の「設定ボタン」を押すまでデータは書き込まれません。

日付、追加項目数の変更について

イベントデータやスケジュールデータがある時に「日付・追加項目数」を変更した場合、以下のような動作をします。

既知の問題に対する処置

Multi Schedule Board v1.1.0以降にて一部のサーバー+Internet Explorer6で使用した場合、以下の問題が報告されています。

問題:
BBSに投稿後、投稿したイベント画面にならず、「アクセスされたイベントは削除されました」と表示される。
対策:
「BBSデータの個別削除用サブルーチン」内2280行付近および、「BBSデータ出力用サブルーチン」内2315行付近の以下の赤字部分を削除してください。
print "Location: $cgi_url?mode=show_evt&evtno=$evt_no\#bbs-head\n\n";

ファイルの設置

以上の設定が終了したら、各ファイルを所定のディレクトリにアップし、以下のとおりにパーミッションを設定して下さい。
サーバーによっては推奨値が違う場合がありますので、その場合はサーバー側の推奨値を優先してください。
特に接続プロバイダーがユーザーに提供しているホームページサービスには制限が多いです。

ファイル パーミッション
mulsche.cgi 755 or 705 or 700
jcode.pl 644 or 604 or 600
style.css
title.gif
sample-key.gif
dataディレクトリ 777 or 707 or 705
evtdata.txt 666 or 606 or 600

CGIへのリンク

設置と設定が終わったらCGIへのリンクを貼って終了です。

リンク例

<a href="http:// ・・・ cgi-bin/mulsche/mulsche.cgi">Multi Schedule Board</a>

4. その他

Schedule Boardからのデータ移行について

イベントデータファイル(evtdata.txt)

ファイル名はそのままで、以下の赤字部分を修正または追加して下さい。

一行目
累計イベント番号改行

累計イベント番号は今まで取得したイベント番号の最大値。イベント番号evt10なら10。改行コードはLF。

二行目以降
イベント番号(例:evt1)<>イベントタイトル<>決定イベント日値(日付の番号に対応)(※1)<>イベント終了設定値<>イベント日決定後のスケジュール登録・修正の許可、不許可値<>イベント情報<>場所名<>場所URL<>記号1,記号2,記号3,記号4,記号5<>意味1,意味2,意味3,意味4,意味5<>(最大人数チェック)記号1用,記号2用,記号3用,記号4用,記号5用::日付値(※2)::追加項目セレクトメニュー(※3)::追加項目1行入力タイプ(※4)改行

改行コードはLF

※1:決定イベント日値
イベント日を決定していない時は空欄、決定している時は設定した日にち分をカンマ「,」で区切り、それに対応する日付の位置と番号が入る。
例:$date_number = 14 に設定した場合
1,,,,5,,,,,,,,,14

※2:日付値
設定した日付は「<>」で区切られる。
例:$date_number = 7 に設定した場合
1/1(日)<>1/2(月)<>1/3(火)<>1/4(水)<>1/5(木)<>1/6(金)<>1/7(土)

※3:追加項目セレクトメニュー
メニュータイトルと選択項目はカンマ「,」で区切られ、セレクトメニュー毎に「<>」で区切られる。
例:$add_cell_num = 2、$select_num = 4 に設定した場合
タイトル1,選択項目1,選択項目2,選択項目3,選択項目4<>タイトル2,選択項目1,選択項目2,選択項目3,選択項目4

※4:追加項目1行入力タイプ
設定したデータは「<>」で区切られる。
例:$add_ipt_num = 2 に設定した場合
1行入力タイプ1<>1行入力タイプ2

以下イベントを登録する度に二行目以降のデータを繰り返していく

スケジュールデータファイル(schdata.txt)

ファイル名をCGIの設定項目で設定したファイル名に変更してください。(例:sch-evt1.txt)
※ファイル名の後につくイベント番号とイベントデータファイル(evtdata.txt)の中で使用しているイベント番号を一致させてください。

v1.5.5およぼv1.6.5以前のSchedule Boardとはevtdata.txtのデータ内容が大きく異なりますので、新しいイベントからの設置をお勧めします。

修正前:名前<>パスワード<>・・・・・::追加項目セレクトメニュー<>追加項目1行入力タイプ

修正後:名前<>パスワード<>・・・・・::追加項目セレクトメニュー::追加項目1行入力タイプ

各ファイルについて

バージョンアップに際して

v1.1.7.2 → v1.1.7.3 ...UP(v1.1.7.3)

mulsche.cgiを入れ替えて下さい。
mulsche.cgiを運用中でもデータはそのまま使用できます。

ユーザー設定部を再設定するのが面倒な方は、mulsche.cgiの以下を修正してください。

1594行目、「イベント削除画面表示サブルーチン(sub delevt)」内に赤字部分を追加
	print "</div>\n";
	print << "EOM";
<script type="text/javascript">
//<![CDATA[
var doc = document;
var resPass = doc.getElementById("rpas");
function setValue(){
	resPass.value = "";
}
//]]>
</script>
EOM
&footer;

v1.1.7.1 → v1.1.7.2 ...UP(v1.1.7.2)

mulsche.cgiを入れ替えて下さい。
mulsche.cgiを運用中でもデータはそのまま使用できます。

ユーザー設定部を再設定するのが面倒な方は、mulsche.cgiの以下、2個所を修正してください。

2726行目、「BBSデータ個別削除画面表示サブルーチン(sub delbbs)」内に赤字部分を追加
	print "</div>\n";
	print << "EOM";
<script type="text/javascript">
//<![CDATA[
var doc = document;
var resPass = doc.getElementById("rpas");
function setValue(){
	resPass.value = "";
}
//]]>
</script>
EOM
&footer;
2744行目、「BBSデータの個別削除用サブルーチン(sub del_bbs_edit)」内の赤字部分を削除
my(@FILE_DATA,$evt_no,$bbs_file,$data,$sch,$name,$pass,$comment,$date,$nc);

v1.1.7 → v1.1.7.1 ...UP(v1.1.7.1)

mulsche.cgiを入れ替えて下さい。
mulsche.cgiを運用中でもデータはそのまま使用できます。

ユーザー設定部を再設定するのが面倒な方は、mulsche.cgiの以下の部分を修正してください。

2008行目、「登録、修正時の日時取得用サブルーチン(sub getTime)」内の赤字部分を削除
($sec,$min,$hour,$day,$month,$year,$youbi) = localtime(time + 1*24*60*60);

v1.1.6 → v1.1.7 ...UP(v1.1.7)

mulsche.cgiを入れ替えて下さい。
mulsche.cgiを運用中でもデータはそのまま使用できます。

v1.1.5→v1.1.6

mulsche.cgi、style.cssを入れ替えて下さい。
その他のファイルはそのまま使用可能です。

v1.0.4 or v1.1.4→v1.1.5

mulsche.cgi、style.cssを入れ替えて下さい。
mulsche.cgiを運用中にバージョンアップする場合は、データファイルの以下の部分を修正してください。

evtdata.txt

修正前:イベント番号<>イベントタイトル<>・・・・・::追加項目セレクトメニュー<>追加項目1行入力タイプ

修正後:イベント番号<>イベントタイトル<>・・・・・::追加項目セレクトメニュー::追加項目1行入力タイプ

sch-evt*.txt

修正前:名前<>パスワード<>・・・・・::追加項目セレクトメニュー<>追加項目1行入力タイプ

修正後:名前<>パスワード<>・・・・・::追加項目セレクトメニュー::追加項目1行入力タイプ

bbs-evt*.txt

そのまま使用してOKです。

v1.0.3 or v1.1.1→v1.0.4 or v1.1.4

mulsche.cgiとstyle.cssを入れ替えて下さい。
evtdata.txtは新機能導入に合わせデータ区切り文字等を変えていますので、新しいイベントを設定するタイミングなどでバージョンアップすることをお勧めします。
どうしても現在のイベントからバージョンアップしたい方は、以下を参照にデータ修正してください。

sch-evt*.txtおよびbbs-evt*.txt

そのまま使用してOKです。

evtdata.txt

以下の新旧データを比較しながらデータの修正を行なって下さい。
イベント日決定日を1,5,14に設定した場合

v1.0.4およびv1.1.4のevtdata.txtのデータ並び順

累計イベント番号
イベント番号<>イベントタイトル<>1,,,,5,,,,,,,,,14 (※1)<>イベント終了設定値<>イベント日決定後のスケジュール登録・修正の許可、不許可値<>イベント情報<>場所名<>場所URL<>記号1,記号2,記号3,記号4,記号5<>意味1,意味2,意味3,意味4,意味5<>(最大人数チェック)記号1用,記号2用,記号3用,記号4用,記号5用::日付1<>日付2<>日付3<>日付4<>日付5<>日付6<>日付7<>日付8<>日付9<>日付10<>日付11<>日付12<>日付13<>日付14::(追加項目セレクトメニュー1)表題00,選択1,選択2,選択3,選択4,選択5,選択6,選択7,選択8<>(追加項目セレクトメニュー2)表題00,選択1,選択2,選択3,選択4,選択5,選択6,選択7,選択8<>追加項目一行入力タイプ1<>追加項目一行入力タイプ2改行(改行コードはLF)

※1:イベント日を決定していない時は空欄。

v1.0.3およびv1.1.1のevtdata.txtのデータ並び順

累計イベント番号
イベント番号<>イベントタイトル<>決定イベント日値(日付の番号に対応) (※1)<>イベント終了設定値<>イベント日決定後のスケジュール登録・修正の許可、不許可値<>イベント情報<>場所名<>場所URL<>記号1<>意味1<>記号2<>意味2<>記号3<>意味3::日付1<>日付2<>日付3<>日付4<>日付5<>日付6<>日付7<>日付8<>日付9<>日付10<>日付11<>日付12<>日付13<>日付14::(追加項目セレクトメニュー1)表題00,選択1,選択2,選択3,選択4,選択5,選択6,選択7,選択8<>(追加項目セレクトメニュー2)表題00,選択1,選択2,選択3,選択4,選択5,選択6,選択7,選択8<>追加項目一行入力タイプ1<>追加項目一行入力タイプ2改行(改行コードはLF)

※1:決定できるイベント日は一つだけなので、日付の番号一つが入る。イベント日を決定していない時は空欄。

mulsche.cgiの制作環境およびデバッグ方法

mulsche.cgiの制作環境

PC PowerMac G4 1.25GHz Dual FW800
メモリー 1.25GB
サーバー Apache 1.3.33 (OSX10.3標準)
Perl Perl 5.8.1-RC3 (OSX10.3標準)

mulsche.cgiのデバッグ方法

5. 更新内容

ページトップへ戻る