XOOPS CubeにオリジナルのValidatorクラスを作成する
2008 年 4 月 11 日 by fujiiXOOPS Cubeには予めいくつかの入力検証用のクラスが用意されていますが、ここではオリジナルの入力検証用(Validator)クラスの作成方法を紹介します。
作成方法は、「XCube_Validator」クラスを継承し、「isValid」メソッド内で入力検証用の処理を記述するのみです。
ここでは、入力文字数(マルチバイト対応)を検証するValidatorクラスを作成する方法を紹介します。
1.「XCube_Validator」クラスを継承し、クラス作成します。
※クラス名は「XCube_『任意(頭文字のみ大文字)』Validator」で作成してください。
class XCube_MbmaxlengthValidator extends XCube_Validator { }
2.クラス内に「isValid」メソッドを作成し、入力検証用の処理を実装する。
function isValid(&$form, $vars) { if ($form->isNull()) { return true; } else { return mb_strlen($form->toString()) <= $vars['mbmaxlength']; } }
作成したValidatorクラスはアクションフォームのprepareメソッド内で以下のように利用します。
$this->mFormProperties['lastname'] =& new XCube_StringProperty('lastname'); $this->mFieldProperties['lastname'] =& new XCube_FieldProperty($this); $this->mFieldProperties['lastname']->setDependsByArray(array('mbmaxlength')); $this->mFieldProperties['lastname']->addMessage('mbmaxlength', _MD_ERROR_MBMAXLENGTH, _MD_LBL_LASTNAME, '10'); $this->mFieldProperties['lastname']->addVar('mbmaxlength', '10');
タグ: XOOPS