2 // vim: foldmethod=marker
4 * Ethna_Plugin_Validator_Type.php
6 * @author ICHII Takashi <ichii386@schweetheart.jp>
7 * @license http://www.opensource.org/licenses/bsd-license.php The BSD License
12 // {{{ Ethna_Plugin_Validator_Type
16 * @author ICHII Takashi <ichii386@schweetheart.jp>
20 class Ethna_Plugin_Validator_Type extends Ethna_Plugin_Validator
22 /** @var bool 配列を受け取るかフラグ */
23 var $accept_array = false;
29 * @param string $name フォームの名前
30 * @param mixed $var フォームの値
31 * @param array $params プラグインのパラメータ
33 function &validate($name, $var, $params)
36 $type = $params['type'];
37 if ($type == VAR_TYPE_FILE || $this->isEmpty($var, $type)) {
41 foreach (array_keys(to_array($var)) as $key) {
44 if (!preg_match('/^-?\d+$/', $var)) {
45 if (isset($params['error'])) {
46 $msg = $params['error'];
48 $msg = _et('Please input integer value to {form}.');
50 return Ethna::raiseNotice($msg, E_FORM_WRONGTYPE_INT);
55 if (!preg_match('/^-?\d+$/', $var) && !preg_match('/^-?\d+\.\d+$/', $var)) {
56 if (isset($params['error'])) {
57 $msg = $params['error'];
59 $msg = _et('Please input float value to {form}.');
61 return Ethna::raiseNotice($msg, E_FORM_WRONGTYPE_FLOAT);
65 case VAR_TYPE_BOOLEAN:
66 if ($var != "1" && $var != "0") {
67 if (isset($params['error'])) {
68 $msg = $params['error'];
70 $msg = _et('You can input 0 or 1 to {form}.');
72 return Ethna::raiseNotice($msg, E_FORM_WRONGTYPE_BOOLEAN);
76 case VAR_TYPE_DATETIME:
78 if ($r == -1 || $r === false) {
79 if (isset($params['error'])) {
80 $msg = $params['error'];
82 $msg = _et('Please input valid datetime to {form}.');
84 return Ethna::raiseNotice($msg, E_FORM_WRONGTYPE_DATETIME);