シンプルカレンダ作成!
Pearカレンダの基本
Pearのなかにある、Calendar_Month_Weekdays()クラスに挑戦します。
これを使用するとカレンダが一気にできてしまいます。
Pearカレンダの作成については紹介するWEBサイトや書籍があるのですが、初心者には難解です。
ここでは、もっともシンプルなカレンダをPearで作成します。
ファイル内容は、左サイドナビ「シンプルカレンダ」の中の
「シンプルPearカレンダファイル」
から見てください。
コメントばっかりのファイルです。
PearカレンダはXAMPPのなかに最初からインスト-ル済み
C:\xampp\php\pear\Calendar\Month
の中にありますので無意識に使用することができます。
2016/4/4日 以下6行追加。
XAMPP 5.6.19 版以降では Pear::Calendar はインスト-ルされていません。
XAMPP アップデ-ト データ復元
を参考に、
PEAR::Calendar
をインスト-ルします。
又、レンタルサ-バにはPearはインスト-ルされていないことが多いようです。
左側のサイドナビの「Pearを始める準備」のなかの「レンタルサ-バにPearをインスト-ル」を見てください。
インスタンスの作成
require_once 'Calendar/Month/Weekdays.php';
で、まずはカレンダクラスを取り込みます。
次に、new Calendar_Month_Weekdaysインスタンスを作成します。
もっとも単純な例は
$Month = new Calendar_Month(2015, 4, 1); // 2015年4月 月曜日スタ-ト
です。最後の引数1は月曜日スタ-トを示します。
これで、2015年4月の月曜日スタ-トのカレンダのインスタンスができあがりました。
サンプルファイルでは、少し複雑です。
$Month = new Calendar_Month_Weekdays(date('Y'), date('n'));
としています。
date('Y')で今日現在の年、
date('n')で今日現在の月、
曜日スタ-トは省略、指定しない場合は1、よって最初の曜日は月曜日
となった月曜日スタ-トの現在の月のカレンダインスタンスが完成します。
Calendarの初期化
カレンダインスタンスを初期化します。
$Month->build();
で、Calendarの初期化メソッドを完了します。
カレンダ出力
fetchメソッド
while ($Day = $Month->fetch()) {
で、カレンダの日を出力していきます。
fetch()メソッドは、日付の昇順で1回に1つの子供を返します。
最後の要素に達した後は、false を返してコレクションをリセットします。
すなわち、もうそれ以上子供が見つからない場合には FALSE を返します。
そして自動的に内部の子供の集合がリセットされます。
よって好きな回数だけこれらをループさせて使用することができます。
<tr>と</tr>の出力
isFirstメソッドで週のはじまりを判断し、<tr>を出力、 isLastメソッドで週の終わりを判断し、</tr>を出力、 します。
空白の出力
isEmptyメソッドを使用して、日にちが入らない部分に空白を挿入します。
echo "<td> </td>";
$Dayはどこから来た?
$Dayは連想配列で名前はなんでもかまいません。
For文のiとかjと同じです。
まず、$Dayを配列のトップにして作業開始・・・配列の最後までいって、
なくなったら終わりです。
シンプル Pear カレンダ動作確認 に続く