[トップ] [掲示板] [F.A.Q.] [コラム] [ひとりごと] [利用規約] [履歴] | |
横型複数日予約 |
フレームを使って、フォーム部(上)と、予約状況を確認する予約表部(下)を同時に見られる予約システム。「複数日予約」の姉妹品で、予約状況表を横置きにしたものです。「複数日予約」とデータが互換です。
※日付選択機能と一発キャンセル機能は、ブラウザ設定でJavaScriptオンにしておかないと動きません。また、予約実行の度に状況表が現在日付近の表示に戻ってしまいます。
まず、下のファイルをダウンロードして、解凍します。解凍すると、"yokodays.cgi"と"kabalib.pl"の2つのテキスト・ファイルと、"key.gif"と"cancel.gif"の2つのGIFファイルができます。
※kabalib.plはVer.1.20以降を使ってください。
cgi-lib.plを入手します。
http://cgi-lib.berkeley.edu/
jcode.plを入手します。
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/
"yokodays.cgi"をテキスト・エディタで編集します。
※"yokodays.cgi"はEUCで書いてありますので、EUCが扱えるエディタでないと日本語部分が読めません。
最低限、次の個所を変更する必要があります。
「予約アイテム」と「各アイテムの説明」は、CGI設置後も変更が可能です。アイテムの追加があった場合は、その時点から新しいアイテムの予約を受けつけます。削除があった場合は、そのアイテムの記録はクリアします。アイテムの名称を変更すると、変更前後のアイテムは別物として認識します。
ftpソフトなどでサーバーのCGI用ディレクトリにアップロードしましょう。仮にcgi-bin/にアップロードしたら、次のようにディレクトリとパーミッションを設定します。
※kabalib.plはyokodays/の下でもOKです。
※jcode.plとcgi-lib.plはCGIスクリプトではしょっちゅう参照される定番なので、lib/ディレクトリとして独立させておくと使いまわせて便利です。
cgi-bin/ ├-- lib/ | ├-- jcode.pl | ├-- cgi-lib.pl | └-- kabalib.pl └-- yokodays (755)/ ├-- data (777)/ ├-- yokodays.cgi (755) └-- *.gif
設定が終わったら、ブラウザからCGIを設置したURLを開いてみましょう。上の例のようなディレクトリ構成なら、次のようなURLになります。
http://xxx.yyy.zzz/cgi-bin/yokodays/yokodays.cgi
"yokodays.cgi"の「設定、適当に変更してください」〜「設定はここまで」の間を適当に変更すると、見た目をカスタマイズできます。
フォーム部・予約表部とも、色は好きなように変更できます。
#色指定 $clrCmt = '#CCFFCC'; #アイテム背景色(薄い緑) $clrText = '#003399'; #文字色(群青) $clrSumi = '#FFFFCC'; #予約済み(オレンジ) $clrSumiLog = '#DCDCDC'; #過去の予約(gainsboro) $clrPause = '#E6E6FA'; #予約受付停止中(ラベンダー) $clrHeader = '#CCFFFF'; #ヘッダーの色(薄い水色) $clrSunday = '#FFCCFF'; #日曜日の色(赤紫) $clrSaturday = '#66FFFF'; #土曜日の色(青) $clrFormBG = '#FFFFFF'; #フォーム部の背景(白) $clrTable = '#FFFFFF'; #予約状況表の背景(白) $clrTableBG = '#99CCFF'; #予約状況フレームの背景色(水色) $clrTableBGLog= '#B0E0E6'; #過去の予約状況フレームの背景色(パウダーブルー)
予約受付期間(今日から何日後まで)と、情報の保管期限(何日前から昨日まで)を指定できます。両方ともむやみに大きくする事は推奨しません。サーバーの能力や混雑具合にもよりますが、Perlの処理速度はあまり速くありませんので、ファイル・サイズが大きくなり過ぎるとブラウザ側がタイムアップしてしまうかも知れません。100や200なら問題ないと思いますが、例えば保管期限を9999なんて書くと何年か後に恐ろしいことになるでしょう。
$maxdays = 50 ; #何日先まで予約できるか? $remdays = 50 ; #過去の記録を残す日数。不要なら0。多すぎると応答が遅くなります。
デフォルトでは、予約状況表に一度にひょ時する日数は7日になっています。ちょうど1週間でキリが良いですから。でも好みに応じて変更できます。
$page = 7 ; #1ページに表示する日数。7〜8日位が適当。
修理中など、アイテムを削除するほどではないけれど一時的に予約受付を停止したい場合に、予約状況表上の表示を「予約停止中」にし、フォームの選択候補の中から外すことができます。予約停止中も停止前に書き込まれた情報は保持しますので、予約停止解除後はまた復活します。予約停止にするには@Cmtの該当する文字列の先頭に'!'(半角エクスクラメーションマーク)を付けます。
データ・ファイルを保存するディレクトリは、初期値では"data"になっていますが、このディレクトリはパーミッション777のセキュリティー的に弱い部分なので、他の人に推測されにくい名前にすることをお勧めします。何かとんでもない名前を考えて一人で楽しんではどうでしょうか?
データ・ファイル用ディレクトリ名を変更するには、"yokodays.cgi"の$dirの部分と、実際のディレクトリ名を変更してください。下は、"data"を"monooki"に変更した例です。
[yokodays.cgiファイル]
[ディレクトリ構成]
cgi-bin/ ├-- lib/ | ├-- jcode.pl | ├-- cgi-lib.pl | └-- kabalib.pl └-- yokodays (755)/ ├-- monooki (777)/ ├-- yokodays.cgi (755) └-- *.gif
ある日、職場の同僚が「ノートPCしばらく部長が使うから予約から外したいんですけどー」と言ってきました。そのうち元に戻すらしいので、既に入っている予約はそのままで一時的に「予約停止中」表示にしました。でも考えてみれば、上司が占拠する以外にも、PCやプロジェクタなどは修理に出す事もあるわけで、この「横型複数日予約」にはそのための機能をつけてみました。使われるかどうかとても興味ありますが、「横型複数日予約」をダウンロードした人がその後この機能をつかったか否かトレースする方法がないのがちょっとさみしいです。
2003/1/28 | Ver.1.01p | kabalib.plの重大なバグを修正。(Ver.1.20) |
2002/11/28 | Ver.1.01 | Netscape6で一発キャンセルが効かないバグと、予約停止機能のバグをを修正。 |
2002/10/12 | Ver.1.00 | 「複数日予約」Ver.1.21を基に作りました。 |