【CakePHP】CakePHP2.xで、PEARのCalendarを使ってカレンダーを作成する方法

CakePHP
記事内に広告が含まれています。

カレンダーを利用したスケジュール管理系のページが必要になったので、PEARのCalendarを使って作成することにしました。

以前(5年ぐらい前)既に作ったことがあるので、そのソースを蔵出ししつつ、CakePHP2.x系(2.3.6)にて作成する方法を忘備録を兼ねたポストで紹介したいと思います。

1. ライブラリのダウンロードと設置

1-1. 本体、マニュアル

本日時点で、

Version: 0.5.5
Release date: 2010-06-24 13:46 UTC

なお、手元にあったのは0.5.4。
あんまりというか全然アップデートされていませんね。

マニュアルはコチラ。日本語で読みやすいです。

 

1-2. 祝日判定

せっかくなので、PEAR の Date_Holidays_Japan を使って日本の祝日判定もするようにしてみます。

 

ダウンロードはコチラから。

 

1-3. ライブラリを設置

ダウンロードした Calendar-0.5.5.tgz 及び、Date_Holidays_Japan-0.1.2.tgz を展開し、app/Vendor にコピー(設置)します。

Vendor/PEAR および Vendor/HOLIDAY ディレクトリは新規作成して下さい。
展開後はこんな感じで。
(2)・(3)・(4)のファイルについては後述します。

 

(1) app/Vendor/include_path.php

PEAR Calendarへのパスを設定します。中身は以下の数行だけでOkです。

 

祝日判定に必要なルーチンの作成

(2)・(3)・(4)は、日本の祝日判定ルーチンです。
戴いたか、どこかで公開されていたコードを修正とか追加とかしたような気がするのですが、全く思い出せません…。

せっかくなので、知識の共有ということで公開してみます。
ちなみに、祝日法が改正されたり天皇陛下が崩御されたりすると修正が必要になりますので、注意してください。

ちと長いです。

(2) app/Vendor/HOLIDAY/holidays/ja/holidays.php

 

(3) app/Vendor/HOLIDAY/holidays/abstract_holidays.php

祝日名取得呼び出しルーチン

 

(4) app/Vendor/HOLIDAY/holiday.php

祝日名取得ルーチン

 

以上で、必要な外部ファイルの設置が完了。

 

app/Controller/SchedulesController.php

ScheduleController を作り、とりあえずはカレンダーの表示をさせてみます。

 

app/View/Schedules/index.ctp

最後にビューファイルを作成。

 

CSS

適当にCSSも作成します。参考程度にどうぞ。

 

動作確認(サンプル)

以上で、このようなカレンダーが表示されます。

サンプルカレンダー 2013 05

サンプルカレンダー 2013 09

手順を覚えれば簡単にできそうですね。

 

関連するかもしれないポスト

 

CakePHP
スポンサーリンク
シェアする
toogieをフォローする
タイトルとURLをコピーしました