2008年11月アーカイブ

みなさん、WEBサイトで日付を入力するのって大変ですよね。
そこで、JavaScriptで現在稼働中のサイトでもすぐにカレンダーの入力が出来るようになる物を紹介したいと思います。

株式会社スプーキーズ様がSpookies LabsでProtoCalendarを公開されております。
デモはこちらで色々な入力フォームに使用できます。

デモの日本用のカレンダーの日曜が右端だったので日曜を左端に持ってくる書き方をメモっておきます。


引数を2つ指定するだけでした。
一つハマったのが、編集画面などでデータが「2008/11/22」ではなく「2008-11-22」のようになっていると入力フォームの初期値が消えてしまいました。

株式会社スプーキーズ様いい物をありがとうございます。

お客さんの要望で複数行のリストを直接リストの画面で編集したいと 言われて作った時に困った入力チェックの方法を覚書しておきます。
シチュエーションは注文カートに注文情報を入れてるリストで 数量を一気に変えたいというものでした。
まずビューで登録されている注文の商品と個数を一覧に出します。
<table>
  <tr>
    <th>商品名</th>
    <th>値段</th>
    <th>数量</th>
  </tr>
  <?php foreach($lists as $key=>$val) { ?>
  <tr>
    <td><?= es($val['Order']['name']) ?></td>
    <td><?= es($val['Order']['price']) ?></td>
    <td><?php echo $form->input("Order.{$key}.num", array('type' => 'text')); ?></td>
  </tr>
  <?php } ?>
</table>
<input type="submit" name="recalc" value="再計算" >
ここで数量のところをテキスト入力にしておいて再計算ボタンを押して$this['Order'][キーの番号]['num'] という風にコントローラに持ってきます。
これをモデルに渡して数量の入力チェックをかけます。
//注文リストの変更の際の入力チェック
function orderValidates($data) {
    $chk =& Validation::getInstance();
    
    //注文リストに入れる際に入力チェックをする
    foreach($data['Order'] as $key=>$val) {
    	if (empty($val['num']) || !$chk->numeric($val['num'])) {
            $this->validationErrors[$key]['num'] = '数量が不正です';
    	}
    }
    //結果の返却
    if (count($this->validationErrors) > 0) {
    	return false;
    }
    return true;
}
これで数量の入力チェックでエラーが出た時にエラーの行の数量のテキストエリアの 隣に「数量が不正です」とメッセージをcakeが自動で出してくれました。
関西では久しぶりというPHPの勉強会です。
kunitさんらがKOFに絡めてPHPの勉強会でもやりましょうかという突発的な感じで始められた今回の勉強会です。
勉強会の3日前にevents.php.gr.jpで募集をかけたにもかかわらず当日行ってみると満員との事にかなりの驚き!!
関西にもPHPの情報を欲しがっている人は一杯居るんだなと実感しました。
とりあえず勉強会の内容を書いていきたいと思います。

PHPUnitのこんな機能知ってる? (kunit)
トップバッターはkunitさんのテストのお話です。
まず最初にseleniumの紹介をサラッとされて本題の「PHPUnit + seleniumRC」の組み合わせで自動でテストをしてみようというもの。
seleniumRCとはseleniumテストを遠隔操作するための製品ということで開発環境とは別にselenium-serverを立ててそこにテストを流し込んでいくものみたいです。
メリットはブラウザの種類だけselenium-serverを用意しておくと一つのテストケースで全てのブラウザのテストが出来てしまうという事だと。
ここでPHPUnitで作ったテストケースをseleniumRCにドバット渡して自動でテストをガリガリしてくれるという感じでした。
用意する時間が無かったみたいなので実装まで見ることが出来ませんでしたがすごく便利そうな機能だなと思いました。(見たかった残念!!)

CakePHPとか (shin1x1)
次にshin1x1さんのCakePHPについてのお話です。
CakePHPを導入するに当たってフレームワークに行こうとしたきっかけや、フレームワーク選定はどういう基準で行ったかという話でした。それを聞いてまったくうちと同じだなという感じでした。
CakePHPを選んだ基準は
1.php4/5どちらでも動く
2.他のフレームワークに比べてゆるい構造
3.日本語の文献が多かった
4.Rubyの思想で作っているので最悪Rubyに乗り換えれる
5.分かりやすかった
と他にもおっしゃっていたと思うのですがこれらの理由で決めたということでした。
何より分かりやすかったというのが一番の決め手だと言っておられました。
最後にCakePHP関西を開催するということも!!

PHPScraping2008 (させざき)

最後にさせざきさんのPHPScrapingについてのお話です。
PHPScrapingとはHTMLを取得して取り出したいデータを取り出して再利用すると言うものだったと思います。
ライブラリの説明と構造を追ってどういう処理を行っているという事をおっしゃっておられました。
途中ZendFramworkを使って作っておられるのかなと言う部分も見受けられて参考になりました。

というわけで急遽決まった勉強会なのにお三方ともに素晴らしい講義ありがとうございました。すごい勉強になりました。
懇親会も技術談話に必死に喰らいついていきながら美味しいお酒が飲めました。非常に満足です。
これを機に関西でも勉強会が定着してくれたらなと思っています。