Frameworkあべてっく役に立ったり立たなかったりする内容を備忘録的にちょこちょこと。FrameworkTweet前回の続きです。インプットフォームに入力があった際ajaxでリアルタイムバリデーションをかけます。submit時には処理の流れ上でかけます。));}あちこちのサイトを参考にさせてもらってつぎはぎで作ってます。;また、ajaxでバリデートを行う場合、CFormではなくCActiveFormを使うのが一般的だそうでそっちを使うことにしました。フォームビルダも今回は使いません。rules()に設定するそうです。ルールは変数名(配列で複数指定可)、バリデーション型、バリデート内容、適用ページ、エラーメッセージ他もろもろが設定できます。型とバリデート内容を自分で定義することもできるようです。詳細はこちらをご参照ください。init()を作成し、その中で初期値を設定することもできます。–>beginWidgetとendWidgetで囲うと自動でformタグが生成されます。beginWidgetにいくつかパラメータを設定しますが、詳細はまだよくわかってませんwとりあえずこれで値をバリデート後sessionに入れて次のアクションに移動する仕組みができました。Frameworkでフォーム入力を実装してみます。今回はとりあえずプロジェクト作成からインデックスページに入力フォーム表示まで。MySQLデータベースにテーブルt_hoge作成。Frameworkフォルダに行き、yiicでプロジェクトhoge作成。GeneratorでモデルTHoge・コントローラーHogeController・ビューファイルprotected/views/hoge作成。ここまでは多分どんなプロジェクト作る時もだいたい一緒だと思います。こっから下が今回主にやった事です。入力フォームに入れられた値のajaxを使ったバリデートとページ遷移を参考にした方がいいかもです。この辺あやしいです(。$model);でフォームビルダを使う為のフォーム定義を読む設定をしてます。んではその中身を書いていきます。array(‘title’=–>’ほげほげ情報を入力してください’,‘elements’=>array(‘hoge_date’=>array(‘type’=>’text’,),‘hoge_name’=>array(‘type’=>’text’,‘maxlength’=>100,),‘hoge_word’=>array(‘type’=>’text’,‘maxlength’=>10,),‘hoge_type’=>array(‘type’=>’dropdownlist’,‘items’=>THoge::model()->getHogeListOptions(),),),‘buttons’=>array(‘login’=>array(‘type’=>’submit’,‘label’=>’発射’,),),);?>使う入力フォームをelements内に書きます。最後のhoge_typeはDBで定義していないパラメータです。よってこの定義をモデルTHoge内に書きます。hoge_typeはドロップダウンリスト形式のフォームを使うよう設定したので、その内容を定義するメソッドgetHogeListOptions()も書きます。‘ほげタイプ’,ビューを書いていきます。?></div>なお、今回はレイアウトファイルprotected/views/layout/main.phpからパンくずとかナビとか使わないものは消しました。このビューファイルindex.phpはデフォルトでシステムから作成されますが、ここからもいらないものは消してあります。ここまででとりあえず入力フォームが表示できました。(これが正しいかどうかは分かりませんが^^;)今のとこまだあまりフレームワークでよかったてのはありませんねw多分恩恵を受けていくのはAJAXでバリデーションをするとか、この後の処理からだと思います。初心者なのでわかんないことだらけですが、ぼちぼちと書いていきます。Frameworkです。今日はPDFを出力させてみます。PDF出力は、tcpdfというPHPの拡張ライブラリと、ETcPdfという、上記tcpdfをYiiで使う為のラッパーを設置することできるようです。内にtcpdfというフォルダを作ります。上記サイトからETcPdfのPHPファイルETcpdf.phpをダウンロードして、作成したtcpdfフォルダ内に置きます。拡張ライブラリtcpdfをこのETcpdf.phpの横にダウンロード・展開します。このダウンロードしたtcpdfもtcpdfというフォルダに入ってます。このフォルダ名を変更する場合ETcpdf.php内で設定されてるパスも変更する必要があります。ETcpdf.phpに若干バグ?があるようなので修正します。Yii::app()->getRuntimePath());}に変更。wでは書き出しテストを。使用してるコントローラーMogeにテスト用コードを埋めます。コードはプラグインサイトのをほぼマルコピです。“I”);}...これでhttp://hoge.com/hoge/moge/publishpdf/にアクセスしてPDFが画面に表示されればおkです。(ニコ動の某ボブ絵画教室風に)ね、簡単でしょうwなお、上のテスト用パラメータの書き方は、Yii用に特別とかはなくtcpdfの一般的な書き方と同じみたいです。FrameworkTweetURLパスを、ファイル名やGETパラメータが出ない今風のナウい感じにしたいので、config/main.phpでurlManagerを有効化し、.htaccessファイルをセットした。http://test.com/hoge/index.php?r=giiでアクセスできなくなった(・ω・`http://test.com/hoge/gii/default/loginでアクセスできた。Frameworkの勉強中です。初フレームワークなので手探りで進んでます。translateなどを使って動的翻訳したり、その動的翻訳した文章をDBにため込んだりできるそうです。大いなる野望の第一歩ということでパンくずリストの翻訳設定してみました。array(‘basePath’=>dirname(__FILE__).DIRECTORY_SEPARATOR.’..’,‘name’=>’hoge’,‘language’=>’ja’,...次にhoge/protected/messagesの中に、対応言語のフォルダjaを作り、その中に翻訳テンプレファイルmogemoge.phpを作成します。mogemoge.phpに翻訳テンプレを作成します。framework/messages/yii/ja/zii.phpなどを参考にするとよいでしょう。array(‘koge’=>’こげこげ’,‘mage’=>’まげまげ’,);?>最後にパンくずリストを使いたいhoge/protected/view/内のviewファイルなんかで、パンくずをコールする際の変数などで<?php$this->breadcrumbs=array(Yii::t(‘mogemoge’,’Koge’)=>array(‘/koge’),Yii::t(‘mogemoge’,’mage’),);?>のような書き方をしておくと、うまいことパンくずが用意した日本語になってます。yii::t()の使い方としては、Yii::t(用意した言語ファイル名,登録した単語)みたいな使い方になるんでしょうか。