更新履歴

Validatorの拡張について

ACMS_User_Validatorクラスを拡張していく事でフォームのバリデーターに独自のバリデーターを使用する事が可能になります。標準のバリデーターにないものを利用したい場合にご利用ください。

テンプレート上の指定との対応

<input type="text" name="hoge" value="{var}">
<input type="hidden" name="field[]" value="hoge"> 
<input type="hidden" name="hoge#sample" value="cms">

<!-- BEGIN hoge:validator#sample -->
<p class="acms-admin-text-error">cmsという文字列が含まれていません。</p>
<!-- END hoge:validator#sample -->

テンプレート上にフォームオプション名と、ACMS_User_Validator内で拡張するメソッド名を同一にします。 メソッドの引数にはそのフィールドの入力値($val)と、フォームオプションの値($arg)が入ってきます。

<?php

/**
 * php/ACMS/User/Validator.php
 * バリデーターにユーザー定義のメソッドを追加します
 *
 * ユーザー定義のメソッドが優先されます。
 *
 * @package ACMS
 */
class ACMS_User_Validator
{
    /**
     * sample
     * バリデーターのサンプルメソッド
     *
     * @param  string $val - その変数の値
     * @param  string $arg - <input type="hidden" name="var:v#sample" value="ここの値">
     * @return boolean     - 入力が正しい場合は "ture" そうでない場合は "false" を返す
     */
    function sample($val, $arg)
    {
        // name="var:v#sample" value="cms" で指定した
        // 文字列が含まれていなかったらエラーを出す
        return (strpos($val, $arg) !== false);
    }
}

入力が正しければ true、正しくなければ falsereturn してください。