Ethnaのばりでーた

あとでファイル公開するけど。

もう。AかBかCしか選択しないんだよ!!
0〜2
でチェックじゃなくて
0か、3か、10か!!

って時に使う。
'fixedvalue' => array('0', '3', '10'),

エラーの番号がいい加減すぎる。

class Aero_Plugin_Validator_Fixedvalue extends Ethna_Plugin_Validator
{
    /** @var    bool    配列を受け取るかフラグ */
    var $accept_array = true;


    /**
     *  指定された値かチェックする
     *
     *  @access public
     *  @param  string  $name       フォームの名前
     *  @param  mixed   $var        フォームの値
     *  @param  array   $params     プラグインのパラメータ
     */
    function &validate($name, $var, $params)
    {
        $true = true;
        $fixedvalue = to_array($params['fixedvalue']);
        $vars = to_array($var);
 
        if ($type == VAR_TYPE_FILE || $this->isEmpty($var, $type)) {
            return $true;
        }
 
        foreach ($vars as $value) {
            if (! in_array($value, $fixdvalue)) {
                 return Ethna::raiseNotice('指定された値は不正です',E_FORM_INVALIDCHAR);
            }
        }
 
        return $true;
    }

}