MyCalendar3.1取説 「Yukiの休息所(MyCalendar)」 MyCalendar3.1a

MyCalendarVer3.1a 取扱説明

 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    MyCalendarVer3.1a ファイル名「calendar3.cgi」
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[ Ver3.1aの概要 ]
Ver3シリーズは、クッキーを使用してユーザー様の特定をしていますので、
クッキーのお使いになれない環境の方はVer7シリーズはお使いになれません。
Ver3.1は、JavaScript呼び出し方式、設置は面倒ですが、WebPage内に埋め込むことが出来ます。
Ver3.1aは、Ver3.1から、サンプルデーターを削除したもので。サンプルデーター削除の手間が省けます。

今バージョンでは設置に役立つツールの用意をしました、このページでも使用しています。
動作は多少鈍くなりますが、URLオプションも使用できるようになり便利です。

[ Ver3シリーズの付加機能の紹介]
+++「初期表示」+++
「初期表示」は、ログイン前でも管理者からのお知らせを表示し、ユーザー様はログインなしでも「Guest」として、
お知らせの閲覧が出来る機能、MyCalendar上の項目をクリックすることで閲覧が可能です。

+++「グループ機能」+++
Ver3シリーズでは、「グループ機能」として、管理者が設定したグループに参加することで、
グループ内のメンバーだけが見ることの出来る項目を共有し、書き込み・コメントが可能であり、
データー管理ツール上にて書き込み項目を切り替えます。

新バージョンへの移行に伴い、Ver3、Ver4シリーズも新バージョンに移行しました。
今回のバージョンアップにより、総てのこのバージョンは、日本語文字コードUTF8形式に対応した物としました。
Ver3.1aは、JavaScript呼び出し方式、WebPage内に埋め込むことが出来ます、またクッキーを使用するバージョンです。

JavaScript呼び出しによる、WebPage埋込方式の為、
設置はダウンロードして解凍した物をフォルダ構成をそのままにアップロードしただけでは動きません。
WebPageの設定は、結構面倒なので専用ツールを用意しました、CGIアプリケーションに不慣れでも設定可能と思います。

最初に、☆設置方法☆の説明
次に改造を含む☆環境設定☆の解説
最後に☆使用方法☆部分

このような順で進めていきますので、必要な部分をお読み下さい。

==========================================================================================

☆設置方法☆
CGIの設置にはいくつかの重要な項目が有りますが、ここでは最低限必要な項目について説明をしておきます。
1.アップロードするWebサーバを見つけること。
2.CGIの編集用に[Terapad]の様に改行コードを指定できるテキストエディタツールの準備。
3.Webにアップロードするために、[FFFTP]の様にパーミッションの指定・変更のできるアップロードツールの準備。
4.CGIの保存先、Webサーバの設定を確認してください。フリーの場合も有ります。
5.Perlのパス設定、Webサーバの設定を確認してください。[#!/usr/bin/per]か[#!/usr/local/bin/perl]でしょう。
最低限、これだけの準備が必要です。次は、CGIファイルの一部修正です。

イメージ Home-------CGIフォルダ--Calendarフォルダ
[http://pc-sup.com/]--[cgi/]--[calender3_1a/]-+-[adress1.cgi]------------アドレス表示
                       +-[calendar1.cgi]----------ミニCalendar
   ファイル数が結構多いが、        +-[calendar3.cgi]----------Calendar本体
                       +-[comment.cgi]------------コメント書き込み
                       +-[config3.cgi]------------共通設定ファイル
   全部そろってますか?          +-[count1.cgi]-------------テキストCounter
   フォルダ構造は、この様にして下さい。  +-[datapop.cgi]------------データ表示
                       +-[gazou_bbs.cgi]----------簡易掲示板
                       +-[group.cgi]--------------グループ管理
                       +-[hyouji3.cgi]------------表示設定ファイル
                       +-[inpdata.cgi]------------データ入力
                       +-[input.cgi]--------------データ管理
                       +-[irosaizu.pj]------------色・サイズ設定ファイル
                       +-[itiran.cgi]-------------データ一覧表示
                       +-[kaipage.cgi]------------月表示変更補助
                       +-[mailform3.cgi]----------メールフォーム
                       +-[nencal.cgi]-------------年間・年度表示
                       +-[picturetool.cgi]--------画像アップロード
                       +-[reset.cgi]--------------User補助ツール
                       +-[set.cgi]----------------HTMLPage作成補助
                       +-[setgroup.cgi]-----------グループ表示補助
                       +-[stylecal3.css]----------スタイルシート
                       +-[user3.cgi]--------------ユーザー登録
   各CGIで使用するファイルです       |グループフォルダ
   グループ参加登録とグループログ     +-[group/]----+-[kanri.log]-------グループ管理者登録
                       |       +-[groupdata.log]---グループ作成記録
                       |       +-[グループ名.dat]--グループ参加登録
                       |       +-[グループ名.log]--グループログ
   ページの背景画像専用フォルダ      +-[image/]------[画像file]--------背景画像置き場
   各CGIで使用するファイルです       |ログフォルダ
   訪問記録から表示月を決めます      +-[log/]------+-[cal.log]---------改ページ補助
   ユーザー登録ファイル          |       +-[login.log]-------ログイン記録
   Counterで使用します           |       +-[tcount.cnt]------訪問者数記録
   Counterで使用します           |       +-[tcount.log]------訪問記録
   各CGIで使用するファイルです       |メイトフォルダ
   初期表示ファイルです          +-[mate/]-----+-[mate.log]--------初期表示管理ファイル
                       |       +-[ユーザー名.log]--初期表示記録ファイル
                       |データフォルダ
                       +-[sample/]-----[samplefile]------サンプル表示用
   休日表(2年分)              +-[schedule/]-+-[kyuujitu.txt]----休日表
   節気データ(2年分)            |       +-[sekki.txt]-------節気データ
                       |画像保存フォルダ
   ユーザー毎にフォルダが自動作成されます +-[upload/]-----[ユーザー名/]-----フォルダ自動作成
                       |ユーザー用フォルダ
   ユーザー毎に自動作成されます      +-[user/]-------[ユーザー名.log]---ファイル自動作成

各CGIファイルのPerlパスの確認と修正。[#!/usr/bin/per]となっているはずですが、これが無い場合に追加はいけません。
各CGIファイルに読み込んで使用するツールには、Perlパスは邪魔になります、ご注意下さい。
拡張子[pl][css]及び拡張子[cgi]の物でも[confug3.cgi][hyouji3.cgi]には、Perlパスは付けないで下さい。
また、フォルダの中の物も、Perlパスの設定はご無用に願います。

ファイル[config3.cgi]の設定
設置段階では、[config3.cgi]----9行目の設定が必須条件です。

 6 #---------------------------------------------------------------------------
 7 #CGIの設置に関する設定
 8 #$dirmei  = 'http://pc-sup.bglb.jp/Lolipop/cal/';   #設置場所URL自宅
 9 $dirmai   = 'http://pc-sup.com/cal/';         #設置場所URL外部
10 $mfilemei  = $dirmei.'Calendar3_1a.html';        #設置HTMLの名前とのパス
11 $cgidir   = $dirmei.'cgi/calendar3_1a/';        #CGIの置き場所の名前とパス
12 $toppage  = $dirmei.'index.html';           #メインページの名前とパス
ここでは、9行目〜12行目のみ、設定しておいて下さい。
メニューを組む都合で、この様にして有りますが、組み方はご自由になさって下さい。

アップロードツールにWebサーバの設定を入力して、アップロードして下さい。
[config3.cgi]の9行目〜12行目で設定したフォルダに、
解凍時のフォルダ構成を変更せずに丸ごとアップロードして下さい。

パーミッション(属性)の確認
パーミッションの設定は、アップロード時にアップロードツールに設定しておく方法と、
アップロードはツールの設定に任せておき、アップロード後に、サーバ側のファイルを選択して再設定する方法があります。
パーミッションは、[700],[705],[755]を試してください。
パーミッションの数値が少なく動く方が安全です、
ツールが[705]ならば、フォルダも[705]に、データファイルは[604]で良いでしょう。
Lolipopサーバーの場合には、アップロードした物を総て選択して[755]に再設定すると動きました。

MyCalendarの起動準備
呼び出し元のHTMLファイルに、MyCalendarのJavaScript呼び出しを設定。
上記の構成である場合、
呼び出したい場所に「<script type="text/javascript" src="cgi/calendar3_1a/calendar3.cgi"></script>」書いておけばOK、
この場所にMyCalendarが表示されます。

呼び出し元のHTMLファイルに、ユーザー登録ツールと各種ツールの呼び出しを設定。
ここでは、[set.cgi]を使う方法を紹介します。
ユーザー登録ツール「<script type="text/javascript" src="cgi/calendar3_1a/set.cgi?mode=user"></script>」
各種ツールの呼出し「<script type="text/javascript" src="cgi/calendar3_1a/set.cgi?mode=toolbutton"></script>」
各種ツールのボタンがが一括で表示されます。

ここまでで、MyCalendar・ユーザー登録ツール・各種ツール用のボタンが表示されてますか?
表示されるまで、パーミッションの再設定とパスの再確認をして下さい。

☆共通設定☆ファイル[config3.cgi]の設定

======================================================================
 7 #CGIの設置場所の設定
 8 #$dirmei = 'http://pc-sup.bglb.jp/Lolipop/cal/';  #設置場所URL自宅
 9 $dirmai  = 'http://pc-sup.com/cal/';        #設置場所URL外部
10 $mfilemei = $dirmei.'calendar3_1a.html';       #メインファイルの名前とパス
11 $cgidir  = $dirmei.'cgi/calendar3_1a/';       #CGIの置き場所の名前とパス
12 $toppage = $dirmei.'index.html';          #設置HTMLの名前とのパス
13 #---------------------------------------------------------------------------
14 #sendmailのアドレス、ご自身のサーバを確認してください。
15 #$sendmail  = 'd:\sendm\sendmane';   #sendmailaddress=自宅
16 $sendmail  = '/usr/lib/sendmail';   #sendmailaddress=Lolipop
17 #$hassin   = '自宅';          #メール発信場所=自宅
18 $hassin   = 'Lolipop';        #メール発信場所=Lolipop
19 #---------------------------------------------------------------------------
20 #個人設定・タイトルなど
21 $title1   = 'MyCalendarVer3.1a';       #タイトル1、各Pageで再設定しています
22 $title2   = '「Yukiの休息所(MyCarender)」';  #タイトル2
23 $title3   = 'MyCalendar3.1a';         #タイトル3
24 $title4   = 'MyCalendarVer3.1a';       #タイトル4
25 $title5   = 'YukisRoom 管理人 [ 葵 Yuki ]';  #タイトル5
26 $todolist  = "予定表";             #予定計画表示名
27 $grouplist = "Group";             #グループ表示名
28 $kyouyulist = "共有";              #共有機能表示名
29 $kanri   = '葵 Yuki';            #管理者名
30 $mycalmei  = "calendar3_1a";          #このCalendarの名前です。
31 #---------------------------------------------------------------------------

8行目〜12行目は設置時に、必ず設定しないと動作しません。
8行目と9行目、14行目と15行目、17行目と18行目は、同時に切り替えます。
9行目〜12行目は設置時に、必ず設定しないと動作しません。
21行目〜30行目は、個人設定ですから、個人情報に変更してください。
======================================================================

CGIの設定部分を集めた物が[config3.cgi]ですが、その中でもぜひ必要な部分がこの範囲、
その中で間違えやすい部分を紹介しておきます。
最も大事なのは、9行目、ここが不明ではアップロード出来ませんね、失礼しました。
アップロード先のURLとCGIディレクトリ、パスの設定です。仮データを入れてありますから、参考にして書き換えてください。
共通設定ファイル[config3.cgi]9行目の設定では、[ $dirmei = 'http://xxxx.xxx/' ] の様に絶対パスの指定が確実です。
同様に、10行目の絶対パスは [ $mfilemei = $dirmei.'Calendar3_1a.html' ] と表記できます。
相対パス'./'は、同列の階層を、相対パス'../../../'は、3つ上の階層を指す物ですが、間違えることも多いんです。

☆SendMail
ご自身のサーバのSendMaiのパス設定を確認して、16行目を修正してください。
この項目も、簡単設置には無縁、小生の知る範囲内では、SendMailのパスは、どこのサーバでも同じでしたが、
SendMailの使えないサーバがありました。その場合メール送信機能が使用できません。
何処か別のサーバをご利用になる以外設定ではなんとも成りません。

ツールボタンの設置
サンプルページの左側に並ぶ、コマンドボタンからミニカレンダーまでの設置です。
[set.cgi]ツール設置補助を作りました。
コメント行とセットにしてありますので、コピーして好きな場所に設置してください。

<!-- ページ移動ボタン -->
<script type="text/javascript" src="cgi/calendar3_1a/set.cgi?mode=inputbutton"></script>
<!-- テキストカウンター -->
<script type="text/javascript" src="cgi/calendar3_1a/set.cgi?mode=counter"></script>
<!-- ユーザー管理 -->
<script type="text/javascript" src="cgi/calendar3_1a/set.cgi?mode=user"></script>
<!-- ツールボタン -->
<script type="text/javascript" src="cgi/calendar3_1a/set.cgi?mode=toolbutton"></script>
<!-- アドレス表示 -->
<script type="text/javascript" src="cgi/calendar3_1a/set.cgi?mode=adress1"></script>
<!-- mailform -->
<script type="text/javascript" src="cgi/calendar3_1a/set.cgi?mode=mailform"></script>
<!-- ミニカレンダー -->
<script type="text/javascript" src="cgi/calendar3_1a/set.cgi?mode=calendar1"></script>

ここから、MyCalendarの起動です。
MyCalendar呼び出し元に設定した、リンクからMyCalendarにアクセスします。
もし、アクセスできない場合には、又は、リンク未設定の場合には以下の方法をお試し下さい。
アップロード先が「http://xxxx.xxx/cgi/calendar3_1a/」の場合には、
「http://xxxx.xxx/cgi/calendar3_1a/calendar3.cgi」をブラウザのアドレス欄に入力して「calendar3.cgi」を直接呼び出します。
呼び出しに失敗する場合には、URLのチェック、パーミッションの確認です。
パーミッションは、[700],[705],[755]を試してください。
パーミッションの数値が少なく動く方が安全です。「calendar3.cgi」はMyCalendarのメインになる物で、URL呼び出しに対応しています。
もし起動できましたら、他のCGIツールも同じパーミッションに設定してください。
ツールが[755]ならば、フォルダも[755]に、データファイルは[644]で良いでしょう。
Lolipopサーバーの場合には、アップロードした物を総て選択して[755]に再設定すると動きました。

管理者登録
起動出来ましたら、管理者登録予定のアカウントを一般ユーザーとして登録して下さい。

環境設定[kankyou.pl]の編集
29 #-----------------------------------------------------------------------------------
30 $qname   =  'yuki';   #文字列   #管理者のお名前を設定、(全角使用可)このユーザーが「管理者」です。
31 $qpass   =  '1111';   #文字列   #管理者のパスワードを設定、(半角英数)このユーザーが「管理者」です。
32 $qsub_name =  'yuki';   #文字列   #現在未使用です。画像保存フォルダ名に使用する。
33 $gname   =  'Guest';  #文字列   #DumyUserの設定、(全角使用可)このユーザーは、初期表示用です。
34 $gpass   =  '1234';   #文字列   #DumyUserの設定、(半角英数)このユーザーは、初期表示用です。
35 $gsub_name =  'Guest';  #文字列   #現在未使用です。画像保存フォルダ名に使用する。
36 $tname1   =  '日記';   #文字列   #初期表示ユーザー1の名称
37 $tpass1   =  '1234';   #文字列   #初期表示ユーザー1のパスワード
38 $t2pass1  =  '2345';   #文字列   #初期表示ユーザー1の第2Password
39 $tsub_name1 =  'nikki';  #文字列   #現在未使用です。画像保存フォルダ名に使用する。
40 $tname2   =  '予定';   #文字列   #初期表示ユーザー2の名称
41 $tpass2   =  '1234';   #文字列   #初期表示ユーザー2のパスワード
42 $t2pass2  =  '2345';   #文字列   #初期表示ユーザー2の第2Password
43 $tsub_name2 =  'yotei';  #文字列   #現在未使用です。画像保存フォルダ名に使用する。
44 $tname3   =  '計画';   #文字列   #初期表示ユーザー3の名称
45 $tpass3   =  '1234';   #文字列   #初期表示ユーザー3のパスワード
46 $t2pass3  =  '2345';   #文字列   #初期表示ユーザー3の第2Password
47 $tsub_name1 =  'keikaku'; #文字列   #現在未使用です。画像保存フォルダ名に使用する。
48 $dname1   =  'yukio';  #文字列   #仮表示ユーザー1の名称
49 $dpass1   =  '2222';   #文字列   #仮表示ユーザー1のパスワード
50 $d2pass1  =  '2345';   #文字列   #仮表示ユーザー1の第2Password
51 $tsub_name1 =  'yukio';  #文字列   #現在未使用です。画像保存フォルダ名に使用する。
52 $dname2   =  'yukie';  #文字列   #仮表示ユーザー2の名称
53 $dpass2   =  '3333';   #文字列   #仮表示ユーザー2のパスワード
54 $d2pass2  =  '2345';   #文字列   #仮表示ユーザー2の第2Password
55 $tsub_name1 =  'yukie';  #文字列   #現在未使用です。画像保存フォルダ名に使用する。
56 $mailad   =  'e_mail@n-takayuki.jp'; #特殊ユーザー用のメールアドレスを入力してください。
57 #-----------------------------------------------------------------------------------

30行の名前:[$qname]、31行のパスワード:[$qpass]、32行のサブネーム:[$qsub_name]現在未使用
56行のメールアドレス:[$mailad]が、管理者登録部分です。管理者登録予定のアカウントに書換て下さい。
特殊ユーザーは、不用意な書換防止機能付きです。初期表示ユーザー名もここで設定しています。

グループ管理ファイル[kanri.log]の編集
ここでは、特殊ユーザーの設定をしています。
+++++++++++++++++++++++++++++++++++++++++++++++++++++
1 yuki/1111/kanri/
2 yukie/3333/kanri/
3 dumy/0000/user/----参考---ユーザー設定---/
4 dumy/0000/kanri/----参考---管理者設定---/
+++++++++++++++++++++++++++++++++++++++++++++++++++++

1行目の、[yuki/1111/kanri]の部分を管理者アカウントに変更してください。
2行目以降は、必要がなければ削除して結構です。
[kanri.log]は、[group]フォルダ内にあります。
[group]内の他のファイルは、不要であれば削除して結構です。

☆初期設定時の注意点☆
アップロードツールとテキストエディタの使用法ですが、Web側のファイルはテキストエディタでの編集は出来ません。
必ず、ローカル側のファイルを修正してからアップロードで編集してください。
このとき、改行コードをラインフィード[\r]に設定できるテキストエディタをご使用願います。

パーミッション(属性)の設定は、使用権限の設定なので、Web側で行います。
アップロードツールのアップロード時のパーミッション設定がなされていない場合、
Web側の各ファイル&フォルダのパーミッションの確認が必要です。
フォルダと実行ファイルは[700],[705],[755]を試してください。
フォルダ内のデータファイルは、[600],[604],[644]を試してください。
サーバーサイドの指定が必ずしも絶対ではありませんので、下位の物から順に試して見ましょう。

☆日本語文字コードについて
ユーザー名及びグループ名に日本語が無ければ問題ありませんが、日本語を使用したい場合、注意が必要です。
今回のVer3においては、全文置換えで'sjis'⇔'utf8'が可能になるように変数名などに注意して有ります。
文字コードが違うとファイルが開きませんので、パーミッションの違いとも勘違いし易いですし、
ご自分のサーバがどの文字コードなのか実験するしか確認できないようです。
尚、ダウンロードファイルでは、Lolipop用の'utf8'に設定しておきます。

これでMyCalendarの使用準備完了です。
MyCalendarが起動できましたら、この下に進んで環境設定の続きをしましょう。同時にカスタマイズも可能です。

==========================================================================================

☆環境設定☆
「環境設定」は、[irosaizu.pl]、[kankyou.pl]、[stylecal3.css]、3つの設定ファイルと、
[config3.cgi]、[hyouji3.cgi]、2つのサブルログラムファイルを修正して行います。
[config3.cgi]と[hyouji3.cgi]は、多少の間違いでも総てのプログラムが動かなくなりますので、BackUpをお願いします。

☆CGIファイルの表示設定☆
MainCalendar以外の分、各ツールのページでは、FullCGIですから、
JavaScript呼出方式の場合でも、[hyouji3.cgi]の重要度は変わりません。

[hyouji3.cgi]----表示設定ファイルの最初の部分です
 3 #----------------------------------------------------------
 4 #画面作成
 5 #仮データを入れてありますので、参考にしてください。
 6 #各部分ごとに、使用しない場合は「#return;」の所を「return;」に変更してください。
 7
 8 #区切り線の定義
 9 $yokosen1 = "<span class='yokosen1'>--------------------------------------</span><br />";
10 $yokosen2 = "<span class='yokosen2'>--------------------------------------------</span><br />";
11 $yokosen3 = "<span class='yokosen3'>-------------------------------------------------</span><br />";
12 #----------------------------------------------------------
13 #ページの上部
14 #----------------------------------------------------------
15 sub wakuhyouji{#外枠部分の色&画像設定
16 if (($wakuimg ne "") and ($wakuimg ne "/")){ #画像の設定があれば
17    $h_html = "<div class=\"waku\" style=\"background-image:url(./image/$wakuimg);background-repeat:repeat\">";}
18 else {$h_html = "<div class=\"waku\" style=\"background-color:$wakuiro\">";}
19 print $h_html;
20 $h_html = "";
21 return;}
22 #----------------------------------------------------------
23 sub headgamen{#ヘッド部分の色&画像設定
24 #画面再上部のタイトル部分です、作成後に「return;」の所を「#return;」に変更してください。
25 #return;
26
27 if (($headimg ne "") and ($headimg ne "/")){ #画像の設定があれば
28    $h_html = "<div class='head' style='background-image:url(./image/$headimg);background-repeat:repeat'>";}
29 else {$h_html = "<div class='head' style='background-color:$headiro'>"";}
30
31 $h_html .= "<span class='head1'>$title1</span>";
32 $h_html .= "<span class='head2'>$title2</span>";
33 $h_html .= "<span class='head3'>$title3</span>";
34 $h_html .= "</div>";
35 print $h_html;
36 $h_html " "";
37 return;}
38 #----------------------------------------------------------
画面表示に関する殆ど総ての設定をこの[hyouji3.cgi]で行ってます。

6行目の説明、埋め込み以外の各ファイルにおいて、左側の部分を使うか・未使用か、ここで設定可能、
ただし、15行目〜20行目は、画面作成用の重要なHTML部分ですからこの項目は未使用には出来ません。

22行目〜35行目、画面表示の設定部分は沢山ありますが、全て同じ書式なので、この例を代表にします。
この例の場合、ヘッダーを使わない場合は、24行目の[#return;]を[return]に変更して表示・非表示で切り替えますが、
Main部分を間違えて非表示にしない為15行目〜20行目のような、Main部分は非表示設定不可にして有ります。

[config3.cgi]と[hyouji3.cgi]の使用例 例として、
[input.cgi]-----データ管理での最初の部分です
===============================================================
 1 #!/usr/bin/per
 2
 3 ##---------------------------
 4 # データ管理ツールVer3.0
 5 # カレンダーV6(補助ツール)
 6 #----------------------------
 7 ##---初期設定---
 8 use CGI;
 9 $pm = new CGI;
10 use lib './lib';
11 use Jcode;       #日本語コード変換
12 require 'config3.cgi';  #個人設定
13 require 'hyouji3.cgi';  #表示設定
14 require 'kankyou.pl';  #表示設定
15 require 'irosaizu.pl'; #MyCalendar
16 srand;         #乱数初期化(Time)
17 use Time::HiRes qw(sleep);  #0.1秒sleep
18 #----------------------------------------------------------
19 #個人設定
20 $title1 = "$todolist管理Ver3.1a";      #タイトル左上に表示
21 #$title2 = '「Yukiの休息所(MyCarender)」'; #config3にて使用しています
22 #$title3 = 'MyCalendar3.1a';        #config3にて使用しています
23 #$title4 = 'MyCalendarVer3.1a';       #config3にて使用しています
24 #$title5 = 'YukisRoom 管理人 [ 葵 Yuki ]'; #config3にて使用しています
25 $title6 = "$todolist管理ツール";
26 $title7 = "MyCalendar$todolist管理";    #タイトルバーに表示されます
27 $title8 = "";  #未使用
28 #設定はここまで
29 $koumoku = ();
===============================================================
1行目、まずは、Pralの設定
8行目、[CGI]の使用宣言 9行目、CGI.pmの使用宣言
10,11行目、日本語コード変換に[Jcode.pm]の使用宣言
12,15行目、各設定ファイルの使用宣言
16,17行目、追加機能の使用宣言

20行目から、[config3.cgi]との共同設定部分で、このツール専用に変更もしている
ここに出てくる変数も[config3.cgi]での共通設定です。
実際には、わかり易くする為のコメント行ばかりが多いのですが・・・

例として、
[input.cgi]-----データ管理での表示部分です
===============================================================
136 #----------------------------------------------------------
137 #出力開始
138 print $pm->header(-charset=>"euc-jp");
139 print $pm->start_html( -title=>$title4, -lang =>'ja', -charset=>'euc',
140     -style=>{-src=>$style, -code=>$newstyle } );
141 &wakuhyouji;
142 #print "<div class='waku'>";
143 #----------------------------------------------------------
144 &headgamen;   #hyouji3.cgiから読み込む、ヘッダー部分
145 #&menugamen;  #hyouji3.cgiから読み込む、メニュー部分
146 #&menugamen1;  #hyouji3.cgiから読み込む、メニュー部分
147 #&menugamen2;  #hyouji3.cgiから読み込む、メニュー部分
148 #&menugamen3;  #hyouji3.cgiから読み込む、メニュー部分
149 #&menugamen4;  #hyouji3.cgiから読み込む、メニュー部分
150 #&menugamen5;  #hyouji3.cgiから読み込む、メニュー部分
151 #----------------------------------------------------------
152 #print "<div class='cont'>";
153 print "<table class='cont'><tbody><tr>";
154 #----------------------------------------------------------
155 #LeftPaineの使用設定、hyouji3.cgiから読み込む
156 if ($LeftPaine){
157   print "<td valign='top' class='left' align='center'>";
158   print "<br />";
159   &inputgamen1;   #hyouji3.cgiから読み込む、更新ボタン
160   &mycalendar;    #hyouji3.cgiから読み込む、更新ボタン
161   #&countergamen;  #hyouji3.cgiから読み込む、更新ボタン
162   #&usergamen;    #hyouji3.cgiから読み込む、更新ボタン
163   &calendar3gamen;  #hyouji3.cgiから読み込む、今月のCalendar
164   print "</td>";
165   }
166 #----------------------------------------------------------
167 &mainhyouji;
168 #print "<td class='main' valign='top'>";
169 #----------------------------------------------------------

138行目〜140行目 先ほどのツール[CGI.pm]を使って利用するとこんな感じになります。
141行目、144〜150行目、159〜163行目、167行目 [hyouji3.cgi]のサブルーチンを呼び出しています。

156行目は、画面の左側部分の使用設定で、
[hyouji3.cgi]での、$LeftPaine設定で左側部分の使用・未使用が決まることになってます。

使用しないサブルーチンは、[hyouji3.cgi]の設定にかかわらず、ここで#をつけてコメントアウトしておくと良い。
このように、共通ファイルの[hyouji3.cgi]との連携で画面を構成して、
スタイルシート[stylecal3.css]で修飾を加えて画面が完成します。
======================================================================

☆Calendar部分☆の設定
[irosaizu.pl]--色・サイズ設定
大型・小型両Calendar及び年表示・データ管理の共通設定です。
各カレンダー毎の設定の方が優先になりますので、このファイルでは主に共通部分、それに大型Calendar用の設定となります。
サンプルページではHTMLPageの色や背景画像も変更可能にしてあります。

☆外観部分の色や表示方法を設定
[stylecal3.css]--スタイルシート
Calendarを含む全体の表示設定は、[styecal3.css]の適用範囲です。
[styecal3.css]では、ヘッダ・左Paine・Mainとフッターに分けてありますが、
名前が同じならば、設定場所に関係なく同じ設定になりますし、同じ名前の設定は、後段の方が優先になります。
設定を変えたい場合は、名前を探して、同じ名前がダブらないように注意してください。

また、[hyouji3.cgi]----表示設定ファイルを使用しない場合、
[stylecal3.css]--スタイルシートから読み出す部分は少なくなりますので、他のCSSで組み替えても良いでしょう。
[config3.cgi]----共通設定の54行目がCSS名の設定です。

==========================================================================================

☆使用方法☆について、
今回のバージョンは、従来のグループ機能に初期表示を加えたものです。
通常の予定表入力に初期表示とグループ機能、どちらを優先するかは、利用者様しだいです。では、順に説明していきます。

☆予定表入力☆
ユーザー様がご自身のために使用する予定表は、通常であれば他の何人も見ることのない予定表となります。
予定表はMyCalendarの基本機能で、ユーザー様ご自身のスケジュール管理を目的としています。

予定表は、ログイン後に表示され、他の方の予定表は見ることが出来ない個人のスケジューラーです。
予定追加は、ログイン後にメインカレンダーの日付部分をクリックする事から始まります。
  をご参考にして下さい

☆初期表示☆
Ver3シリーズの新機能の一つ[初期表示]です。
ログインなしで、管理者からの「お知らせ」等をMyCalendarに表示する機能です。
DumyUserを設定して、DumyUserの共有相手を表示する形を取ります。
表示可能なUser名は、管理人の別名設定で3名分[日記][予定][計画]さんの3名分が初期値、
管理人の別アカウントによる書きこみ項目で、DumyUserの共有相手に設定します。
DumyUserは、ログインも不可能、名前の変更すら出来ない、殆ど何も出来ない設定にしてあります。
「お知らせ」に対する応答はログイン後にお願いします。

☆グループ機能☆
[グループ機能]は、グループを作る事から始めます。
左側の[グループ管理]をクリックして使用開始です。

グループの作成方法は、掲示板と同形式にしてあります。件名がグループ名になります。
グループ名はなるべく簡潔に、短いお名前をつけてください。長いと、MyCalendarの表示が崩れてしまいます。
尚、グループ管理者は、自動的に、作成したグループに参加することになります。

[ユーザー様]は、何もグループに参加しない状態では、普通のCalendar表示で、ご自身のスケジュールのみ管理できる状態です。
グループに参加するには、左側の[グループ管理]をクリックしてグループ管理を起動、
参加グループリストは、まだ空です、下にあるグループ表示から選択してグループに参加してください。
ただし、[グループ管理者]が作成したグループ以外には参加できません。

[サイト管理者]は、本人を含む数人にグループ管理を依頼する事が出来ます。
了承が得られたら、[kanri.log]にグループ管理者のユーザー名とパスワードを登録してください。
このデータは、登録時にメールで送られているはずです。
グループ管理者も、ユーザーモードに切り替えて頂ければ、他の方の作成したグループに参加することが出来ます。

☆グループ名☆について
先ほども少し書きましたが、グループ名は半角英文字で10文字程度まで、漢字の場合は5文字程度にして下さい。
ネット上ではファイル名の漢字は文字化けの可能性が有り、発見次第対策をしていますが・・・
画面表示部分は対策済み、目に付かない部分では、まだ文字化けの可能性が残っています。

☆ユーザー名☆について
ユーザー名は、半角英文字6文字以内にして下さい、漢字も使用可能になりました。
文字化け対策を実施した為、ファイル名に漢字を含んでも正常に表示されますが、
ファイル内の文字は文字コード指定で再読み込みの必要があります。管理者以外に見ることは出来ませんが・・・

☆クッキー☆について、
このバージョンでは、クッキーを重用しています。
Userの個別特定、いやPCの個別特定になりますが、Cookieに勝る物はありませんが、危険性も指摘されるようです。
このツールでは[ユーザー名][パスワード][メールアドレス][有効期限]を書き込んでいます。
有効期限が切れるとCookieは消滅します。

===以降はMyCalendarの解説です===

==========================================================================================

> ☆ユーザー管理について、
ユーザー管理でクッキーを使用、クッキーで使用PC等を特定していますので、同時ログイン等の間違いは起きないでしょう。
クッキーと同時に、ホスト名もユーザーの特定に使用していますので、
[ユーザー名][パスワード]を盗まれても、簡単にはログイン出来ない仕様にして有ります。
ホスト名での管理により、IPアドレスの変化でアクセス不能になるため、[再登録]・[追加登録]の機能を強化しています。

☆SendMailの使用について、
このバージョンに限らないのですが、今後のバージョン全てでSendMailの機能を使用しますので、
御自分のサーバのSendMail対応状況を確認してください。もし、未対応の場合、あきらめた方が良いでしょう。
また、小生のように自宅サーバで使用する場合には、便利なフリーツールがありました。
小生のWindows講座において、紹介していますので、興味のある方はどうぞ。

☆スタイルシートについて
サンプルページを作成するCSSを「stylecal3.css」として、Calendar3.cgiを含む全てのCGIもこのCSSを共通使用しています。
総てに共通で使用するため、ごちゃごちゃの設定になってしまってますし、無効な機能も残ったままです。
styleの設定は、殆どの場合classを設定して、classに対して設定しています。
CSSには、(0)設定が多いのですが、ブラウザの違いによる表示の違いを出来るだけ解消する為なので、
数値を設定しない場合でも、(0)を設定したままにして下さい。

☆画面デザインについて
サンプルと同様に、上部・左・メインとの分割でよければ割と簡単に設置可能ですし、
配置が異なる場合も、表示設定ファイルの変更だけで、全てのファイルの設定が出来ます。
ただし、メインのHTMLファイルは、ここでは強制できません。ご自由なスタイルシートを別に用意してください。
表示設定「hyouji3.cgi」は、サンプルページとほぼ同じ物を設定しておきますので、
タイトルの変更から始められるとよろしいかと思います。
各部の色設定は、Calendar部分は、「irosaizu.pl」で、その他は、CSS 「stylecal3.css」での設定となってます。

☆補助ファイルについて
ユーザー登録「user3.cgi」とメールフォーム[mailform3.cgi]は、必須、その他は、無ければ各機能が動かないだけです。
画像管理ツール[picturetool.cgi]は、ツールボタンを設置しなくても各ツールから呼び出す設定になってます。
簡易掲示板[gazou_bbs.cgi]は、不要であれば、削除してもかまいません。
予定一覧[itiran.cgi]、年間・年度表示[nencal.cgi]は、独立動作表示しなくても問題なし。
その他表面にでていないファイルは、結構重要な物ばかり削除すると動かない機能が増えてしまいます。

☆日本語コード変換について
従来の[jcode.pl]から、今回のバージョンアップにより[Jcode.pm]に変更しました。
[Jcode.pm]は、[lib]フォルダに収めてあります。
使い方は、この名前でNet検索すればいくらでも見つかります。
小生もNet検索から、試行錯誤の結果、今の使用方法になりました。

==========================================================================================

☆参考に
cgiの基礎知識、「「CGI基礎講座第1回、CGI基礎講座(1)」」小生のHomePage講座の一部です。
用語の意味がわからない場合、基礎知識の2ページをご覧下さい。
CGIの設置方法は、その先のページで練習すれば、このシステムも設置可能になるでしょう。

☆お礼
最後まで読んでいただき有難うございます。
CGIは、上手く設置できましたか?

最後になりましたが、休日表・節気データは正確なデータは2年分しか入力できません、平成29年以降は再度Downloadして下さい。

に戻る  に戻る  に戻る

 ======================================================================
   YukisRoom管理人「葵 Yuki」平成22年5月22日 記 平成26年5月25日 改
 ======================================================================





☆お問い合わせはこちらにMailForm
Copyright© 2010 YukisRoom 葵Yuki. All Rights Reserved