[トップ] [掲示板] [F.A.Q.] [コラム] [ひとりごと] [利用規約] [履歴] | |
出欠表示板 |
今日の情報(状態とメモ)と、今日以降の出勤・帰宅予定時間をweb上に掲示するCGI。よくオフィスでメンバー毎のスケジュールや居所を表示するホワイト・ボードを見かけますが、それをCGIにしたと思ってください。ホワイト・ボードよりも便利な点は、スペースの制約がなくて記録できる情報が多いことと、別の部屋からでもネットを介して見られることでしょう。不便な点は、PCを起動しないと見られないことかな。
まず、下のファイルをダウンロードして、解凍します。解凍すると、"officeio.cgi"と"kabalib.pl"の2つのテキスト・ファイルができます。
※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/
"officeio.cgi"をテキスト・エディタで編集します。
※"officeio.cgi"はEUCで書いてありますので、EUCが扱えるエディタでないと日本語部分が読めません。
最低限、次の個所を変更する必要があります。
ftpソフトなどでサーバーのCGI用ディレクトリにアップロードしましょう。仮にcgi-bin/にアップロードしたら、次のようにディレクトリとパーミッションを設定します。
※kabalib.plはofficeio/の下でもOKです。
※jcode.plとcgi-lib.plはCGIスクリプトではしょっちゅう参照される定番なので、lib/ディレクトリとして独立させておくと使いまわせて便利です。
cgi-bin/ ├-- lib/ | ├-- jcode.pl | ├-- cgi-lib.pl | └-- kabalib.pl └-- officeio (755)/ ├-- data (777)/ └-- officeio.cgi (755)
設定が終わったら、ブラウザからCGIを設置したURLを開いてみましょう。上の例のようなディレクトリ構成なら、次のようなURLになります。
http://xxx.yyy.zzz/cgi-bin/officeio/officeio.cgi
「出欠表示板 初期登録」画面が表示されればOKです。
officeio.cgiはデータ管理も全部ブラウザからできるようにしています。設置して最初に起動した時にデータを登録するようになっていますので、次のような手順で部署名・ファイル名・メンバー名などを設定してください。登録ミスがあっても、後で削除や訂正ができますから、大丈夫です。
officeio.cgiを設置後、最初に起動した時(データファイルが1つもなく、クッキーも送信されてこない時)にだけ、次のような「出欠表示板 初期登録」画面が表示されます。
ここで、部署名(全角・半角可)と、ファイル名(半角英数字・"-"ハイフン・"_"アンダーバー)を登録します。メンテナンス・キーはここで登録するわけではなく、不正な登録を防ぐために照会するものです。メンテナンス・キーはアップロード前にスクリプトに書き込んでおきましょう。注意が必要なのはデータ登録用ディレクトリ($dataDirで指定したディレクトリ)のパーミッションが777になっていないと、登録できない事です。(UNIXに詳しい方はご存知でしょうが、httpサーバーとサイトのアカウントの関係によって775や757でもOKです)
「出欠表示板 初期登録」で初期登録が完了すると、次に下のような「出欠表示板 メンテナンス・モード」が表示されます。
ここで、メンバーの名前、チーム(係)を登録します。またメンテナンス・キーを入れるのがご面倒とは思うのですが、CGIは基本的に前の情報を保持しない一期一会の仕組みなので、「この人はさっきちゃんとメンテナンス・キーをいれてくれたんだよー」と覚えているのが大変なんです。(不可能ではない。)
メンバー登録が終わったら、右上の[出欠表示板へ]で通常モードに入れます。
"officeio.cgi"の「設定、適当に変更してください」〜「設定はここまで」の間を適当に変更すると、見た目をカスタマイズできます。
ページのタイトル、記録保持期限、予定の表示日数、1ページに表示する日数、チーム表示の有無、メンテナンス・キーを指定できます。記録保持期限と予定の表示日数をむやみに大きくすると(例:999など)、レスポンスが悪くなるかも知れないので、1ヵ月程度を推奨します。1ページに表示する日数は7〜8日にしておかないと、ブラウザを横スクロールすることになります。メンテナンス・キーは初期値は使わない方が無難です。
$Title = "出欠表示板"; #ページのタイトル $remdays = 35 ; #過去何日分記録するか? $maxdays = 14 ; #今日から以後何日表示するか? $page = 8; #1ページに表示する日数。7〜8日位が適当。 $enTeam = 1 ; #チームを表示するときは1、いらないときは0 $mentKey = '0123'; #メンテナンス・キー、不要なら''にするかコメントアウト。
「今日の情報」の「状態(ステータス)」はセレクトメニューで選べるようになっています。そのメニューに表示する候補は変更できます。ただ、あまり多いとセレクトメニューに縦スクロールバーが出て使いにくくなりますので注意しましょう。縦スクロールバーがどうしても出てしまう(くらい候補を増やしたい)なら、せめて使用頻度が高い候補を前に書くと良いと思います。
#ステータス種類 @statList = ( '○出勤', '×帰宅', '△外出', '□会議' );
officeio.cgiで意識して指定している色は下のとおりです。各々の色は好きなように変更できます。基本的な事ですが、文字色とそれ以外の色はコントラストがハッキリするようにしましょう。下で指定していない、リンク文字色や、訪問済みリンク文字色はブラウザのデフォルト・カラーになり、大抵は濃いめの色になるはずです。ですから、文字色は濃い色、それ以外は淡い色にしておくのが無難です。
#色指定 $clrText = '#003399'; #文字色(群青) $clrNormalday = '#FFFFCC'; #平日の色(淡い黄色) $clrSunday = '#FFC0CB'; #日曜日の色(ピンク) $clrSaturday = '#87CEFA'; #土曜日の色(ライトスカイブルー) $clrBG = '#FFFFF0'; #背景(アイボリー) $clrFormBG = '#FFFFFF'; #フォーム部の背景色(白) $clrMsgBG = '#FFFF99'; #エラーメッセージの背景色(レモンイエロー) $clrLTitle = '#F0E68C'; #行タイトルの色(柿) $clrLine1 = '#F0FFF0'; #奇数行の背景(ハニーデュー) $clrLine0 = '#FFFFFF'; #偶数行の背景(白) $clrCTitle = '#F5DEB3'; #列タイトルの色(麦) $clrCLine1 = '#CCFFCC'; #列タイトルの奇数行の背景(淡い緑) $clrCLine0 = '#FFFFE0'; #列タイトル偶数行の背景(ライトイエロー)
データ・ファイルを保存するディレクトリは、初期値では"data"になっていますが、このディレクトリはパーミッション777のセキュリティー的に弱い部分なので、他の人に推測されにくい名前にすることをお勧めします。何かとんでもない名前を考えて一人で楽しんではどうでしょうか?
データ・ファイル用ディレクトリ名を変更するには、"officeio.cgi"の$dataDirの部分と、実際のディレクトリ名を変更してください。下は、"data"を"monooki"に変更した例です。
[officeio.cgiファイル]
$dataDir = 'monooki'; #データ・ファイル用ディレクトリ名
[ディレクトリ構成]
cgi-bin/ ├-- lib/ | ├-- jcode.pl | ├-- cgi-lib.pl | └-- kabalib.pl └-- officeio (755)/ ├-- monooki (777)/ └-- officeio.cgi (755)
このofficeio.cgiには原形がありまして、実際私の職場で稼動中です。そのCGIには当初メンテナンス・モードがなく、名前も選択形式ではなくて、タイプするようになっていました。メンテナンス・モードがないので、新規のメンバー登録は、データベースにない名前が入力されたら自動的に追加するようにしていました。(削除はtelnetでやるつもりでした。)
その方が便利だし、作るのも楽だと思ったのに、実際は入力ミスがある度に不要な名前が登録され、「ごめーん、ちょっと消してー」という依頼が連発、全然楽ではなかったのでした。(CGIメンテナンスは職場内ボランティアのようなものなので、そのために本業がしばしば中断されるのはちょっとつらい)
この件で得た教訓は、「手を抜くな、打てる手は先に打っておけ、でないと後で手間がかかる」でした。
officeio.cgiはイントラネットに設置することを想定していますから、LANでネットに接続しているケースが多いと思います。その場合、Windowsのスタートアップ機能を利用して、PCを起動したら自動的に「○出勤」表示にするワザがあります。(もしかしてダイヤルアップでもできるかも知れないですが、とりあえず除外します)
一度自分の予定やステータスを送信したことがあってクッキーを受け入れる設定のブラウザなら、名前やデータファイルは覚えているので、次のURLをスタートアップに登録すれば、PC起動に続いてブラウザがオープンし出欠表示板のステータスが更新されます。
http://CGIまでのURL/officeio.cgi?stat=%A1%FB%BD%D0%B6%D0&action=update
このワザの大きな欠点は、PC起動時に「○出勤」にできても、PC電源オフ時に「×帰宅」にできないことです。スタートアップと同様に、Windows終了時に自動的に何かを実行させるシャットダウン機能をOSがサポートしてくれれば簡単なんですが、少なくともWindows 95にはそれがありません。もっと新しいWindowsにはシャットダウン機能があるという噂を聞いた事があるような、ないような... 私の身近にはWindows 95以外のWindows PCがないので、確認する手段がないんです。もし「ウチのPCにはシャットダウンがある」という方は、次のURLでPC電源オフ時に「×帰宅」をやってみてください。
http://CGIまでのURL/officeio.cgi?action=update&stat=%A1%DF%B5%A2%C2%F0
2003/1/28 | Ver.1.02p | kabalib.plの重大なバグを修正。(Ver.1.20) |
2002/7/20 | Ver.1.02 | ファイルが1つしかないときのグループ選択のバグとメンテナンスモードの移動時のバグを修正しました。 |
2002/7/8 | Ver.1.01 | 初期登録画面を追加しました。 |
2002/7/3 | Ver.1.00 | つくりました。 |