Hatena::ブログ(Diary)

Yanagi Notes

2009-03-11

CakePHP1.2 HTMLヘルパーの日付コンボを年月日で表示する

| 17:40

CakePHPHTMLヘルパーを使って年月日のコンボを表示する。

$form->dateTimeはseparatorを設定できるんだけど、「○○年○月○日」という形で表示したいのでヘルパーをカスタムする。

コントローラー

<?php

$attr = array(
	'minYear' => 2000,
	'maxYear' => date('Y'),
	'separator' => array('', '', ''),
	'monthNames' => false
);
$this->set('attr', $attr);

?>

cake/libs/view/helpers/form.phpをapp/view/helpers/form.phpにコピーして以下の箇所を編集。


<?php

// $opt = implode($separator, $selects);

$opt = "";  
$i = 0;  
if (is_array($separator)) {  
	foreach($selects as $select) {  
		$opt .= $select.$separator[$i];  
	$i++;  
	}  
} else {  
	$opt = implode($separator, $selects);  
}
?>

ビュー


<?php 
echo $form->dateTime('App.publication_date', 'YMD', 'NONE', date('Y-m-d'), $attr);
?>


参考にさせていただきました

http://www.syuhari.jp/blog/archives/192

http://monoko74.blog90.fc2.com/blog-entry-8.html

http://www.happyquality.com/2009/02/21/797.htm

トラックバック - http://d.hatena.ne.jp/ele-yana/20090311/1236760830