cakePHP Vaildateプラグインにはまる

2010 年 2 月 26 日 Jiro コメントはありません

cakePHP画面開発しております。
ちょっと複雑な画面になってきて、チェックボックスをコントロールしたり、複数条件でのバリデートが入ってきたので

jQueryとプラグインを活用しています。javascriptによるクライアント側でのバリデートに便利なプラグインを導入しました。
ダウンロードはこちらから

利用にはjQueryが必要です。jQueryは、ループが不要でDOM内のエレメントをIDやタグ、クラスで引っ張ってきて簡単に更新が出来て
すごく便利です。書式も簡略化しているし、軽いのもいいですね。

さてvalidateプラグインを導入してフォーム内のバリデートを行うのですが、通常用意されているルールだけでは足りず
addMethodを利用して複雑な条件を孵化してみたのですがなかなか動きません。

//時刻大小チェックメソッド追加
jQuery.validator.addMethod("checkTime",
	function(value, element, params) {
		if(params[0]>params[1]){
			return true;
		} else {
			return this.optional(element);
		}
	},
		"時刻の指定が間違っています。"
	);

と書いて、時刻を選択するセレクトボックスの内容を渡すため

rules: {
	'data[Clinic][fromJikan1]': {
		required: "#ClinicJikantai0:checked",
		"checkTime": [$("#ClinicFromJikan1").val(),$("#ClinicToJikan1").val()]
	},

という風にセレクトボックスのvalueを渡してみたのですが、firebugで確認するとparamsに何も入ってきません。
昨夜はこれではまったままでした。

色々と調べた結果、どうもパラメータで渡せるのは単なる文字列だけみたいで、意味も無くfunctionの返値にしてみたりと
あがいたけどどうもなりませんでした。

結局エレメントのIDを文字列で渡して、メソッド側で処理することで成功しました。

書き直したのはこんな感じ。

jQuery.validator.addMethod("checkTime",
	function(value, element, params) {
		if (!$(params[2]).attr('checked')){return true;}
		if ($(params[0]).val() < $(params[1]).val())	{
			return true;
		} else {
			return this.optional(element);
		}
	},
	"時刻の指定が間違っています。"
);

セットする側は

rules: {
	'data[Clinic][fromJikan1]': {
		required: "#ClinicJikantai0:checked",
		"checkTime": ["#ClinicFromJikan1","#ClinicToJikan1","#ClinicJikantai0"]
	},

てことで、無事動作しました。prams[2]にはチェックボックスのIDをいれて、ここにチェックが入ってなければバリデートしないように
しました。

忘れないうちに自分で覚書。

カテゴリー: cakePHP タグ: , ,

cakePHP Debug-Kit導入

2010 年 2 月 23 日 Jiro コメントはありません

cakePHPを使ってテストサイトの製作にいそしんでおります。

当初はphpeditorやK2Editerを使って、php javascript cssなどのファイルをごしごしコーディングしていましたが、ひとつのファイルごとにWindowが開くし、コード補完も無いのでとても不便でした。
MVCで組み立てていくので、ひとつの画面作成するにもconroller view layout などなどたくさん開かないといけません。なんか良いのは無いかなと検討した結果Aptanaを導入しました。

eclipseのプラグインとしてではなくスタンドアロン版を使っています。eclipseは以前入れていたのですがなぜか動作しなくなっていました。スタンドアロン版でも充分便利です。
多少ですがコート補完があるとないとでは全然効率が違います。

IDEはやはり便利です。いくつもファイル開いても散らからなくて。しかし、コードウィンドの水平垂直分割が出来ないのが残念です。ひょっとしたら方法があるのかもしれませんが、見つけ切れていません。
知ってる人がいたら教えて欲しいw。

ダウンロードはこちらから。
日本語化はプレアデスのプラグインで簡単に出来ます。
Aptana 日本語化でぐぐれば出てきます。

php対応はインストール後にプラグインの追加でこれも簡単ですよ。

さて本題のcakePHP Debug-Kitプラグインですが。これもダウンロードして解凍したソースを
/app/plugins/に置くだけです。zipの中身をplugin配下にdebug-kitのディレクトリ作成して
そこにコピーでOKです。

そのままテストすると動作しません。ここでちとはまりました。
/app/controllers/app_controller.phpに以下のコンポーネント宣言を追加します。
public $components = array('DebugKit.Toolbar');

すでに何か追加していたら、DebugKitを付け加えてください。
/qpp/controllersにapp_controller.phpが無い場合は(初期設定のままだとありません。)/cake/libs/controllerからコピーして書き換えてください。

このデバッグキットはdebugの値を2以上にすると表示されます。
Sessionや変数、タイマーやメモリまで表示してくれて超便利です。これで開発が楽になりそうです。

ダウンロードDebugKit

カテゴリー: cakePHP タグ: , ,

cakePHPをやってみる

2010 年 2 月 13 日 Jiro コメントはありません

ご無沙汰してます。
随分長いことこのブログも放置状態でした。WordPressの方も現在は勉強ストップしてます。
ブログやCMSとして活用を考えていたのですが、他の仕事が忙しくて。

その中でMicroSoft系のWPFやWCFを使う機会がありました。
これもなかなか面白かったのですが、Windowsサーバーに依存しなければならない点が、やはり問題です。今回はC#を使ったのですがフレームワークを理解するのに時間がかかり大変でした。C#自体は、なかなか興味深い言語でしたがMVMVCという考え方は少し複雑すぎる気がしました。連結をなるべく疎にしたかったのですが、なかなかそうはならず。どうしても他の部分に依存する書き方になって悩みました。またSilverLightを使う案もあったのですが、まだ開発例が少ないしバグも多そうだったので従来のWPFをメインでクライアント開発しました。
サーバー側の開発はすごく便利で簡単でしたが、クライアントはまだまだ発展途上の気がしました。ClickOnesで配布できるクライアントを使うほうがブラウザ依存よりも使い勝手は良いのですが利用対象が絞り込まれた場合でないと難しい面もあります。

Adobe Airも同様ですね。

また勉強する機会もあるかもしれません。

あたらしいASPを考えていたので、WordPressよりもフレームワークの勉強をしようと思い立ちcakePHPをはじめました。
フレームワークとしてはZendなどのほうが良いのでしょうが、入りやすいということと、Zendも取り込めるので手始めとしてこれに決めました。

随分php触ってなかったので、なかなか思い出せずに苦労してます。こちらのMVCはシンプルでなかなか使いやすいです。最終的には画面UIはAjaxに頼ることになりそうですがその勉強もなかなか大変そうです。

サイトや本を買って勉強中ですが、やはり細かい部分は記述が言及していませんね。私のような初心者にもわかりやすいサイトが欲しいなあ。

調べてわかったことをブログにすこしづつアップして行こうと思ってます。

カテゴリー: cakePHP, PHP タグ: , ,

WordPressのセキュリティ

2009 年 4 月 24 日 Jiro コメントはありません

Googleのインデックスを眺めていたら、/wp-content/wp-pluginの配下とかがインデックスされてる。

なんだか嫌ですよね。

これはrobots.txtに

Disallow: /wordpress/wp-*
Allow: /

を書き込んで巡回させないようにしたんですが、ちょっと心配でもあります。

各フォルダの下に空のindex.htmlを置いておけばいいのですが、プラグイン入れるたびにしなくちゃいけませんね。

 

wp-security-scanをダウンロードして導入しました。

いつものようにダウンロードしたzipを解凍してpluginフォルダに転送、ダッシュボードのプラグインから有効化します。
Securityのメニューが出てきます。

Initial ScanではWPのバージョンとか色々チェックしてくれています。

MySQLデータベースのWP関係テーブルのプレフィックスを「wp-」からほかのものに変えろといっている。

後は「admin」ユーザーの変更と削除。/wp-adminの下に.htaccessを置けとか。

まあ、これで少しはセキュアになったでしょう。

最近スパムコメントもぼちぼち出てきたので、こちらのプラグインも入れないと面倒になりそうです。

 

mixiの投稿から来てくださる方が増えてうれしいです。

コメントとか相互リンクとかいただけると、もっとうれしいです。

Google CromeとFireFoxで迷う

2009 年 4 月 20 日 Jiro コメントはありません

IE6とIE7を使っていたのですが、IE7の方は良く固まるし、開いていたページを全部引き連れて落ちてしまうのでほとほと困っていました。

それでGoogleCromeを入れてみたのですが、これは実に軽快だし使いやすいのです。
通常のブラジングには何の問題もありません。

しかし、やはり一部のサイトで不具合が生じて使えないこともあります。どうしても検証をIEだけにしていたり、IE依存機能を使っているサイトもあるんですね。

FireFoxは以前インストールしてみたことはあったのですが、操作とデザインに少し違和感があって消していました。
しかし、色々なアドオンがあって便利だという記事を発見。
ちょっと使ってみようかなという気になってます。

第2回 快適なWeb開発環境を構築する、Firefoxアドオン10選の記事に紹介されています。

アドオン1 ★Greasemonkey ページ切り替えを自動で行う
アドオン2 ★Resizeable Textarea テキスト入力ボックスを自分の好きなサイズにする
アドオン3 ★Form Saver 入力フォームのテストを素早く行う
アドオン4 ★Page Saver Webページ全体のキャプチャーを撮る
アドオン5 ★ViewSourceWith ソースを好きなエディタで開く
アドオン6 ★Html Validator HTMLがW3Cに準拠しているかを確認する
アドオン7 ★Server Switcher テスト/本番サーバのチェックを効率化する
アドオン8 ★CS Lite Cookieの中身を自由に編集する
アドオン9 ★Make Link ページタイトルとURLをクリップボードにコピーする
アドオン10★FireBug JavaScript、HTML、CSSをデバッグする

入力フォームのテストをすばやく行うとか、Cookieの中身を自由に編集するとか、他の方法でも出来そうですが、ブラウザのアドオンで出来ればテストや開発には便利そうです。

まだ導入してないので評価はこれからですが、インストールしてみようかなと思います。

カテゴリー: ブラウザ タグ: ,
Get Adobe Flash playerPlugin by wpburn.com wordpress themes