JS Calendar

~ はじめに ~

みなさん、こんにちは、こんばんわ~

今回は、自作Webアプリ、”JS Calendar” の紹介です。

以前作成した ”BCalendar” を、言語をRubyからJavaScriptへ変更しリメイクしたものです。

ブログやホームページの片隅にインラインフレーム設置するウィジェット型のWebアプリです。

今見ている、この記事の右上にあるカレンダーが、”JS Calendarです” w

~ 概要 ~

≪著作権および免責事項≫
本ソフトはフリーソフトです。自由にご使用ください。
尚,著作権は作者である “XERO System” が保有しています。
このソフトウェアを使用したことによって生じたすべての障害・損害・不具合等に関しては、私と私の関係者および私の所属するいかなる団体・組織とも、一切の責任を負いません。
各自の責任においてご使用ください。

”JS Calendar” は、JavaScript(JQuery) + HTML + CSS + PHP + XML の言語を複合して作成しました。

JavaScript をベースに作成していますが、ローカルでは正常に動作しません。サーバーに設置することが、前提となります。

PHP を使用しているので、PHPが稼働するサーバーに設置してください。

特別日 (”休日”、”営業日” など) を登録できます。

独自のカレンダークラスを作成。
※ このクラスで使用している祝日テーブルをこちらで説明しています。

西暦1年から表示可能。
※ グレゴリオ暦、ユリウス暦を自動判定。

実史通りの当時の祝日を表示。

スケジュールモード、ログインモード(特別日登録、スケジュールトピック登録)を搭載。
※ 特別日、スケジュールトピックを XML に出力。

~ ダウンロード、サンプル ~

まずはダウンロードしましょう!こちらから ⇒ download

動作を確認したい方は、こちらから ⇒ サンプル

ダウンロードしたファイルを解凍して、FTP でサーバーにアップロードしましょう。
FTP クライアントは、いくつかありますが、定番の FFFTP の利用をおススメします。
※ わたしは、WinSCP を利用しています・・・w

解凍すると、calendar フォルダが出来ます。

calendar フォルダを開いて、訂正の必要なファイルがありますので、それをテキストエディタで開いてください。

このテキストエディタは、utf-8 エンコードの出来るものを使ってください。
(プログラムソースが utf-8 で書いている為)
windows10の方はメモ帳でもいいですが、他のOSの方はメモ帳以外のテキストエディタをご用意ください。
おススメは、Notepad++、サクラエディタですが、他にも色々なエディタがありますので、お好みのものを見つけるのも良いかもしれません^^ (utf-8 が扱えるもの)
※ わたしは、Visual Studio Code を使用しています・・・w

~ 設置 ~

ダウンロードしたら、calendar フォルダの中の login.php をテキストエディタで開いて訂正してください。
例えば、root フォルダ直下に sample フォルダを作って、アップロードする calendar フォルダ名を jscal に変更する場合は、下記のようにします。
※ root フォルダ直下にアップロードする場合は、$setdir = ‘/calendar’;

// カレンダーを設置したフォルダ
$setdir = '/sample/jscal';

login.php の訂正が終わったら calendar(または変更したフォルダ名) フォルダをまるっとアップロードしてください。
※ 下記では、root 直下に calendar フォルダを設置していますが、任意のフォルダの下でも構いません。

(root)
   |
   +- /calendar/ [755]
         |
         +- /.admin/ [755]
         |      |
         |      +- .htaccess [644] ... アクセス制御
         |      +- index.html [644] ... 管理者ページ用
         |      +- write.php [644] ... XML書込み
         |
         +- /data/ [755] ... 特別日データフォルダ
         |
         +- calendar.js [644] ... 本体スクリプト
         +- class.js [644] ... カレンダークラス
         +- exist.php [644] ... XML存在チェック
         +- holiday.js [644] ... 祝日テーブル
         +- index.html [644] ... メインページ
         +- login.php [644] ... 管理者サインアップ
         +- method.js [644] ... メソッド
         +- schedule.html [644] ... スケジュール表示ページ
         +- style.css [644] ... CSS

ファイル名の右の [nnn] は、パーミッション設定ですが、特に設定せずとも、アップロードした時点でこのようになってると思います。
※ レンタルサーバーによっては、644 → 604、755 → 705 などの指定があるかもしれませんので、サーバーのルールに従ってください。

data フォルダの中は空っぽです。特別日やスケジュールトピックを登録すると、XML ファイルが自動的に生成されます。

さて、ここまで準備ができたら、いよいよ設置となります。

自分のページの設置したいところ(WordPress であれば、カスタムHTMLウィジェット)に、下のHTMLタグを入力してください。
※ 下の例は、calendar フォルダを root 直下に設置した場合。

<iframe src="http://example.com/calendar/" style="height: 380px" scrolling="no"></iframe>

~ 動作確認 ~

設置が終わったら、実際にページを表示してみてください。

カレンダーが表示されていれば、設置成功ですw

~ 通常表示カレンダー ~

カレンダー上部の年、月は、それぞれに直接入力ができます。

下の ”< Prev” は前月、”Next >” は次月へ移動します。

文字色は、平日が黒、日曜日が赤、土曜日が青で表示されます。

祝日は、文字色は赤でアンダーラインが付きます。

”今日” は、文字の背景色がオレンジで表示されます。

特別日を登録してる場合は、日付のセルの背景が緑になります。

カレンダー下部右側の ”Schedule” でスケジュールカレンダーを表示します。

カレンダー下部左側の ”Login” で、特別日、スケジュールトピックの登録画面を表示します。
※ 初めて ”Login” を押すと、管理者IDの登録画面が出ます。

~ スケジュール表示カレンダー(Schedule) ~

通常表示カレンダーで ”Schedule” を押すと、
この画面が表示されます。

カレンダー上部の年月ボックス、Prev、Next ボタンは、
前述した通常カレンダーと同様です。

通常表示カレンダーとの相違点は、スケジュールが
登録されている場合は、そのスケジュールが表示されます。

カレンダー下部右側の ”X Close” でスケジュール表示カレンダーを閉じます。

カレンダー下部左側の ”Login” で、特別日、スケジュールトピックの登録画面を表示します。
※ 初めて ”Login” を押すと、管理者IDの登録画面が出ます。

~ スケジュール登録カレンダー(Login) ~

通常表示カレンダー、又はスケジュール表示カレンダーで
”Login” を押すと、この画面が表示されます。
※ 管理者IDを登録していない場合は、管理者IDの登録画面が
出ます。

カレンダー上部の年月ボックス、Prev、Next ボタンは、
通常表示カレンダーと同様です。

スケジュール表示カレンダーとの相違点は、特別日、
スケジュール登録ができます。
各日の日付の右には、特別日を登録するための
チェックボックスがあります。
各日の日付の下は、テキストボックスとなっており、
文字を入力することができます。
チェックボックス、スケジュールトピックを入力したら、
カレンダー下部左側の ”Update” を押すと、
登録状況が更新されます。

カレンダー下部右側の ”X Close” でスケジュール表示カレンダーを閉じます。

~ 管理者ID登録 ~

管理者のIDを登録します。

ID、パスワード作成ルール。
・先頭の文字は「半角アルファベット(大小文字)」である事!
・IDには「半角アルファベット、半角数値」以外の文字は使用不可!
・長さは4文字以上

ID、パスワードは、大文字、小文字を区別しますので、
忘れないようにしてください。

~ おわりに ~

ここまでで JS Calendar の説明は終了です。

これまでにカレンダーアプリは、様々な言語で作ってきましたが、このカレンダーがWebアプリとしてのほぼ理想形となりましたw

既に紹介していますが、Ruby で作成した BCalendar、公開はしていませんが、この JS Calendar の前身となる、PHP で作成したスケジュールカレンダーがあります。

これらのカレンダーで、ずっと悩み続け、実現できなかった機能を実装することができました。

なので、ほぼ理想形となったわけですw

ちなみに、コンソールアプリや、.NET フォームアプリでもカレンダーを作っていますので、とにかくカレンダープログラムが好きなんですよねw

これからもやりたい言語が出てくるたびに、カレンダーを作成すると思いますが、その時にはまた公開すると思いますので、よろしくおねがいします ^^

最後まで読んでいただき、ありがとうございました ^^


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です