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');

タグ:

TrackBack