00001 <?php
00002
00015
00016
00017
00018 import('form.validation.FormValidator');
00019
00020 class FormValidatorCustom extends FormValidator {
00021
00023 var $userFunction;
00024
00026 var $additionalArguments;
00027
00029 var $complementReturn;
00030
00039 function FormValidatorCustom(&$form, $field, $type, $message, $userFunction, $additionalArguments = array(), $complementReturn = false) {
00040 parent::FormValidator($form, $field, $type, $message);
00041 $this->userFunction = $userFunction;
00042 $this->additionalArguments = $additionalArguments;
00043 $this->complementReturn = $complementReturn;
00044 }
00045
00051 function isValid() {
00052 if ($this->isEmptyAndOptional($this->form->getData($this->field))) {
00053 return true;
00054
00055 } else {
00056 $ret = call_user_func_array($this->userFunction, array_merge(array($this->form->getData($this->field)), $this->additionalArguments));
00057 return $this->complementReturn ? !$ret : $ret;
00058 }
00059 }
00060
00061 }
00062
00063 ?>