GOiGOi Project (ゴイゴイ・プロジェクト) -> 状況カレンダー自動作成 index -> 表示マニュアル & Tips
 

表示マニュアル & Tips

カレンダーを表示させてみる

  • ブラウザーのアドレス入力欄にカレンダー表示のCGIを直接入力します。
  • http://www.xxx.jp/cgi-bin/calendar/calendar_display.cgi?sample
    (あなたがアップロードした場所と calendar_display.cgi の名称を変更した場合は違う指定になります)
  • sampleのところには登録した対象名を入力します。
    対象名を複数指定すると複数の対象のカレンダーを表示することができます。(例: ?tokyo+nagoya)
  • カレンダーが表示されればOKです。
  • 実際にホームページでリンクさせる場合はリンク先として上記のアドレスを指定します。
  • カレンダーが表示されない場合は今までの手順に間違いがないか確認して下さい。
  • CGiプログラムのパーミッションは正しいですか?
  • 管理者用プログラムはうまく動きましたか?

カスタムのテンプレートを使って表示させてみる

  • 標準のカレンダー表示のテンプレートはただ単にカレンダーを表示させるためだけの何の装飾もないものです。カレンダーの前後にヘッダーやフッターなど独自のデザインを組み込みたい場合はカスタムのテンプレートファイルを作成します。
    テンプレートのデザインは自由に行うことができます、カスタムのテンプレートの中でカレンダーを表示させた場所に次のカレンダー挿入タグを配置します。<!--index表示タイプ-->
    表示タイプは以下のとおりです。
    T:タブ横表示、X:タブ縦表示、H:横七曜表示、V:縦七曜表示、W:タブ七曜表示、S:スマホ表示(縦七曜)、A:スマホ表示(日数指定)、B:スマホ表示(タブ縦曜)、I:携帯表示、Y:営業日表示、K:日数指定表示
    例:<!--indexT-->
    <!--indexT-->の後に以下のscriptタグを記述します。
    <!--indexT--><script language="javascript" type="text/javascript" src="/cgi-bin/calendar/calendar_display.cgi?test+_DT+script:作成したテンプレートの指定+kjc:sjis"></script>
    CGIのパスはインストールした環境によって変わりますのであなたの環境に読み替えてください。
    test は表示する状況カレンダーのIDになります。+script: は script で呼び出す時は必ず付けます。+kjc:sjis は呼び出したHTMLソースを記述している漢字コードを指定します。(sjis,jis,euc,utf8)
    +_DT の T は<!--indexT-->で指定した表示タイプを指定します。
    +script: の後の作成したテンプレートの指定は作成したテンプレートのパスとファイル名をフルパスまたはドキュメントルートから指定します。(例:+script:/temprate/test.html フルパス、ドキュメントルート指定ともに / で始めます)) 一連の記述は改行せずに1行で記述し余分なタグは入れないでください。
  • 作成したテンプレートファイルをFTPクライアントソフトを使ってサーバーの任意の場所にアップロードします。
    リンクタグ、イメージタグ <img src=""> <a href=""> など他のページ、画像にリンクしたり参照するパスはテンプレートHTMLファイルが存在するディレクトリからの相対パスで記述すればドキュメントルート / からのパスに自動補正します。自動補正が必要なのはCGIでカレンダー表示をした時にベースのディレクトリがCGIが存在するディレクトリになるためです。
    自動補正を行いたくない場合は設定プログラムファイル calendar_set.pl の $auto_sw=1; を $auto_sw=0; に変更してください。
    HTMLの記述の仕方やスクリプトを含む特殊なタグを使っているとうまく補正できない場合があります。
    もしも画像が表示されなかったり、リンクがうまくつながらない時は、以下の方法で回避してください。
    ただし、同一ページ内へのリンクが記述されている場合はうまくリンクできませんので注意が必要です。
    • CGIプログラムが存在する実行パスからの相対パスか、ドキュメントルート / から記述して下さい。
      もしも相対パス、ドキュメントルート / からのパスがわからない時は http:// から始まる絶対パスで記述してください。
    • 【推奨】テンプレートHTMLファイルの<head>〜</head>の間に<base href="">を記述してリンクの基準となるURLを指定します。
      例えば、<base href="http://www.xxx.co.jp/test/">と指定するとこのテンプレートHTMLファイルに書かれている相対パスはhttp://www.xxx.co.jp/test/を基準として参照されます。
      ただし、HTMLソース内に同一ページ内へのリンク記述があるとうまくリンクできませんので注意が必要です。(<a name="xxx">、<a href="yyy#xxx">)


  • このテンプレートファイルのURLをブラウザで指定して表示させるとカレンダーが表示されるはずです。

  • ここで指定している表示CGIの引数はこの他にも指定できます。オプション一覧を参照ください。

  • Tips この表示方法はPHPにも適用できます。(つまりPHPからカレンダーが表示できるということです)
    <!--indexT--><?php $fp=fopen("/cgi-bin/calendar/calendar_display.cgi?test+_DT+script:作成したテンプレートの指定+kjc:sjis","r");while(!feof($fp)){$line=fgets($fp);echo $line;}fclose($fp); ?>
    一連の記述は改行せずに1行で記述し余分なタグは入れないでください。

オプション一覧

  • 上記でアドレスを入力したときに?以降に記述した項目を引数(ひきすう)といいます。
  • 引数を指定することにより色々なオプション項目を指定して表示させることができます。
    オプションを複数指定する場合は半角の + で区切って続けて記述します。(例: ?tokyo+nagoya)
  • 引数の1番目は表示させる対象(状況ID名)を指定します。管理者メニュー画面の上の「対象(状況):」の選択肢の括弧書のID名です)
    以下 xxxx は状況ID名を表します。
    対象名を複数指定すると複数の対象のカレンダーを表示することができます。(例: ?tokyo+nagoya)
    対象名を指定する場合は後ろに ! を付けると指定したテキストが含まれる対象名が全て表示されます。( ! のみを指定すると全てを表示します)
    (例: ?xxxx!  xxxxが含まれる対象を表示)
  • 表示させる対象のタイプを指定することができます。
    対象名の後に初期設定のタイプ No.またはタイプID で続けて記述します。
    (例: ?xxxx:2:3:5 対象名 xxxx のタイプNo. 2,3,5 を表示、?xxxx:dog:cat 対象名 xxxx のタイプID dog,cat を表示)
    タイプID を指定する場合は後ろに ! を付けると指定したテキストが含まれるタイプIDが表示されます。( ! のみを指定するとタイプIDが指定されているもの全てを表示します)
    (例: ?xxxx:dog! 対象名 xxxx のタイプID に dog が含まれるものを全て表示)

  • 「初期設定」のカレンダー表示のタイトルに半角の , で区切って復数指定している場合は表示するタイトルを指定することができます。何番目のタイトルを表示するか数字/で指定します。
    (例:xxxx:2/dog:cat 対象名 xxxx のタイプID dog,cat を表示、タイトルは2番目のタイトルを表示)
    タイトルを指定する場合は「初期設定」でカレンダー表示のタイトル?の指定で半角の,で区切って複数指定しておきます。その内の何番目を指定します。
  • Tips 対象名、タイプIDを系統的に付けると高度な表示が可能です。 (例) 以下のように対象名、タイプIDを付けます( xxx は任意)
    対象名タイプID
    abc_xxxosaka_xxx
    tokyo_xxx
    def_xxxosaka_xxx
    tokyo_xxx
    xyz_xxxosaka_xxx
    tokyo_xxx
    (表示例: abc_!:tokyo_! 対象名に abc_ が含まれ且つタイプIDに tokyo_ が含まれる状況カレンダーを表示)

  • Tips 日数指定で表示させる場合に何日間を表示させるかを指定できます。(初期値は10日)
    (例) 15dp 15日間を表示します /cgi-bin/calendar/calendar_display.cgi?test+_DK+15dp
    この指定は携帯電話用に表示させる場合の日数指定指定にも共通で使えます。

  • 引数の2番目以降は以下のように指定します(順不同)。

  • L:english 曜日を英語の3文字でします。

    20days 本日から20日間のカレンダーを表示します。20は任意の日。

    4mon 本日から4月までのカレンダーを表示します。4は任意の月。

    2 数字のみを指定します。当月から2ケ月間のカレンダーを表示します。2は任意の月数。(期間を指定しない場合は3ケ月間表示します)
    表示形式が日数指定表示の場合は何日間を表示するかを指定できます(指定しない場合は7日間)

    _D? ? で指定したテンプレートを使用してカレンダーを表示します。(T:タブ横表示、X:タブ縦表示、H:横七曜表示、V:縦七曜表示、W:タブ七曜表示、S:スマホ表示(縦七曜)、A:スマホ表示(日数指定)、B:スマホ表示(タブ縦曜)、I:携帯表示、Y:営業日表示、K:日数指定表示)
    Tips アルファベットの小文字も指定することができます。2通りのテンプレートを使い分けることができるわけです。例えば H を h で指定すると indexH.html ではなく indexh.html をテンプレートとして使用します。

    年月M最終日 指定した年月のタブ表示カレンダーを表示します。例:200410M31(最終日を省略するとその月の最終日)

    php カレンダーの状況をPHPのソースの中に表示させる場合に指定します。

    script カレンダーの状況を iframe ではなく <script language="javascript" type="text/javascript" src="/cgi-bin/calendar/calendar_display.cgi?test+script+kjc:sjis"></script> で表示させる場合に指定します。

    kjc:漢字コード(sjis,euc,jis,utf8) カレンダーの状況をPHP、script で表示させるときソースの漢字コードを指定します。

    _NL_ カレンダーの状況表示から予約フォームへリンクさせません。単に状況を表示させたい場合に指定します。

    _NB_ カレンダーの状況表示の「戻る」を表示させません。

    event:機能数字 カレンダーの状況表示をせずイベントのみを表示させます。
    機能数字は以下の数字を指定します。 0=イベントを表示しない 1=テキストで表示 2=ボタンで表示(ボタンクリックでテキスト表示) 3=ラジオボタンで表示(カーソルを当てるとテキスト表示)
    Event:機能数字 カレンダーの状況表とイベントの両方を表示させます。
    機能数字は以下の数字を指定します。 0=イベントを表示しない 1=テキストで表示 2=ボタンで表示(ボタンクリックでテキスト表示) 3=ラジオボタンで表示(カーソルを当てるとテキスト表示)
    EVent:機能数字 カレンダーの状況表示のみを表示させます。

    col:色設定ファイル番号 カレンダーの状況表示を標準の色設定ファイル以外の設定ファイルを使って表示したい時に指定します。
    (例:col:5 色設定ファイルの calendar_col5.cgi を使って表示する)

    I年月日 指定した年月日から携帯用、日数指定でカレンダー表示します。例:I20041001(月日が1桁の場合は前に0を埋めて下さい)

  • 複数のオプションを指定する場合は半角の+で区切って続けます。
  • 例:http://www.xxx.jp/cgi-bin/calendar/calendar_display.cgi?sample+20days+english

予約フォームにパスワードを設定

  • Tips カレンダー表示から予約フォームに進む際に設定されたパスワードを入力させることができます。
  • マスター管理者の「初期設定」画面で設定します。
  • 入力してもらうパスワードを指定します。
    パスワード入力画面のHTMLソースをサーバーのルートから指定します。(指定しないと標準の画面で入力)
    カスタムの入力画面は標準のHTMLフォームを参照して作成してください。

会員登録データを入力欄にセット(簡易会員)

  • Tips 会員登録された方が再度予約送信されようとした時に登録されたデータを呼び出し入力欄にセットすることができます。
    また会員の方がご自身で登録内容を変更したり削除したりすることができるようになります。

    この機能を使うには以下の処理を行う必要があります。
    以下で説明している擬似会員処理を行う時はファイル存在場所、保存する項目も指定は必要ありません。

    【1】
    予約送信フォームを作り直します【フォームマスター管理者メニュー】の対象フォームに会員管理したいフォームIDを選択します。メニューの「フォーム編集」欄の「設定ファイルを編集」をチェックし「フォーム編集」ボタンをクリックします。
    対象フォームHTMLを選択して下さいで calen_form を選択し「実行」ボタンをクリックします。
    「入力タイプ」の「※メールアドレス(ID)」と「パスワード(会員確認)」の両方を必ず設定しておきます。
    携帯電話で携帯固定IDを自動取得させてID項目とさせたい場合は「※携帯ID(hidden,自動取得)」も設定しておきます。
    パスワード入力は英数半角で6-12桁の入力で入力チェックが行われます。
    入力項目を確認し「作成実行」ボタンをクリックし予約フォームを作り直します。
    予約送信フォームを作成すると「メールアドレス」と「パスワード」を入力して確認するためのHTMLタグが予約フォームの上部に作成されます。

  • マスター管理者の「フォームを編集」処理を使わずに送信フォームを作成する時は以下のHTMLコードを改行せずに1行で<input type="hidden" name="_check" value="判定" />と<input type="hidden" name="_id" value="XXXX" />の間に挿入します。

    PC用
    <!-- --><table bgcolor="#888888" cellspacing="1" cellpadding="1" style="font-size:13px;color:#333333" align="center"><tr><td align="center" bgcolor="#E6E6E6">以前にご利用された方はメールアドレス、パスワードで入力項目を呼び出せます</td></tr><tr><td align="center" bgcolor="#FFFFFF"> ID:<input type="text" name="_kid" value="" size="16" style="ime-mode:inactive"> パスワード:<input type="password" name="_kpass" value="" size="16"> <input type="submit" name="_passsub" value="呼び出し"><!--id_pass--></td></tr></table>

    携帯電話用
    <!-- -->以前にご利用された方は入力項目を呼び出せます<!--& <br>ID<br> &--><input type="text" name="_kid" value="" size="10" istyle="3" mode="alphabet"><br>パスワード<br><input type="password" name="_kpass" value="" size="10"><br><input type="submit" name="_passsub" value="呼び出し"><!--id_pass--><hr>

    【2】
    【フォームマスター管理者メニュー】の対象フォームに会員管理したい状況IDを選択します。メニューの「初期設定」ボタンをクリックします。
    1. 「入力されたフォームのデータの処理を指定」でデータを保存する設定にしておきます。
    入力項目のどの項目を保存するかを23. で指定します。会員ファイルに保存する項目を半角のカンマで区切って指定します。
    ID項目は項目名の後に /、パスワード項目は項目名の後に * を、利用回数の項目名の後に + を付加して指定します。例:お名前,メールアドレス/,パスワード*,利用回数+,電話番号〜,携帯固定ID#〜
    尚、「※携帯ID(hidden,自動取得)」を設定している場合は携帯固定IDの項目名の後に # を付加して指定します。
    23. では会員ファイルを別に持つ場合のファイル存在場所も指定できますが指定がないと標準のファイルとして保存されます。(ルート又はドキュメントルートからの指定は /〜、絶対パス指定は _/〜で始めて指定します、例:/abc/def/xxx.cgi)
    「設定する」ボタンをクリックします。
    ここで設定を行うと管理者メニューで「対象フォーム」が会員登録用のフォームとして1つ、会員編集用のフォームとして1つの合計2つのフォームIDが追加されます。
    会員登録用のフォームはこのフォームを利用して会員登録をしてもらうことができます、また登録された会員データの閲覧、検索や編集はこのフォームIDを選択して行います。
    自動返信メール、管理者宛メール、送信後に表示するテキストなどの設定もこのフォームIDを選択して行います。
    会員編集用のフォームは会員の方が登録内容を変更したり削除するために使用します。
    自動返信メール、管理者宛メール、送信後に表示するテキストなどの設定もこのフォームIDを選択して行います。

    【3】「マスター管理者メニュー」で対象(状況)を XXX【会員編集】(XXX_k)を選択、「予約フォーム編集」で「◎:設定ファイルを編集」を選択し「フォームを編集」ボタンをクリック。
    次の画面の対象HTMLを選択して下さい:で index を選択し「実行」をクリックします。次の画面で変更があれば編集しますが特になければ「作成実行」ボタンをクリックします。 【4】「マスター管理者メニュー」で対象(状況)を XXX【会員編集】(XXX_e)を選択、「予約フォームを編集」で「◎:設定ファイルを編集」を選択し「予約フォーム編集」ボタンをクリック。
    【5】
    編集用のフォームを作り直します。【フォームマスター管理者メニューへ】の対象フォームに編集用フォーム(最後に _e が付いているID 予約(予約【会員編集】))を選択します。メニューの「変更用フォームに設定」欄の選択した対象フォームのフォームを最後に _k が付いている XXX【会員登録】をチェックし「変更用フォームに設定」をクリックします。
    次の画面でIDとパスワード項目になる入力項目を選択します。
    変更させたくない項目があれば選択します。
    CGIの設定とパスワードチェックの設定は変更があれば指定します。
    「実行」ボタンをクリックします。
    編集用フォーム、登録データ更新ログインページが作成されますのでそれぞれのURLを控えておいて下さい。
    ここで表示されているログインページのURLがお客さんが自身で登録内容を変更したり削除するときのURLとなります。

  • 会員データを参照して入力された時は管理者に送信されるメールに 【会員】入力したパスワード が付加して送信されます。
    また、自動返信メール、管理者宛メール文のテンプレートの条件式として評価する時に次の様な値が設定されますので場合によって返信メールの文言などを変えることができます。

    入力項目名セットされている値
    #登録#送信者(会員)がデータを登録されている時に 1 がセット
    #変更#送信者(会員)がデータを変更されている時に 1 がセット
    #削除#送信者(会員)がデータを削除されている時に 1 がセット
    #携帯電話#携帯電話からのアクセスされている時に 1 がセット
    #携帯メール#携帯電話のメールアドレスが入力されている時に 1 がセット
    #会員#会員が登録データをID、パスワードで呼出し送信されている時に 1 がセット
    1 の場合は会員の方であるとわかります。

再予約時に前回入力データを入力欄にセット(擬似会員)

  • Tips 以前に予約された方が再度送信されようとした時に前回に入力されたデータを呼び出し入力欄にセットすることができます。
  • マスター管理者の「初期設定」画面で「入力されたフォームのデータの処理を指定」でデータを保存する設定にしておきます。
  • マスター管理者の「予約フォーム編集」処理で「入力タイプ」の「※メールアドレス(ID)」と「パスワード(会員確認)」の両方を必ず設定しておきます。
    パスワード入力は英数半角で6-12桁の入力で入力チェックが行われます。
  • 送信フォームを作成すると「メールアドレス」と「パスワード」を入力して確認するためのHTMLタグが送信フォームの上部に作成されます。
  • 前回入力データをセットさせたくない項目には NOCP オプションを設定します。
    例:<input type="text" name="住所(ch//NOCP)" size="50" value="">
  • マスター管理者の「フォームを編集」処理を使わずに送信フォームを作成する時は以下のHTMLコードを改行せずに1行で<input type="hidden" name="_check" value="判定" />と<input type="hidden" name="_id" value="XXXX" />の間に挿入します。

    <!-- --><table bgcolor="#888888" cellspacing="1" cellpadding="1" style="font-size:13px;color:#666666" align="center"><tr><td align="center" bgcolor="#E6E6E6">以前にご利用された方はメールアドレス、パスワードで入力項目を呼び出せます</td></tr><tr><td align="center" bgcolor="#FFFFFF"> ID:<input type="text" name="_kid" value="" size="16" style="ime-mode:inactive"> パスワード:<input type="password" name="_kpass" value="" size="16"> <input type="submit" name="_passsub" value="呼び出し"> <!--id_pass--><input type="hidden" name="_id_pos" value=""><input type="hidden" name="_pass_pos" value=""></td></tr></table>

    <input type="hidden" name="_id_pos" value="">と<input type="hidden" name="_pass_pos" value="">
    のvalue値には送信されたデータのメールアドレス(ID)、パスワードが1レコードの何番目に保存されているかを指定します。
    値がブランクなら自動で探してきます、しかしうまく探せないときは手動で値をセットしてください。
    値を調べるには管理者メニューの「カレンダー表示」でカレンダーを表示し、予約フォームにリンクします。
    予約フォームが表示された時にブラウザのURL欄には以下の例のURLが表示されています。
    そのURLの後ろに +jchj:1 をつけて再表示します。
    http://〜/cgi-bin/calendar/calendar_fmdisplay.cgi?reservation+201104163+jchk:1



    予約フォーム項目名と保存内容を確認しメールアドレス(ID)、パスワードのNo.欄の数字をセットします。項目名と内容が一致していない時は一致するように送信フォームの内容等を修正し合うようにしてください。

    また以下の入力項目のHTMLコードを予約の入力項目の中に含めておきます。

    <input type="text" name="メールアドレス(ch//mail//id_chk_x)" value="" size="30" style=";ime-mode:inactive" />
    <input type="text" name="メールアドレス(mailc)" value="" size="30" style=";ime-mode:inactive">
    <input type="password" name="パスワード(ch//pass//rg4-12)" value="" size="30">


  • 「メールアドレス」と「パスワード」を入力して「確認」ボタンをクリックすると以前に送信された方で「メールアドレス」と「パスワード」が一致したデータがあれば以前の入力項目がフォームにセットされます。
    送信入力フォームの「メールアドレス」と「パスワード」欄にも「メールアドレス」と「パスワード」がセットされますが「メールアドレス」を変更することはできません。
    「メールアドレス」と「パスワード」を入力せずに送信入力フォームのみを入力すれば通常の送信処理を行います。
  • この機能を利用すると簡易な会員処理ができます、「メールアドレス」と「パスワード」を入力してこられた方は会員だと認識させることができます。
    通常の会員管理と異なるのは保存された送信データは1人の会員データでIDは同じで複数の送信された数のデータが存在するということです。
    このためポイント管理などはできません。単に以前に送信されて「メールアドレス」と「パスワード」の登録があったかどうかだけの確認ができるだけの機能です。
  • 「以前にご利用された方はメールアドレス、パスワードで入力項目を呼び出せます」「呼び出す」の文言はマスター管理者の「フォーム編集」処理の中で変更することができます。

パスワードチェックなしからチェックありに移行する

  • 設定プログラムを修正(パスワードファイルを指定)しアップロードします

    calendar_set.pl
    パスワードファイルのファイル名 パスワード認証をしない場合は $p_name='';( $p_name='.htpasswd';)
    $p_name='.htpasswd';


  • 編集画面を呼び出します。
    ブラウザのアドレス指定欄に calendar_edit.cgi が実行できるアドレスを入力して実行させます。
    例:http://www.xxxx.co.jp/cgi-bin/calendar/calendar_edit.cgi
    (あなたがアップロードした場所と calendar_edit.cgi の名称を変更した場合は違う指定になります)

    スーパーバイザーのID、パスワードが要求されます、入力後送信するとスーパーバイザーのID、パスワードが登録されます。

  • 次に管理者画面をスーパーバイザーのIDで呼び出します。
    ブラウザのアドレス指定欄に calendar_edit.cgi が実行できるアドレスを入力して実行させます。
    例:http://www.xxxx.co.jp/cgi-bin/calendar/calendar_edit.cgi?id:super

    管理者画面が表示されたらパスワードの編集を実行し管理者のID、パスワードを登録して下さい。

スーパーバイザー、管理者パスワードを忘れてしまったら

  • 管理者パスワードを忘れてしまった時は、スーパーバイザーのパスワードでログインし管理者パスワードを編集します。
  • スーパーバイザーのパスワードでログインするには以下のようにオプションを指定し管理者メニューを呼び出します。
     例:http://www.xxxx.co.jp/cgi-bin/calendar/calendar_edit.cgi?id:super
     (あなたがアップロードした場所と calendar_edit.cgi の名称を変更した場合は違う指定になります)
     管理者画面が表示されたらパスワードの編集を実行し古い管理者のID、パスワードを削除し新たにID、パスワードを追加して下さい。

  • スーパーバイザーのパスワードも忘れてしまった時は以下の様に、setup.cgi を実行してスーパーバイザーのID、パスワードを再設定します。
     例:http://www.xxxx.co.jp/cgi-bin/calendar/setup.cgi?pass
    この様に setup.cgi は再インストールやスーパーバイザーのID、パスワードの再設定が行えますので、インストール終了後は setup.cgi のファイル名を変更しておくかパーミッションを実行権限がないものに変更しておいて下さい。
    そして、 setup.cgi の実行が必要になったときに元に戻して実行するようにして下さい。

管理者メニューにスーパーバイザーのID、パスワードでログインする

  • 編集画面を呼び出します。
    calendar_edit.cgi に引数として ?id:super を付加して実行します。
    ブラウザのアドレス指定欄に以下のように入力して管理者画面を呼び出します。
     例:http://www.xxxx.co.jp/cgi-bin/calendar/calendar_edit.cgi?id:super
     (あなたがアップロードした場所と calendar_edit.cgi の名称を変更した場合は違う指定になります)

     スーパーバイザーのID、パスワードを入力してログインします。

  • 通常のマスター管理者、管理者の処理が実行できます。

バージョンアップの仕方について1(推奨)

  • バージョンアッププログラムは元に戻せるよう処理を行なっていますが万が一の為にバージョンアップをする前にはインストールしているディレクトリを丸ごとバックアップをとるなどして、元に戻せるように準備してから実行してください。
    また、バージョンアップは自己責任において実行してください。(バージョンアップを請け負うことも可能です)
  • 最新のバーションをダウンロードして解凍します。
  • 解凍してできるディレクトリ calendar の下にある updater.cgi の1行目の perl のパスを指定します。
    最初は #!/usr/bin/perl となっています。もしインストールするサーバーの perl のパスが同じであれば変更する必要はありません。
  • 現在稼働しているサーバー上のプログラムが存在するディレクトリに解凍してできるディレクトリ calendar をFTPでアップロードします。
  • updater.cgi のパーミッションを実行権限のあるパーミッションに変更します。
  • 以上の作業が終了した後に、ブラウザのアドレス入力欄にセットアッププログラム名を入力し実行させます。
    例: http://www.yyy.co.jp/cgi-bin/calendar/calendar/updater.cgi
  • 実行の結果以下のテキストが表示されます。

    アップデートが完了しました
    旧ファイルは ./_2011_07_03 に移動しました
    また移動しないファイルはファイル名に本日日付 _2011_07_03 を付けて保存しました
    (例:/calendar_mes2011_07_03.pl)
    ※エラーメッセージやフォーマット、色合い設定をカスタマイズされている場合は新しい設定に変わっています
    新たに設定し直すか本日日付 _2011_07_03 を付けて保存したファイルを戻してお使用下さい

バージョンアップの仕方について2

  • バージョンアッププログラムは元に戻せるよう処理を行なっていますが万が一の為にバージョンアップをする前にはインストールしているディレクトリを丸ごとバックアップをとるなどして、元に戻せるように準備してから実行してください。
    また、バージョンアップは自己責任において実行してください。(バージョンアップを請け負うことも可能です)
  • 最新のバーションをダウンロードして解凍します。
    現在稼働しているサーバー上のプログラムが存在するディレクトリに setup.cgi のみを上書きでアップロードします。
  • setup.cgi のパーミッションを実行権限のあるパーミッションに変更します。
  • 以上の作業が終了した後に、ブラウザのアドレス入力欄にセットアッププログラム名を入力し実行させます。
    例: http://www.yyy.co.jp/cgi-bin/calendar/setup.cgi
  • 実行の結果以下の画面が表示されます。



  • 最新のバーションをダウンロードして解凍したファイルをフォルダーを含めて全て現在稼働しているサーバー上のプログラムが存在するディレクトリに上書きでアップロードします。
  • 再度ブラウザのアドレス入力欄にセットアッププログラム名を入力し実行させます。
    例: http://www.yyy.co.jp/cgi-bin/calendar/setup.cgi
  • 「アップデートが完了しました」が表示されれば終了です。



現在稼働中のサーバーから別のサーバーに移行します

  • 現在のデータを活かすために旧サーバーの状況名(状況ID)以下のディレクトリをダウンロードして保存しておきます。
    (ディレクトリ /cgi-bin/calendar/calen_d の下に状況名(状況ID)のディレクトリがあります。インストールしたディレクトリが違う場合は違う場所になります)
  • 最新のプログラムをダウンロードし新しいサーバーに旧サーバーへのインストールと同じやり方でインストールします。
  • 旧サーバーのスーパーバイザー管理者メニューの「制限解除キーの取り出し」処理で制限解除キーの取り出しを行なって下さい。
  • 取り出した制限解除キーを使って新しいサーバーのスーパーバイザー管理者メニューの「制限解除」処理を行なって下さい。
  • 状況名(状況ID)を登録するときに旧のサーバーに登録した同じ状況名(状況ID)で登録します。状況名(状況ID)だけ状況名(状況ID)追加を繰り返します。
  • 最初に旧サーバーからPCにダウンロードしてきた状況名(状況ID)以下のディレクトリから必要なファイルを新サーバーの同じ場所に上書きでアップロードします。
    (必要なファイルがわからない場合は全てのファイル、ディレクトリを新サーバーの同じ場所に上書きでアップロードしてください)
  • もし上書きでアップロードできないサーバーの場合はファイルを一度削除してからアップロードして下さい。
  • 予約フォームがディレクトリ /cgi-bin/calendar/calen_d の下以外に存在するときは同じディレクトリにアップロードします。
    フォームマスター管理者の「初期設定」でテンプレートファイルの場所がうまく設定できているか確認します。
  • 旧サーバーと同じように動作するか確認してください。

設定プログラムファイルで実現できる機能&Tips


# カレンダー自動表示 設定ファイル(Copyright Shigeru Uchida 2009/02/14)
$ver='Calendar Ver 5.09';
$SERV=0;	#------変更不可
$mas_url='';
$HIGH=1;	# =1;(高度設定)、=0;(簡易設定)

# フォームメールプロの設定----------------
# サーバーOSがUnixでsendmailが使用できる場合はパス&ファイル名(プロバイダーまたは管理者に尋ねてください)
$sendmail='/usr/sbin/sendmail -t -oi -f';

# カレンダー表示のHTML書出し時の文字コードをセットします('euc'、'jis'、'sjis'、'' は='sjis')
$charset='';

# ドキュメントルートの下にCGIファイルが設置できるサーバーなら特に変更せずに動作するはずです
# サーバーがウインドウズ系の場合、ディレクトリの区切りが \ になる場合がありますのでご注意ください

# 下記24行目、作業用ディレクトリを作成するディレクトリを指定して下さい
# このスクリプトが存在するCGIディレクトリの直下に作成する場合は変更の必要はありません
# CGIディレクトリの直下以外に作成する場合はCGIが動作するサーバーのルートから指定してください
# 例:$dir_base='/htdocs/home/calendar/data/';  (最後の/は必ず付けてください)
$dir_base='';

# 作業用ディレクトリ名を指定します(特に変更の必要はありません)
$sdir='calen_d';

# データファイルのファイル名(セキュリティ上からも必ず変更してください)
$fd_name='calendar';

# 状況編集画面でタイプと状況の select ラインが合わない場合は $Type_line=1; または $Type_line=2; にセットします
$Type_line=0;

# 環境を自動判定しセット
# $docr_mk=2;(CGI以下のディレクトリにある画像、HTMLファイルがwebで参照できない)$docr_mk=1;(参照できる)
# $from_doc=''; をドキュメントルートから24行目作業用ディレクトリまでのパスを指定します
# 最後の/は必ず付けてください(例: $from_doc='/aaaa/bbbb/'; )
$docr_mk=1;
$from_doc='';

# ドキュメントルートの下にCGIファイルが設置できるサーバーなら必ず変更以外は特に変更せずに動作するはずです
# セキュリティ上から必ずあなた専用のオプションテキストを指定してください
$ENVP='envp';

# サーバーOS設定 自動認識しますが、できない場合は(Unix系) $OS=1; (Windows系)$OS=0;
$OS= $ENV{'PATH'}=~/\\/ ? 0:1;

# サーバーのドキュメント・ルート $ENV{'DOCUMENT_ROOT'} で取得できれば変更する必要はありません
# 例:$EN_DOC='/htdocs/home';  (最後の/は付けないで下さい)
$EN_DOC=$ENV{'DOCUMENT_ROOT'};

# プログラムのファイル名も含めた絶対パス情報 $ENV{'SCRIPT_FILENAME'} で取得できれば変更する必要はありません
# 例:$EN_SFN='/htdocs/home/cgi-bin/calendar/';  (最後の/は必ず付けてください)
$EN_SFN=$ENV{'SCRIPT_FILENAME'};

# cgiをフォームHTMLから呼び出すパス(ドキュメントルートから $ENV_SCR='/cgi-bin/calendar/';)
# $ENV{'SCRIPT_NAME'} で取得できれば変更する必要はありません (最後の/は必ず付けてください)
$EN_SCR= $ENV{'SCRIPT_NAME'}=~/(.*)(\\|\/)/ ? "$1$2":'';

# CGIが動作するサーバーのURL http:// 以下を指定します(WebサーバーとCGIサーバーが同一の場合は不要)
#(例:$host="www.xxx.co.jp";  $host="www.xxx.ne.jp/~mypage"; 最後の/は付けないでください
# 環境変数$ENV{'HTTP_HOST'}で取得できる場合は変更する必要はありません
$host=$ENV{'HTTP_HOST'};

# パスワードファイルのファイル名 パスワード認証をしない場合は $p_name='';
$p_name='.htpasswd';

# データファイルの拡張子
$kaku='cgi';
#------jcode.plのパス&ファイル名
$jcpath='jcode.pl';
#------cgi-lib.plのパス&ファイル名
$clpath='cgi-lib.pl';
#------mimew.plのパス&ファイル名
$mmpath='mimew.pl';

# 表示を許す最高日数
$max_days=120;
# 表示を許す最高月数
$max_month=4;
# 携帯電話に表示する最高日数
$Imaxday=10;

# 編集処理CGIプログラム名 
$cgi='calendar_admin.cgi';
# 表示CGIプログラム名
$cgi3='calendar_display.cgi';
# 編集画面を表示するCGIプログラム名(セキュリティ上からも必ず変更してください)
$cgi1='calendar_edit.cgi';
# フォームを表示するCGIプログラム名(SSL送信を行う場合はこのCGIをhttps://からフルパスで指定しSSL環境で実行します、138行目も同様)
$cgi4='calendar_fmdisplay.cgi';
# 編集画面の標準文字色
$tf_color='#666666';

# スーパーバイザー,マスターとして処理する場合のプログラムの引数
$supermark='super';
$mastermark='master';
# このアドレス以外からの更新を認めない
# 例 @REMOTE_ADDR=('210.xxx.xxx.xx1','210.xxx.xxx.xx2');
# $ENV{'REMOTE_ADDR'} がうまく取れないサーバー、どこからでも編集を認める場合は @REMOTE_ADDR=();
@REMOTE_ADDR=();

# 平日文字色コード、背景色コード
$SET{'weekdays font color'}='color:#666666;font-weight:bold';
$SET{'weekdays bgcolor'}='#CCFFCC';
# 土曜日文字色コード、背景色コード
$SET{'saturday font color'}='color:blue;font-weight:bold';
$SET{'saturday bgcolor'}='#BBF4FD';
# 日祝文字色コード、背景色コード
$SET{'sunday font color'}='color:red;font-weight:bold';
$SET{'sunday bgcolor'}='#FEE7E0';
# 当日文字色コード、背景色コード
$SET{'todays font color'}='color:#009933;font-weight:bold';
$SET{'todays bgcolor'}='#CCFFCC';
# 当日以前文字色コード、背景色コード
$SET{'past days font color'}='color:silver;font-weight:bold';
$SET{'past days bgcolor'}='#EDE9FE';
# タイプ文字色コード、背景色コード
$SET{'type font color'}='color:#666666;font-weight:bold';
$SET{'type bgcolor'}='#FEFEE1';
# イベントタイトル文字色コード、背景色コード
$SET{'event tcolor'}='color:#666666;font-weight:bold';
$SET{'event tbgcolor'}='#FEFEE1';
# イベント文字色コード、背景色コード
$SET{'event font color'}='color:#004000;font-weight:bold';
$SET{'event bgcolor'}='white';
# カレンダー表示全体、罫線色コード
$SET{'tag bgcolor'}='#999999';
# カレンダー下地背景色コード
$SET{'under bgcolor'}='white';

# テンプレートファイルのリンクファイルのパスを自動補正する $auto_sw=1; しない $auto_sw=0;
$auto_sw=1;

# クッキーの書き込みによってブラウザを終了するまでは管理者のパスワード入力を免除 $cook_sw=1; 許可しない $cook_sw=0;
$cook_sw=1;
# 管理者画面を呼び出すCGIファイル名(セキュリティ上からも必ず変更してください)
$fcgi1='formmail_edit.cgi';
# 編集処理CGIファイル名
$fcgi='formmail_admin.cgi';
# フォーム処理CGIファイル名(SSL送信を行う場合はこのCGIをhttps://からフルパスで指定します)
$fcgi2='formmail_pro.cgi';

# クライアントPCにダウンロードする時のファイルの拡張子
$kaku1='txt';
#  フォントサイズ,色
$STYLE=' style="font-size:13px;color:#666666"';
# データ送信先アドレスに以下のキャラクターが含まれていない場合はエラー表示(初期設定ファイルが書き換えられた場合への対応)例 ($mailchk='@www.xxx.co.jp';)
# チェックしない場合は $mailchk='';
$mailchk='';

# パスワード項目で許される文字を指定します(範囲で指定できる時は−でつなぐ)
$PASSOK='0-9A-Za-z-_';
# 半角英数項目で英数以外に許されるキャラクター
$HEISU="-_";
# 一括送信以外で集計処理にfork関数を使う $FORK='x';、使わない $FORK='';
# バイト数を指定するとデータファイルのサイズがそれより大きい場合にfork関数を使う
$FORK=1000000;

# 書き込み可能ディレクトリのパーミッション
$perms='777';

# 半角、全角スペース、改行のみの入力は入力なしとみなす $SPC=1;、みなさない $SPC=0;
$SPC=1;

# 入力された改行コードを以下のキャラクターに変換して送信する($CR='' は改行コードを削除します)
$CR='';

# 全角のカタカナ、ひらがなのチェックを行うときに以下の文字を許す \x40=全角スペース、\x45=・、\x5B=ー、\x7C=− 
$ZEN="\x40\x45\x5B\x7C";

# 項目入力に以下のキャラクターが含まれている場合はエラーとして表示する($NP_char='|!';)
$NP_char='';

# 機種依存文字をwindows $NP_kis='win'; 、Mac $NP_kis='mac';、両方 $NP_kis='win/mac'; に対してチェックする
$NP_kis='win/mac';

# メールアドレスを厳密にチェックする場合は次の #$MAIL_CH= の#を削除してください
#$MAIL_CH=q{(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\}.q{\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff][}.q{^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x}.q{80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-}.q{\xff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(}.q{\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\0}.q{00-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*}.q{\])(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,}.q{;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[}.q{^\x80-\xff])*\]))*};

# フォームHTMLから送信される漢字コードを name=_check から判定せず固定したい場合は#を削除し($KJcode=)指定します (jcode.pl用)
# 'sjis','euc','jis',''   ''は固定せず入力値から判定します
#$KJcode='euc';

# 入力確認画面で入力値に2つ以上の半角スペースが続くときは に変換=1,変換しない=0
$nbsp=0;

# データファイルの1世代前を保存する $NO_old=0; しない $NO_old=1;
$NO_old=0;

# フォーム入力項目値をIDにする場合はその項目名を指定
$ID_name='_id';

# フォームで送信できる最大バイト数(全ての項目を合計して)
$MAX_byte=10000;
$Ascii='[\x00-\x7F]';
$Sjis_twoBytes='[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]';
$Char='(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';

# 入力データのクッキー保存日数($cook_k=''; 2030年まで 、$cook=0; ブラウザ閉じるまで)
$cook_k='';

# ソート可能な最大文字数
$sortbyte=30;

#.htaccess コンフィグレーション機能の使えないサーバー $HTAC=1; 使えるサーバー $HTAC=0;
$HTAC=1;

# HTTP_REFERER チェックを通常送信で 0:行わない 1:行う
$REF_CHK=0;

# HTTP_REFERER チェックを一括送信で 0:行わない 1:行う
$REF_CHK_H=0;

#  メール配信処理でパソコンのデータを処理する $Mlist_sw=1;
$Mlist_sw=0;

# 使用する漢字変換モジュール Jcode =0; Unicode::Japanese =1;
$KJmod=0;

# 送信にSMTPを使う場合は SMTP サーバー名を指定、POP before smtp 
$SOC_host='';
# POP before smtp の場合は以下にPOP3サーバー名、ID、パスワードを指定
$POP_before_smtp='';
$SOC_id='';
$SOC_password='';
# メッセージの終端が LF . LF の場合は $SOC_end='.';、その他は $SOC_end='';
$SOC_end='.';

ファイル配置ディレクトリツリー図

  • ファイルは全てテキストファイルです。
  • (777)はパーミッション ご自分の環境に合わせて適宜変更してください。
    特に777はどの環境でも問題なく使えるパーミッションですがセキュリティーレベルは一番甘い設定です。
    もしご自分の環境で707などもっとセキュリティーレベルを上げても書き込み可能ならそちらに変更してください。
  • ラッパープログラムが動作しているサーバーでCGIを置くディレクトリやCGIの実行ファイルのグループ(group)や第三者(other)に対して書き込み権(w)が設定されているとエラーになってしまいことがあります。
    そのような場合は、CGIが置かれているフォルダのパーミッションは701(rwx----x)、 実行させるCGIファイルのパーミッションは700(rwx------)、 書き込みを行うデータファイルのパーミッションは600(rw-------)に設定するとうまく動作するようですが、使用するサーバーのCGIの設定方法をご確認ください。
  • *1 必要に応じて変更してください。

  /cgi-bin/ (Perlが実行できるディレクトリ)
        |
        |-- calendar/ (CGIプログラムが実行できるパスです)
        |         |-- index.html(ダミー)
        |         |-- jcode.pl
        |         |-- cgi-lib.pl
        |         |-- calendar_set.pl(644)
        |         |-- calendar_display.cgi(755)
        |         |-- calendar_admin.cgi(755)
        |         |-- calendar_edit.cgi(755) 任意の名前
        |         |-- calendar_fmdisplay.cgi(755)
        |         |-- color.html(644、色見本表示用HTML)
        |         |-- taglist?.html(644、置換タグ一覧表示用HTML、6ファイル)
        |         |-- option_help.html(644、オプション一覧表示用HTML)
        |         |-- display_help.html(644、表示用ヘルプHTML)
        |         |-- check.html (644  rw-r--r-- サーバー環境チェック用HTML)
        |         |-- goigoi250.gif (644  rw-r--r-- サーバー環境チェック用画像)
        |         |
        |         | フォームメールプロ関連
        |         |-- formmail_admin.cgi(755)
        |         |-- formmail_edit.cgi(755) 任意の名前
        |         |-- formmail_pro.cgi(755)
        |         |-- formmail_hs.cgi(755) メール配信cron用
        |         |-- _menu_admin.html(644)
        |         |-- _menu_master.html(644)
        |         |-- _menu_std.html(644)
        |         |-- mimew.pl(644)
        |         |
        |         |---- calen_d/ (777、任意の名前)
        |         |          |-- index.html(ダミー)
        |         |          |-- .htpasswd  (777、スーパーバイザーパスワードファイル、自動作成)
        |         |          |-- .htaccess (644、アクセス制限用、自動作成)
        |         |          |-- calendar_holiday.cgi(777、祝日設定ファイル)
        |         |          |-- name.cgi (777 項目名称テーブルファイル)
        |         |          |
        |         |          |---- ID1/ (777、任意の名前) 対象ID1に対応
        |         |          |        |-- .htaccess (644、アクセス制限用、自動作成)
        |         |          |        |-- _formhtml (777、生成フォームHTML保存用ディレクトリ)
        |         |          |        |       |-- _temp (777、生成フォームHTMLテンプレート保存用ディレクトリ)
        |         |          |        |-- _checkhtml (777、フォームメールプロ集計保存用ディレクトリ)
        |         |          |        |-- _backup (777、フォームメールプロバックアップ用ディレクトリ)
        |         |          |        |-- .htpasswd  (777、パスワードファイル、自動作成)
        |         |          |        |-- calendar.cgi  (777、データ保存ファイル、自動作成)
        |         |          |        |-- calendar_LOC  (777、ロックファイル)
        |         |          |        |-- index.html(ダミー)
        |         |          |        |-- indexV.html(777、縦七曜表示用テンプレートファイル)
        |         |          |        |-- indexH.html(777、横七曜表示用テンプレートファイル)
        |         |          |        |-- indexT.html(777、タブ横表示用テンプレートファイル)
        |         |          |        |-- indexX.html(777、タブ縦表示用テンプレートファイル)
        |         |          |        |-- indexW.html(777、タブ七曜表示用テンプレートファイル)
        |         |          |        |-- indexI.html(777、携帯表示用テンプレートファイル)
        |         |          |        |-- indexS.html(777、スマホ表示用テンプレートファイル)
        |         |          |        |
        |         |          |        |  index?E.html は各英語表示のテンプレートファイル
        |         |          |        |
        |         |          |        |-- FM_calendar.cgi (777、予約フォームデータファイル、自動作成)
        |         |          |        |-- FM_calendar_dc.cgi (777、フォームメールプロ設定ファイル、自動作成)
        |         |          |        |-- FM_calendar_tmail.cgi (777、ありがとうメール設定ファイル、自動作成)
        |         |          |        |-- FM_calendar_LOC (777、フォームメールプロ・ロックファイル)
        |         |          |        |
        |         |          |        |-- _tmp (777、メール配信用ディレクトリ)
        |         |          |        |      |-- _denbun (777、メール配信電文テンプレート保存用ディレクトリ)
        |         |          |        |      |-- _header (777、メール配信ヘッダーテンプレート保存用ディレクトリ)
        |         |          |        |      |-- _footer (777、メール配信フッターテンプレート保存用ディレクトリ)
        |         |          |        |      |-- FM_calendar_LOC (777、メール配信・ロックファイル)
        |         |          |        |
        |         |          |
        |         |          |---- ID2/ (777、任意名) 対象ID2に対応
        |         |          |        |
        |         |          |        | 以下ID1と同一構成
        |

【送信用予約フォームHTMLを任意に場所に置く場合】
  /index.html/ (ドキュメントルート))
        |
        |-- 任意のディレクトリ/ (777、任意名)
        |      |-- 状況ID/(状況IDのディレクトリ名)
        |      |      |-- ????.html(777、送信用予約フォームHTML)
        |      |      |

使用講習会、説明会をご指定の場所で開催させていただきます

 本サイトの CGI は高機能で何でもできますが、高機能のため使用方法を完全に理解するためには説明を受けた方が解りやすいと思います。京阪神奈の制作会社様には使用講習会、説明会をご指定の場所で開催させていただきます。最下段のメールアドレスまでお問い合わせ下さい。(場所が京阪神奈以外の場合は実費交通費が必要です)

インストール、CGI制作の請け負い

 本サイトのプログラムは今までに CGI をインストールされた方なら簡単にインストールしていただけますが、設定も含めたインストール、サイト構築作業、CGI制作を請け負うことも可能です。お問い合わせページからご連絡ください。

GOiGOi Projectではフォームメール、WhatsNew(汎用データベース)、ページ自動生成、ページ更新、空き情報・予約など、ホームページを管理、運営する上でどうしても必要になってくるCGIをプロ仕様で提供しています。全てのプログラムは汎用CGIとして開発されていてどのようなサイトでもご使用いただけます。また、CGI制作も承ります。