Source for file Type.php

Documentation is available at Type.php

  1. <?php
  2. // vim: foldmethod=marker
  3. /**
  4.  *  Type.php
  5.  *
  6.  *  @author     ICHII Takashi <ichii386@schweetheart.jp>
  7.  *  @license    http://www.opensource.org/licenses/bsd-license.php The BSD License
  8.  *  @package    Ethna
  9.  *  @version    $Id: 3c32067e915762fb5fc6a5b7940c8dc3a41f79d6 $
  10.  */
  11.  
  12. // {{{ Ethna_Plugin_Validator_Type
  13. /**
  14.  *  タイプチェックプラグイン
  15.  *
  16.  *  @author     ICHII Takashi <ichii386@schweetheart.jp>
  17.  *  @access     public
  18.  *  @package    Ethna
  19.  */
  20. {
  21.     /** @var    bool    配列を受け取るかフラグ */
  22.     public $accept_array = false;
  23.  
  24.     /**
  25.      *  フォーム値の型チェックを行う
  26.      *
  27.      *  @access public
  28.      *  @param  string  $name       フォームの名前
  29.      *  @param  mixed   $var        フォームの値
  30.      *  @param  array   $params     プラグインのパラメータ
  31.      */
  32.     public function validate($name$var$params)
  33.     {
  34.         $true true;
  35.         $type $params['type'];
  36.         if ($type == VAR_TYPE_FILE || $this->isEmpty($var$type)) {
  37.             return $true;
  38.         }
  39.  
  40.         foreach (array_keys(to_array($var)) as $key{
  41.             switch ($type{
  42.                 case VAR_TYPE_INT:
  43.                     if (!preg_match('/^-?\d+$/'$var)) {
  44.                         if (isset($params['error'])) {
  45.                             $msg $params['error'];
  46.                         else {
  47.                             $msg _et('Please input integer value to {form}.');
  48.                         }
  49.                         return Ethna::raiseNotice($msgE_FORM_WRONGTYPE_INT);
  50.                     }
  51.                     break;
  52.  
  53.                 case VAR_TYPE_FLOAT:
  54.                     if (!preg_match('/^-?\d+$/'$var&& !preg_match('/^-?\d+\.\d+$/'$var)) {
  55.                         if (isset($params['error'])) {
  56.                             $msg $params['error'];
  57.                         else {
  58.                             $msg _et('Please input float value to {form}.');
  59.                         }
  60.                         return Ethna::raiseNotice($msgE_FORM_WRONGTYPE_FLOAT);
  61.                     }
  62.                     break;
  63.  
  64.                 case VAR_TYPE_BOOLEAN:
  65.                     if ($var != "1" && $var != "0"{
  66.                         if (isset($params['error'])) {
  67.                             $msg $params['error'];
  68.                         else {
  69.                             $msg _et('You can input 0 or 1 to {form}.');
  70.                         }
  71.                         return Ethna::raiseNotice($msgE_FORM_WRONGTYPE_BOOLEAN);
  72.                     }
  73.                     break;
  74.  
  75.                 case VAR_TYPE_DATETIME:
  76.                     $r strtotime($var);
  77.                     if ($r == -|| $r === false{
  78.                         if (isset($params['error'])) {
  79.                             $msg $params['error'];
  80.                         else {
  81.                             $msg _et('Please input valid datetime to {form}.');
  82.                         }
  83.                         return Ethna::raiseNotice($msgE_FORM_WRONGTYPE_DATETIME);
  84.                     }
  85.                     break;
  86.             }
  87.         }
  88.  
  89.         return $true;
  90.     }
  91. }
  92. // }}}

Documentation generated on Fri, 11 Nov 2011 03:59:09 +0900 by phpDocumentor 1.4.3