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

