データベースのデータをFullCalendarのeventsデータとしてどう反映させるか

先日から、FullCalendarを利用して予約管理システムのデータ表示に使おうと調査とテストを繰り返している。その中で、

eventsデータは、JavaScriptの<script>~</script>記述の中に書く

ことは理解できました。しかし、問題はそこからでした。json形式のデータをphpなどの外部プログラムあるいは、ファイルから指定可能なのですが、

参考:サイト
http://www.dn-web64.com/archives/web/fullcalendar/

いずれにしても、ファイル書き出しか、プログラムによるJavascriptからのデータベース接続が発生してしまうわけです。

ファイル書き出しをすることになると、やはりIOの物理的なパフォーマンスの悪化につながりますし、WordPressプラグインの開発をしているのに、別のphpからDBアクセスをおこなうphpプログラムを書くのも、DB接続情報を記述することになるので、どうにかして、WordPressのプラグイン内で自動生成できないかと考えました。

ということで、現在の回答なのですが、Eventsデータをデータベースから取得したデータで動的に作るというやり方にしています。

$('#calendar').fullCalendar({
events: ※ここの部分をデータベースデータで動的に作成する
});

作成途中のメモなので、最終回答は別途になるきますが、下記のようになりました。とサンプルスクリプトをご紹介したいところですが、表示スタイルを用意していないので、のちに準備したときに下記は修正させてください。

add_action( ‘wp_print_footer_scripts’, ‘out_fullcalendar_script’ ); //アクションフック指定は調整要
function out_fullcalendar_script(){

//動的部分以外のスクリプト前半の読み込み
readfile(‘wp-content/plugins/chigyo-reservation/a.js’);

global $wpdb;
$table_name = $wpdb->prefix . ‘table_a’;
$table_name_code = $wpdb->prefix . ‘table_b’;

$query = “select a.room_id,a.ymd,a.start_time,a.end_time,b.name
from {$table_name} a, {$table_name_code} b “;

$rows = $wpdb->get_results($query);

$output_arrays = array();

if($rows){
foreach ($rows as $row) {
$output_arrays[] = array(
‘id’ => ‘1’,
‘resourceId’ => ‘a’,
‘title’ => $row->title,
‘start’ => $row->ymd
);
}
}

echo json_encode($output_arrays);

//動的部分以外のスクリプト後半の読み込み
readfile(‘wp-content/plugins/chigyo-reservation/b.js’);

}

あくまで現時点のやり方です。もっと良い方法が見つかりましたら、改めたいと思います。また、もっと良い方法をお持ちの方がおりましたら、コメントいただけると幸いです。

FullCalendarは無償だけれど、Schedulerは無償ではない

予約管理システムの一覧表示をカレンダー表示にしようという計画を立て、自作すると時間もかかるし、出来栄えをよくするのも大変なので、外部パッケージなどに良いものがないかと探していたところ、ものすごく使い勝手がよさそうなFullCalendarというパッケージを見つけて大変驚き、さらには下記のような部屋毎の予約カレンダーを表示できるというデモのを見つけた。

https://fullcalendar.io/scheduler/

これは待ってましたと思ったのですが、ライセンス縛りがある。

https://fullcalendar.io/scheduler/license/

Commercial License
有償ってこと
Non-Commercial Creative Commons
無償だけど再配布禁止
GPL License
無償で配布も可能だけれど、ソースコードはオープンソース(開示)してね

私は当面配布の予定はないし、ソースコードもWordpressプラグインなのでオープンソースにし無償となるので、問題はないが、商用利用する方は買っての利用となる。高機能なのだから、当たり前といえば当たり前である。

それにしてもJavascriptでここまで実現できるのはすごいですね。

予約管理システムの予定をFullCalendarに対応させようと思います

年末年始で作成した予約管理システムですが、ステータスは開発中でまだまだプラグインとしての公開は未定ですね。基本的には、既に誰かしらが似たような機能を配布しているような気がするので、オリジナリティが出せるようになったら、正式な配布という心積もりでおります。

さて、そんな予約管理システムですが、改造アイデアが本日浮かびましたので、メモとして残しておきます。

予約機能にはカレンダー表示というのは、なくてはならない機能なのですが、自作するのは正直ありえないなぁとは思っていました。なので、どうにか簡単にカレンダー表示機能を実現できないかなぁと模索をしておりました。

というところで、ネットを探していたところ、FullCalendarというカレンダースクリプトが配布されていることがわかりました。ということで、予約データを表示させたりすることが、容易にできることはわかっていたのですが、予約管理システムのように一人称ではなく、多数のルームに対する予約一覧の機能が必要だろうから、それに対応したようなカスタマイズが必要だろうという心積もりで、さらに読み進めていたいのですが、結論として、なんと、FullCalenderは、そもそも想定があることがわかりました。

https://fullcalendar.io/js/fullcalendar-scheduler-1.9.1/demos/simple.html

これを見たら、もう完璧に予約一覧に使えるという結論に達しました。ので、現在の簡易的な予約一覧表示ではなく、カレンダー形式の予約一覧の反映に着手しようと思いました。

ここのところ、仕事が開始されたため、時間がかけられるかというところが、懸念ですが、早めに対応させようと思います。

無料で、ここまでのものが配布されるとは正直びっくりしました。

予約管理システムの開発バージョンを公開します

年末年始の間に開発した、予約管理すステムの開発バージョンを仮公開します。将来的には実用性のあるプラグインとして改善を行っていく予定ですが、休みの間の集大成として、一旦サンプルページを提供いたします。

ログイン画面

動作においてバグを見つけたり、こうした方が便利であるなどの感想をお持ちになられたら、お手数ですが、コメント欄に記入いただけると幸いです。ご協力よろしくお願いします。

WordPress開発環境構築メモ

WordPressの開発を行うことになりましたので、開発環境をパソコン上に構築しました。その際のメモです。

下記のページの導入手順を参考にしながら作成しています。サイトで紹介され利用しているソフトウェア、アプリ、ツール類は、最新バージョンを使いました。特に、インストールに時間がかかったものはありません。トータル1時間弱で、ノートパソコン上でWordPressが動作するようになりました。本当に簡単に開発環境および検証環境が準備できる時代になったと感じました。

参照サイト:http://wplogs.com/wordpress-develop-3/

Pleiades All in One Eclipse ダウンロード

http://mergedoc.osdn.jp/
下記を選択
・windows 64bit  Full edition php
・pleiades-4.7.1-php-win-64bit_20171019

メモ:Eclipseという開発環境はJavaを使った世間一般の大企業の大規模プロジェクトでも利用されているツールです。プロ用といってもいいかもしれません。最近は、言語問わずのスクラッチの開発環境はEclipseでというのが増えてきた感じです。FullでないとWEBサーバーとDBが入っていないので、Fullを選択しましょう。

ダウンロードしたPleiadesを解凍(Explzで?)

c:\pleiadesに保存

メモ:解凍ツールはどれでもいいんじゃないかと個人的には思いました。そこで、2つめの環境を構築する際には、解答を右クリックで選択できる「すべて展開」で行いましたが、問題なく解凍されました。参考にしたサイトの筆者の環境に何かしら問題があったのではないかと想定します。格納フォルダもCドライブ直下でなくとも私は大丈夫でした。ただ、Windowsのディフォルトの解凍ツールだと思ったより解凍に時間がかかりました。

XAMPPの起動

メモ:WEBサーバー、DBがセットになった検証環境がXAMPPとなるのでしょうか。始めて利用することになりましたが、かなり簡単にサーバーが利用できるようになったなぁという印象です。いまどきの言葉では、神ツールという感じです。参考としたページでは英語の設定しかなかったみたいですが、最新版は言語選択はなく、自動で日本語に対応されるようです。タイムゾーンも東京で設定されていました。

WordPressのインストール

WordPress開発環境構築手順(初級編)-WordPressのインストール

メモ:手順に従いインストールすることで、パソコン上でWordPressが立ち上がって完了。Windows上ですべてできるので、Linux/Unix環境だと混乱の元となるフォルダのアクセス権限問題もなく環境の準備ができました。上記手順は、おそらくWordPressのやり方の実践なので、バージョンによっては本家のマニュアルを参考にした方がよいでしょうね。

これまでの文章を読んで、この手順でやってみて問題があったらコメントに質問を記載してもらえれば、わかる範囲で相談にのることも可能ですので、よければコメントください。