MyCalendar6.0a取説 「Yukiの休息所(MyCalendar)」 MyCalendarVer6.0a

MyCalendarVer6.0a 取扱説明

 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    MyCalendarVer6.0a ファイル名「calendar6.cgi」
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[ Ver6.0aの概要 ]
Ver6aシリーズは、ファイル保存形式を採用して、ユーザー様の特定をしていますので、
WiFi環境で且つホスト名の表示されない方は、同一環境内で複数の起動は難しいでしょう。
Ver6シリーズは、機能的にはVer4シリーズに新機能を加えた物で、共通のデーター形式となっています。
今回のバージョンアップにて、Ver5シリーズから、Ver8シリーズまで、共通のデーターを使えるようになりました。
Ver6.0は、JavaScript呼び出し方式、設置は面倒ですが、WebPage内に埋め込むことが出来ます。

Ver6.0aは、Ver6.0から、サンプルデーターを削除したもので。サンプルデーター削除の手間が省けます。

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

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

+++「共有機能」+++
「共有機能」は、MyCalendar設置者を含むユーザー間で、書き込みデータを共有する機能です。
「グループ機能」と違い、共有登録は気の合ったユーザー間での設定となっています。

新バージョンへの移行に伴い、Ver5と共にVer6シリーズも新バージョンに移行しました。
このバージョンは、日本語文字コードUTF8形式に対応した物です。
Ver4シリーズから発展して、新機能「管理者ツールの追加&初期表示の追加」を加えた物で、
Ver6.0aは、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/]--[calender6_0a/]-+-[adress1.cgi]------------アドレス表示
                       +-[calendar1.cgi]----------ミニCalendar
   ファイル数が結構多いが、        +-[calendar6.cgi]----------Calendar本体
                       +-[comment.cgi]------------コメント書き込み
                       +-[config6.cgi]------------共通設定ファイル
   全部そろってますか?          +-[count1.cgi]-------------テキストCounter
   フォルダ構造は、この様にして下さい。  +-[datapop.cgi]------------データ表示
                       +-[gazou_bbs.cgi]----------簡易掲示板
                       +-[group.cgi]--------------グループ管理
                       +-[hyouji6.cgi]------------表示設定ファイル
                       +-[inpdata.cgi]------------データ入力
                       +-[input.cgi]--------------データ管理
                       +-[irosaizu.pj]------------色・サイズ設定ファイル
                       +-[itiran.cgi]-------------データ一覧表示
                       +-[kaipage.cgi]------------月表示変更補助
                       +-[mailform6.cgi]----------メールフォーム
                       +-[mate.cgi]---------------共有管理ツール
                       +-[nencal.cgi]-------------年間・年度表示
                       +-[picturetool.cgi]--------画像アップロード
                       +-[reset.cgi]--------------User補助ツール
                       +-[set.cgi]----------------HTMLPage作成補助
                       +-[setgroup.cgi]-----------グループ表示補助
                       +-[stylecal6.css]----------スタイルシート
                       +-[user6.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]の物でも[confug6.cgi][hyouji6.cgi]には、Perlパスは付けないで下さい。
また、フォルダの中の物も、Perlパスの設定はご無用に願います。

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

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

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

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

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

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

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

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

======================================================================
 7 #CGIの設置場所の設定
 8 #$dirmei = 'http://pc-sup.bglb.jp/cgibin/cal/';   #設置場所URL自宅
 9 $dirmai  = 'http://pc-sup.com/cal/';        #設置場所URL外部
10 $mfilemei = $dirmei.'calendar6_0a.html';       #メインファイルの名前とパス
11 $cgidir  = $dirmei.'cgi/calendar6_0a/';       #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   = 'MyCalendarVer6.0a';       #タイトル1、各Pageで再設定しています
22 $title2   = '「Yukiの休息所(MyCarender)」';  #タイトル2
23 $title3   = 'MyCalendar6.0a';         #タイトル3
24 $title4   = 'MyCalendarVer6.0a';       #タイトル4
25 $title5   = 'YukisRoom 管理人 [ 葵 Yuki ]';  #タイトル5
26 $todolist  = "予定表";             #予定計画表示名
27 $grouplist = "Group";             #グループ表示名
28 $kyouyulist = "共有";              #共有機能表示名
29 $kanri   = '葵 Yuki';            #管理者名
30 $mycalmei  = "calendar6_0a";          #このCalendarの名前です。
31 #---------------------------------------------------------------------------

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

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

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

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

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

ここから、MyCalendarの起動です。
MyCalendar呼び出し元に設定した、リンクからMyCalendarにアクセスします。
もし、アクセスできない場合には、又は、リンク未設定の場合には以下の方法をお試し下さい。
アップロード先が「http://xxxx.xxx/cgi/calendar6_0a/」の場合には、
「http://xxxx.xxx/cgi/calendar6_0a/calendar6.cgi」をブラウザのアドレス欄に入力して「calendar6.cgi」を直接呼び出します。
呼び出しに失敗する場合には、URLのチェック、パーミッションの確認です。
パーミッションは、[700],[705],[755]を試してください。
パーミッションの数値が少なく動く方が安全です。「calendar6.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]フォルダ内にあります。

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

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

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

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

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

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

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

[hyouji6.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 return;}
21 #----------------------------------------------------------
22 sub headgamen{#ヘッド部分の色&画像設定
23 #画面再上部のタイトル部分です、作成後に「return;」の所を「#return;」に変更してください。
24 #return;
25
26 if (($headimg ne "") and ($headimg ne "/")){ #画像の設定があれば
27    $h_html = "<div class='head' style='background-image:url(./image/$headimg);background-repeat:repeat'>";}
28 else {$h_html = "<div class='head' style='background-color:$headiro'>"";}
29
30 $h_html .= "<span class='head1'>$title1</span>";
31 $h_html .= "<span class='head2'>$title2</span>";
32 $h_html .= "<span class='head3'>$title3</span>";
33 $h_html .= "</div>";
34 print $h_html;
35 return;}
36 #----------------------------------------------------------
画面表示に関する殆ど総ての設定をこの[hyouji6.cgi]で行ってます。

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

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

[config6.cgi]と[hyouji6.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 'config6.cgi';  #個人設定
13 require 'hyouji6.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.0";      #タイトル左上に表示
21 #$title2 = '「Yukiの休息所(MyCarender)」'; #config6にて使用しています
22 #$title3 = 'MyCalendar6.0a';        #config6にて使用しています
23 #$title4 = 'MyCalendarVer6.0a';       #config6にて使用しています
24 #$title5 = 'YukisRoom 管理人 [ 葵 Yuki ]'; #config6にて使用しています
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行目から、[config6.cgi]との共同設定部分で、このツール専用に変更もしている
ここに出てくる変数も[config6.cgi]での共通設定です。
実際には、わかり易くする為のコメント行ばかりが多いのですが・・・

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

149行目〜151行目 先ほどのツール[CGI.pm]を使って利用するとこんな感じになります。
152行目、155〜161行目、170〜173行目、175行目、179行目 [hyouji6.cgi]のサブルーチンを呼び出しています。

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

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

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

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

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

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

☆使用方法☆について、
今回のバージョンは、Schedulerです、取り扱いも複雑に、そこで使用方法から始めます。
最初の入り口部分からグループ管理と共有管理、どちらを優先するかは、利用者様しだいです。では、順に説明していきます。

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

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

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

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

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

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

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

☆グループ名☆について
先ほども少し書きましたが、グループ名は半角英文字で10文字程度まで、漢字の場合は5文字程度にして下さい。
ネット上ではファイル名の漢字は文字化けしますが、そのまま使用可能です。
画面表示部分は対策済み、目に付かない部分では、まだあるようです。

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

☆共有機能☆
[共有機能]は、ユーザー様同士で、お互いの投稿を見られるように、またコメントを加える事が出来る機能です。
左側の[共有管理]をクリックして使用開始です。

共有設定は、お相手に送る第2パスワードを設定する[登録モード]、
登録した第2パスワードをお相手に送る[送信モード]、
送られてきた第2パスワードを入力する[設定モード]があり、相互にモードを移動できます。
第2パスワードは、ログイン用とは別に設定してください。第2パスワードはオープンにしていますので、忘れる心配は有りませんが、
ログインパスワードと同じでは、他人にログインパスワードを教える事になります。
この機能は、近しい友人同士の連絡用や、返事を受け取る必要のある会合の連絡用、交換日記等、用途は多彩、アイデアしだいと言えますね。

[共有機能]も[Group機能]同様に、表示非表示を選択できます。非表示にしたままで連絡が無いと思わないようにご注意願います。
共有開始も[共有開始]のクリックからスタート、お相手から送られてきたユーザー名と第2パスワードを入力して[設定する]を押してください。
お相手には登録完了メールが自動送信されます。

サイト管理者は、殆ど干渉できないユーザー間の設定ですので、その辺りの注意事項を何処かに書いておく方が良いでしょうね。

☆クッキー☆について、
このバージョンでは、クッキーを使用していません。

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

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

☆ユーザー管理について、
ユーザー管理でクッキーを使用しませんので、ユーザー名とパスワード及びホスト名で管理しています、
ホスト名は小規模事業所内やご家庭内で複数のPCを使う場合に変化しますので、
IPアドレスの変化に対応するために、[再登録]・[追加登録]の機能を強化しています。

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

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

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

☆補助ファイルについて
ユーザー登録「user6.cgi」とメールフォーム[mailform6.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