OpenPNE のバリデーション処理を定義する ini ファイルの書式に関するメモです。

例えば ?m=pc&a=page_hoge という URL に対するバリデーションを行うときには /openpne/webapp_ext/modules/pc/validate/page/hoge.ini というファイルを作成します。

hoge.ini ファイルには以下のようにバリデーションを定義します

[name]
type = "string"
required = 1
caption = "名前"

[age]
type = "int"
required = 1
caption = "年齢"
min = 18
max = 99

[tel]
type = "regexp"
required = 0
default = ""
caption = "電話番号"
regexp = "/^\d{2,4}-\d{2,4}-\d{4}$/"

指定方法をひとつづつ見ていきます。

[] は変数名
$_POST または $_GET で渡される名前です。
type はデータの型
string: 文字列
int: 数値
bool: 真偽値
regexp: 正規表現
required は必須かどうか
required = 0 は必須でない、required = 1 は必須
default はデフォルト値
required=0 の場合で値が null の場合、default の値が入る
caption は変数の名前
エラーメッセージに出力される
エラーメッセージもバリデーションのタイプにより自動的に合うようなエラーメッセージが出力されます
min は最小値
type=int の場合は変数の値が min の値以上かチェック
type=string or regexp の場合は文字列の長さが min の値以上かチェック
max は最大値
type=int の場合は変数の値が max の値以下かチェック
type=string or regexp の場合は文字列の長さが max の値以下かチェック
regexp は正規表現のパターンを指定
type=regexp の時の preg_match のパターンに使用される

実際にバリデーションチェックをするのは
/openpne/webapp/lib/OpenPNE/Validator.php
で定義されている OpenPNE_Validator というクラスの _validate メソッドです。

仕様が分からなければこのソースを見ればだいたい分かります。

関連する投稿