キーワード  
CGI  2016年08月22日 16:13   編集
CGI/長期予定表
お知らせ
管理者がトレンドマイクロのセキュリティソフトをインストールしている場合、ログイン情報が外部に漏れる恐れがあります。対策を施したver.1.094に更新をお願いします。

特徴

スケジュールを管理できるカレンダータイプの予定表はすでにいろいろありますが、月単位で表示するものがほとんどです。長期間にわたる予定を一度に見たい場合があるので、長い期間のカレンダーを表示できる予定表を作ってみました。
  1. 1年分のカレンダー横一列に並べて表示します。画面サイズやブラウザの設定によっては横スクロールしないと左右がすべて表示されなかったり、隙間が空きすぎたりするかもしれません。
    これを調整するため、フォントサイズやカレンダーのセルの大きさを右下のカレンダーサイズ調整用ボタンで微調整することができます。
    設定はクッキーに保存されるので、一度調整したら次にアクセスしたときには再度調整する必要はありません。
  2. カレンダー上では予定がある場合、日付を色変え表示し、予定の内容は画面下部に「これからの予定○○件」として表示します。カレンダーの日付上にカーソルを合わせると、その日の予定をポップアップ表示します。
  3. 初期設定では今月から1年前、今月から1年後まで表示しますので、1年前のメモを参照しながら予定を立てるといった使い方ができます。
  4. 予定は、カテゴリーごとに色を変えて表示することができます。カテゴリーは追加、変更、色を変えることができます。
  5. キーワードで予定を検索することができます。複数キーワード、AND OR検索対応です。
  6. 1年分のカレンダーを横一列に並べて表示するのが基本スタイルですが、カレンダーの月をクリックすると、その月を中心とした3か月表示に切り替わり、その月の予定を表示します。
  7. 管理者のみ書き込みできるようにも、誰でも書き込みできるようにも設定できます。
  8. カレンダーの日付、あるいは予定一覧の■をクリックすると編集フォームに移動します。画像ファイルなど、ファイルを添付し、表示させることができます。
    予定を削除する場合は、全文削除して送信ボタンを押してください。添付ファイルは削除されませんので、添付ファイルごと削除する場合は先に添付ファイルを削除してから記事を削除してください。
  9. 総合情報管理ツールAgendaとデータを共有することができます(ローカル環境で使用時のみ)。
    Agendaに書き込まれたメモを長期予定表に反映したり、長期予定表に書かれたメモをAgendaに反映することができます。
  10. 今日以降の予定を表示することも、今日までのメモを表示することもできます。今日までのメモを表示する設定だと、日記としても使用できます。
  11. クロススクリプティング対策のため、誰でも書き込みできるモードではタグを無効にしました。
    タグを有効にしたい場合は、$permission(編集権限) と $use_tag(タグを使用) をどちらも1に設定してください。

使用法

ダウンロードしたcalendar.zipを解凍すると、以下のようなファイル、フォルダに展開されます。kent-webのholiday.plを使用させていただきました。
 public_html / 
    |
    +-- calendar / calendar.cgi [705]
         |         init.cgi     [604]
         |         clip.gif     [604]
         |         img.gif     [604]
         |
         +--- lib / cgi-lib.pl [604]
                    jcode.pl    [604]
                    holiday.pl [604]
このうち、calendar.cgiをテキストエディタで開き、1行目の
#!/usr/local/bin/perl
を使用するサーバに合わせて書き換えます。
このスクリプトは文字コードがEUCになっています。Windows付属のメモ帳はEUCに対応していないようです。お手数ですが、EUC対応のテキストエディタをお使いください。
サーバーにすべてのファイルをアップロードしたら、calendar.cgi のパーミッションを、サーバーでCGIとして実行できるものに変更してください。(たとえば上の図のように[705]など)
ブラウザで calendar.cgiにアクセスしてください。

最初のアクセスでは、管理者パスワードが設定されていない状態なので、パスワードを設定するように求められます。管理者パスワードを設定したら、まず掲示板の設定画面に移動しますので、必要に応じて設定を変更してください。

説明は以上です。その他不明な点、バグなどありましたら、CGI掲示板までお願いします。

更新履歴

ver.1.095 2014.02.13
9文字以上のパスワードも使用できるようにしました。
ver.1.094 2013.03.08
カレンダーのサイズ調整がうまくいかないバグを修正しました。設定編集時のリダイレクトを廃止しました。
ver.1.093 2012.05.17
先頭を1月にする設定にした場合、実際に表示される年月と、表示年変更フォームに表示される年月が違っていたバグを修正しました。
ver.1.092 2012.04.25
カレンダーの表示モード(年表示、3か月表示)をクッキーに保存するようにしました。
バージョンアップでファイルを上書きしてもinit_bck.cgiから設定を復元するようにしました。
ver.1.091 2012.04.17
表示年を西暦で指定するように変更しました。先月のカレンダーが左端にくるように配置していましたが、現在が何月かにかかわらず、1月を左端に配置できるようにしました。(管理者設定画面で$january_top を1にする)
ver.1.09 2012.03.07
カテゴリー編集で既存のカテゴリーを削除するとエラーになるバグを修正しました。
ver.1.08 2011.6.16
検索で、日本語の文字コードの途中でマッチするのを回避しました。init.cgiのバックアップファイル名を変更しました。
ver.1.07 2010.03.30
ファイルをオリジナル名のままアップロードできるようにしましたが、日本語の場合はURLエンコード化します。
ver.1.061 2010.03.15
メモに"(ダブルクォート)が含まれていると表示が崩れるバグを修正しました。
ver.1.06 2010.03.10
画像などのファイルのアップロードできるよう変更しました。
ver.1.05 2010.02.26
カレンダーのフォント、セルのサイズの微調整ボタンを追加し、クッキーに保存するようにしました。誰でも書き込みできる場合はタグを無効にしました。
ver1.02 2008.10.10
表示年数をクッキーに保存するよう修正
ver1.01 2007.12.11
過去のメモがうまく表示されないバグを修正
counter:2,280