Source for file Ethna_Plugin_Validator_Min.php

Documentation is available at Ethna_Plugin_Validator_Min.php

  1. <?php
  2. // vim: foldmethod=marker
  3. /**
  4.  *  Ethna_Plugin_Validator_Min.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: Ethna_Plugin_Validator_Min.php 416 2006-11-17 08:41:54Z ichii386 $
  10.  */
  11.  
  12. // {{{ Ethna_Plugin_Validator_Min
  13. /**
  14.  *  最小値チェックプラグイン
  15.  *
  16.  *  @author     ICHII Takashi <ichii386@schweetheart.jp>
  17.  *  @access     public
  18.  *  @package    Ethna
  19.  */
  20. {
  21.     /** @var    bool    配列を受け取るかフラグ */
  22.     var $accept_array = false;
  23.  
  24.     /**
  25.      *  最小値のチェックを行う
  26.      *
  27.      *  @access public
  28.      *  @param  string  $name       フォームの名前
  29.      *  @param  mixed   $var        フォームの値
  30.      *  @param  array   $params     プラグインのパラメータ
  31.      */
  32.     function &validate($name$var$params)
  33.     {
  34.         $true true;
  35.         $type $this->getFormType($name);
  36.         if (isset($params['min']== false || $this->isEmpty($var$type)) {
  37.             return $true;
  38.         }
  39.  
  40.         switch ($type{
  41.             case VAR_TYPE_INT:
  42.                 if ($var $params['min']{
  43.                     if (isset($params['error'])) {
  44.                         $msg $params['error'];
  45.                     else {
  46.                         $msg "{form}には%d以上の数字(整数)を入力して下さい";
  47.                     }
  48.                     return Ethna::raiseNotice($msgE_FORM_MIN_INTarray($params['min']));
  49.                 }
  50.                 break;
  51.  
  52.             case VAR_TYPE_FLOAT:
  53.                 if ($var $params['min']{
  54.                     if (isset($params['error'])) {
  55.                         $msg $params['error'];
  56.                     else {
  57.                         $msg "{form}には%f以上の数字(小数)を入力して下さい";
  58.                     }
  59.                     return Ethna::raiseNotice($msgE_FORM_MIN_FLOATarray($params['min']));
  60.                 }
  61.                 break;
  62.  
  63.             case VAR_TYPE_DATETIME:
  64.                 $t_min strtotime($params['min']);
  65.                 $t_var strtotime($var);
  66.                 if ($t_var $t_min{
  67.                     if (isset($params['error'])) {
  68.                         $msg $params['error'];
  69.                     else {
  70.                         $msg "{form}には%s以降の日付を入力して下さい";
  71.                     }
  72.                     return Ethna::raiseNotice($msgE_FORM_MIN_DATETIMEarray($params['min']));
  73.                 }
  74.                 break;
  75.  
  76.             case VAR_TYPE_FILE:
  77.                 $st stat($var['tmp_name']);
  78.                 if ($st[7$params['min'1024{
  79.                     if (isset($params['error'])) {
  80.                         $msg $params['error'];
  81.                     else {
  82.                         $msg "{form}には%dKB以上のファイルを指定して下さい";
  83.                     }
  84.                     return Ethna::raiseNotice($msgE_FORM_MIN_FILEarray($params['min']));
  85.                 }
  86.                 break;
  87.  
  88.             case VAR_TYPE_STRING:
  89.                 if (strlen($var$params['min']{
  90.                     if (isset($params['error'])) {
  91.                         $msg $params['error'];
  92.                     else {
  93.                         $msg "{form}は全角%d文字以上(半角%d文字以上)で入力して下さい";
  94.                     }
  95.                     return Ethna::raiseNotice($msgE_FORM_MIN_STRING,
  96.                             array(intval($params['min']/2)$params['min']));
  97.                 }
  98.                 break;
  99.         }
  100.  
  101.         return $true;
  102.     }
  103. }
  104. // }}}
  105. ?>

Documentation generated on Thu, 08 May 2008 00:15:22 +0900 by phpDocumentor 1.4.2