XOOPS CubeにオリジナルのValidatorクラスを作成する
2008 年 4 月 11 日 by fujii
XOOPS 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