CakePHP ver1.2.0.7296 RC2で確認しました。
いままで、Formヘルパーを修正しないと表示されませんでしたが、オプションの’monthNames’ => falseで、数値で表示されるようになりました。
使い方 例)
< ?php echo $form->input('fieldName', array('type' => 'datetime', 'dateFormat' => 'YMD', 'timeFormat' => '12', null, 'monthNames' => false, 'label' => false, 'div' => false, 'error' => false)); ?>
< ?php echo $form->month('$fieldName', $selected = null, $attributes = array('monthNames' => false), $showEmpty = true); ?>
Formヘルパーの該当ソース箇所)
cake/lib/views/helper/form.php
P.1658
function __generateOptions($name, $options = array()) {
省略……
case 'month':
if ($options['monthNames']) {
$data['01'] = __('January', true);
$data['02'] = __('February', true);
$data['03'] = __('March', true);
$data['04'] = __('April', true);
$data['05'] = __('May', true);
$data['06'] = __('June', true);
$data['07'] = __('July', true);
$data['08'] = __('August', true);
$data['09'] = __('September', true);
$data['10'] = __('October', true);
$data['11'] = __('November', true);
$data['12'] = __('December', true);
} else {
for ($m = 1; $m < = 12; $m++) {
$data[sprintf("%02s", $m)] = strftime("%m", mktime(1, 1, 1, $m, 1, 1999));
}
}
break;
CakePHP 1.2.0.7296-rc2で確認したのですが、h()関数がアップデートされていました。
cake/cake/basics.php
function h($text, $charset = null) {
if (is_array($text)) {
return array_map('h', $text);
}
if (empty($charset)) {
$charset = Configure::read('App.encoding');
}
if (empty($charset)) {
$charset = 'UTF-8';
}
return htmlspecialchars($text, ENT_QUOTES, $charset);
}
App.encodingは、cake/app/config/core.phpで設定します。
/**
* Application wide charset encoding
*/
Configure::write('App.encoding', 'UTF-8');
CakePHP Users in Japan フォーラムから訪問された方ありがとうございます。
フォーラムでcakePHP: h()関数のクオート変換モードのカスタマイズ
が紹介されていたとは、昨日まで気付きませんでした。
すみません。最近CakePHP関連の記事が少ないです。
上記記事の開発(2007年11月)を最後に、CakePHPを利用した開発案件が先週までなかったせいです。
とはいえ、それでは本当に申し訳ないので大急ぎでネタを用意しました。
先週の開発で行った「htmlspecialchars()関数クオート変換モード」の対応を発表します。
CakePHPのコア部分に手をいれたくなかったので、
app/config/bootstrap.phpに以下のような関数を新たに追加しました。
function h2($text, $quote_style=ENT_QUOTES) {
if (is_array($text)) {
return array_map('h', $text, $quote_style);
}
return htmlspecialchars($text, $quote_style);
}
CakePHP Stable: 1.1.19.6305で動作確認しています。
既存システムとか開発途中ですと、この関数に修正するのは大変ですが。。。
via Event Entry::第2回CakePHP勉強会
第二回CakePHP勉強会が開催されるそうですが、既に満員みたいです。
自分は多忙なので行けないけど、次回があれば参加したいですね。
IDEA*IDEA さんにCakePHPでCSVファイルをダウンロードさせたいときの作法 | IDEA*IDEA という記事が掲載されていました。
The Bakery! だと
という別のアプローチでのCSV出力方法が投稿されています。
デバッグ情報の出力設定をしているとデバッグ情報も出力されてしまうので、CSV出力の時だけオフにするようにコントローラに以下の記述をすると良いでしょう。
Configure::write('debug', '0');
![]()
CakePHPオフィシャルサイトがリニューアルされていたのですね。
CakePHP のおいしい食べ方さんのCakePHP1.2ベータ+サイトリニューアルで知りました。
ブログでThe Bekary::New Year, New Betaを紹介したとき気付かないと、自分……
訊かれたので、忘れないようにメモ。
CakePHP1.1系では、重複チェックは自分で作り込む必要があります。
参考になる情報:
hetimaの日記::CakePHP の重複チェックをクールに決める
→hetimaさんが、1.2系バリデーションを1.1系に組み込んで重複チェックをする方法を掲載しています。
The Bekary::Checking for duplicate records (unique record)
→hetimaさんが参考にされたThe Bekaryのページ
CakePHP Users in Japan::モデルの重複チェック
→CakePHP Users in Japanにも投稿がありますね。
The Bekary::New Year, New Beta
新年早々CakePHPのニューリビジョンがリリースされました。
追記[2008/01/04]:
重要なことを書き忘れました。
バージョン1.2系はベータ版になりました!!
2008年1月9日にCakePHPの書籍が出版されるようです。
著者の秋田 真宏さんは2007/2/7に開催されたCakePHP勉強会の発表者の一人です。
「CakePHP コントローラーからヘルパーを読み出す方法」を訊かれたので、備忘録として掲載します。
情報元:cakebaker:How to use a helper in a controller
class UsersController extends AppController {
function index() {
loadHelper('Html');
$html = new HtmlHelper();
debug($html->link('Cake!', 'http://cakephp.org'));
}
}