Source for file Ethna_Plugin_Validator.php

Documentation is available at Ethna_Plugin_Validator.php

  1. <?php
  2. // vim: foldmethod=marker
  3. /**
  4.  *  Ethna_Plugin_Validator.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$
  10.  */
  11.  
  12. // UPLOAD_ERR_* が未定義の場合 (PHP 4.3.0 以前)
  13. if (defined('UPLOAD_ERR_OK'== false{
  14.     define('UPLOAD_ERR_OK'0);
  15. }
  16.  
  17. // {{{ Ethna_Plugin_Validator
  18. /**
  19.  *  バリデータプラグインの基底クラス
  20.  *  
  21.  *  @author     ICHII Takashi <ichii386@schweetheart.jp>
  22.  *  @access     public
  23.  *  @package    Ethna
  24.  */
  25. {
  26.     /**#@+
  27.      *  @access private
  28.      */
  29.  
  30.     /** @var    object  Ethna_Backend   backendオブジェクト */
  31.     var $backend;
  32.  
  33.     /** @var    object  Ethna_Logger    ログオブジェクト */
  34.     var $logger;
  35.  
  36.     /** @var    object  Ethna_ActionForm    フォームオブジェクト */
  37.     var $action_form;
  38.  
  39.     /** @var    object  Ethna_ActionForm    フォームオブジェクト */
  40.     var $af;
  41.  
  42.     /** @var    bool    配列を受け取るバリデータかどうかのフラグ */
  43.     var $accept_array false;
  44.  
  45.     /**#@-*/
  46.  
  47.     /**
  48.      *  コンストラクタ
  49.      *
  50.      *  @access public
  51.      *  @param  object  Ethna_Controller    $controller コントローラオブジェクト
  52.      */
  53.     function Ethna_Plugin_Validator(&$controller)
  54.     {
  55.         $this->backend =$controller->getBackend();
  56.         $this->logger =$controller->getLogger();
  57.         $this->action_form =$controller->getActionForm();
  58.         $this->af =$this->action_form;
  59.     }
  60.  
  61.     /**
  62.      *  フォーム値検証のためにActionFormから呼び出されるメソッド
  63.      *
  64.      *  @access public
  65.      *  @param  string  $name       フォームの名前
  66.      *  @param  mixed   $var        フォームの値
  67.      *  @param  array   $params     プラグインのパラメータ
  68.      */
  69.     function &validate($name$var$params)
  70.     {
  71.         die('override!');
  72.     }
  73.  
  74.     /**
  75.      *  フォーム定義を取得する
  76.      *
  77.      *  @access public
  78.      *  @param  string  $name       フォームの名前
  79.      */
  80.     function getFormDef($name)
  81.     {
  82.         return $this->af->getDef($name);
  83.     }
  84.  
  85.     /**
  86.      *  フォームのtypeを取得する(配列の場合は値のみ)
  87.      *
  88.      *  @access public
  89.      *  @param  string  $name       フォームの名前
  90.      */
  91.     function getFormType($name)
  92.     {
  93.         $def $this->af->getDef($name);
  94.         if (isset($def['type'])) {
  95.             if (is_array($def['type'])) {
  96.                 return $def['type'][0];
  97.             else {
  98.                 return $def['type'];
  99.             }
  100.         else {
  101.             return null;
  102.         }
  103.     }
  104.  
  105.     /**
  106.      *  フォーム値が空かどうかを判定 (配列フォームの場合は各要素に対して呼び出す)
  107.      *
  108.      *  @access protected
  109.      *  @param  mixed   $var       フォームの値 (配列フォームの場合は各要素)
  110.      *  @param  int     $type      フォームのtype
  111.      */
  112.     function isEmpty($var$type)
  113.     {
  114.         if ($type == VAR_TYPE_FILE{
  115.             if (isset($var['error']== false || $var['error'!= UPLOAD_ERR_OK{
  116.                 return true;
  117.             }
  118.             if (isset($var['tmp_name']== false || is_uploaded_file($var['tmp_name']== false{
  119.                 return true;
  120.             }
  121.             if (isset($var['size']== false || $var['size'== 0{
  122.                 return true;
  123.             }
  124.         else {
  125.             if (is_scalar($var== false || strlen($var== 0{
  126.                 return true;
  127.             }
  128.         }
  129.         return false;
  130.     }
  131.  
  132.     /**
  133.      *  true を参照で返す
  134.      *
  135.      *  @access protected
  136.      */
  137.     function &ok()
  138.     {
  139.         $true true;
  140.         return $true;
  141.     }
  142.  
  143.     /**
  144.      *  エラーを返す
  145.      *
  146.      *  @access protected
  147.      *  @param  string  $msg        エラーメッセージ
  148.      *  @param  int     $code       エラーコード
  149.      *  @param  mixed   $info       エラーメッセージにsprintfで渡すパラメータ
  150.      */
  151.     function &error($msg$code$info null)
  152.     {
  153.         if ($info != null{
  154.             if (is_array($info)) {
  155.                 return Ethna::raiseNotice($msg$code$info);
  156.             else {
  157.                 return Ethna::raiseNotice($msg$codearray($info));
  158.             }
  159.         else {
  160.             return Ethna::raiseNotice($msg$code);
  161.         }
  162.     }
  163. }
  164. // }}}
  165. ?>

Documentation generated on Fri, 11 Nov 2011 04:00:39 +0900 by phpDocumentor 1.4.3