Helperを作ってみる

user-pic
0

ここまでPHPやCakePHPを勉強してきましたが,コードらしいコードを全然書いていません。これではいけない。そろそろ準備段階を終えてPHPでコーディングしなければと思い立ち,一つ書いてみました。

書いたのは,カレンダーを表示するHelperです。最初にコーディングするのがHelperというのも,変わり者っぽいですが,CakePHPよりもPHPになれる意味合いが強いです。

カレンダーヘルパー(CalendarHelpher)の仕様

  1. 横一列に1週間が表示される普通に市販されているようなカレンダーを一月分表示することができる
  2. 祝祭日を判断し休日のセルの書式を変更できる
  3. 祝祭日や登録したスケジュールをセルの中に表示できる
  4. カレンダーの大きさは大中小の3段階を選択できる
  5. cssを変更することで表示書式を自由に変更できる

とおよそこのような機能を持つHelperです。 

ソースをダウンロードする(バグだらけの可能性があります)

使用法

ダウンロードしたファイルを解凍して出てきたcalendar.phpをappフォルダのviews/helpersフォルダにコピーします。

同じくcalendar.cssをappフォルダのwebroot/cssにコピーします。

controllerで$helpersの中にCalendarを加えます。

var $helpers = array('Html','Calendar');

cssを有効にするために,layoutまたは表示するthtmlファイルでcssファイルを読み出す記述をします。

<?php echo $html->css('calendar');?>

カレンダーを表示するビューには,

$calendar->showCalendar(2008, 5)

とするとカレンダーが表示されます。カレンダーの大きさを変えたい場合はsetTableSizeメソッドで変更してからshowCalendarを呼び出します。サイズの初期値はmです。

$calendar->setTableSize('m');	// 標準のサイズ
$calendar->setTableSize('s');	// 小さいサイズ
$calendar->setTableSize('l');	// 大きいサイズ 

 カレンダーに祝祭日やスケジュールを表示するにはフラグを設定します。

$calendar->showSaijitsu = true;	// 祝祭日を表示します
$calendar->showSchedule = true;	// スケジュールを表示します

スケジュールは,addScheduleメソッドで登録します。

$calendar->addSchedule($year,1,7,'新年会');

このような感じです。次のようなthtmlを記述して表示させますと

<?php
	$year = 2008;
	echo "<h2>$year 年のカレンダー</h2>";
	$calendar->showSaijitsu = true; 
	$calendar->showSchedule = true;
	$calendar->setTableSize('s');
	$calendar->addSchedule($year,1,7,'新年会'); 
	$calendar->addSchedule($year,1,15,'ミーティング'); 
	$calendar->showCalendar($year,1);
?>

次のようなカレンダーが表示されます。

サイズをsにして,祝祭日などを表示させないようにすると次のように小さくシンプルになります。

書式については,calendar.cssというcssファイルを作りました。このcssを編集することでカレンダーのデザインを自分好みに変更できます。

作ってみて

第○月曜日とか振替休日とか春分・秋分の日にも対応していますので結構便利に使えると思います。もともとはVBAで作成していた万年カレンダーをPHPに移植してみました。PHPのイロハもまだな僕にとっては,何かある度にオンラインマニュアルやらGoogleの世話になりました。制御構造文ひとつの書き方にしても,試行錯誤の繰り返しでした。しかしテスト用のviewファイルにコーディングしたり,それをまとめてHelperに仕上げることでPHPでのコーディングに少しは慣れることができたように思います。

トラックバック(0)

トラックバックURL: http://php.sunvisor.net/mt/mt-tb.cgi/60

コメントする

このブログで公開した情報は,のちほど Sunvisor Lab. CakePHP のコンテンツにまとめていますので,そちらも参照してみてください。

オススメの本

CakePHP初の公認ガイドブック。まずこれを読む。

CakePHPでの開発の際には常に机上に準備するべし。

CakePHP 1.2を使い始めるならこの本が必携。

CakePHP 1.2での実践が理解できる。

このブログ記事について

このページは、Sunvisorが2007年12月 4日 14:53に書いたブログ記事です。

ひとつ前のブログ記事は「複数のappフォルダ」です。

次のブログ記事は「Ajaxにトライ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。