XC2.1向けvalidator
どっか適当な場所に、JsValidator.class.phpの名前でファイル作成。内容は、↓↓こんな感じ↓↓。<?phpif (!defined('XOOPS_ROOT_PATH')) exit();require_once XOOPS_ROOT_PATH . "/core/XCube_Validator.class.php";class XCube_JsValidator extends XCube_Validator { function isValid(&$form, $vars) { if ($form->isNull()) { return true; } else { if (preg_match("/[\\0-\\31]/", $form->toString()) || preg_match("/^(javascript|vbscript|about):/i", $form->toString())) { return false; } return true; } }}?>で、ActionForm側。(1)上記ファイルをrequire_onceしておく(2)適用したいフィールドに $this->mFieldProperties['hogehoge']->setDependsByArray(array('required','maxlength', 'js')); $this->mFieldProperties['hogehoge']->addMessage('js', _MD_HOGEMOD_ERROR_JS, _MD_HOGEMOD_LANG_HOGEHOGE);などとするテストするときには、該当フィールドに『javascript:alert('boo!')』とか入力してみる。・・・とは言え。どこでどうなってるか分からんが、どっかでescapeしてくれてるみたい。(ホント・・・?)だから、こんなコード入れなくても、実害はなさそう。(マジで・・・??)でも、入力されたら、なんか気持ち悪い。ので、入力すら出来ないようにしたい時のために、自作。忘れないよう、ココに、メモ。ガンバル、夜中の、インディアン。ホントは、XoopsCube.orgとかに、投稿するのが、いい。でも、英語で書く、うっとうしい。自分でフレームワーク作らなくていいので、開発、少し、ラク。でも、も少し、標準のvalidator、充実、して欲しい、かも。あと、標準のvalidator、ファイル、分けてほしい、かも。いや、別に、どうでもいい、かも。いずれにせよ、これからは、CubeStyleでモジュール開発するのが便利かも。※ってか、いやがおうにも、そういう方向に、叩き込まれそうな、予感。 ひとが作ったフレームワークを利用させて頂くので、 どうしても、そうなりそうな気がする。 でも、ちょびっとだけ、抗いたい気持ちが。。。あと、og4phpをムリヤリ組み込もうとすると、どうしてもlog4phpの設定ファイル中でのpath指定が、少しだけ鬱陶しい。。。ってか、log4phpは好きなんだが、path指定部分だけは自作フレームワークで使ってても、どうしても違和感を覚える。ってか、そもそも、log4phpって既に開発止まってるみたいだし。。。orzXoopsLoggerだと、どうやるんだろ?addExtraしておいて、dumpExtra?objectをダンプしたいときは、どうするの?ob_start()しといてvar_dumpして、得られた文字列をaddextra?う~ん・・・。(~~;;こういうのは、やっぱり、log4phpなんだよなあ・・・。