CMSの管理画面の入力項目に対する保存時のバリデーションをプラグインで作成することができます。ここでは、入力項目に数字を含む場合にエラーを返すプラグインを例にして説明します。フォームのバリデーションプラグインについては、以下を参照してください。
プラグインの作成方法の基本については、以下のドキュメントを参照してください。
plugins/
└ CustomCMSValidation/ (root)
├ config.json (定義ファイル)
├ CustomCMSValidation.php (プラグイン・クラス)
└ locale/
└ ja.json (翻訳ファイル)
カスタム・バリデーションを追加するには、config.jsonに「cms_validations」というキーで記述します。
{
"label": "CustomCMSValidation",
"id": "customcmsvalidation",
"component": "CustomCMSValidation",
"description": "Custom CMS CMS Validation Example.",
"version": "0.1",
"author": "Alfasado Inc.",
"author_link": "https://alfasado.net/",
"cms_validations": {
"test_validaion": {
"label": "No Number",
"component": "CustomCMSValidation",
"method": "test_validaion",
"order": 1000
}
}
}
キー | 値 |
---|---|
component | PHPのクラス名 |
label | ドロップダウンに表示されるラベル |
method | PHPクラスのメソッド |
PHPのメソッドは以下の通りです。
function test_validaion ( $label, &$value, &$msg, $col = null ) {
if ( preg_match( '/[0-9]/', $value ) ) {
$app = Prototype::get_instance();
$msg = $this->translate( "The '%s' must not contain numbers.", $app->translate( $label ) );
return false;
}
return true;
}
第1引数にカラムのラベル、第2引数に入力値、第3引数に(リファレンスとして&付きで受け取ります)にエラーメッセージ、第4引数がカラム名となります。