原本以为 Typecho
内置的 addRule
验证规则仅限于文件 var/Typecho/Validate.php
中已定义的常用的验证类,无意中瞥见 var/Widget/Metas/Tag/Edit.php
文件,才意识到 addRule
可以通过自定义验证规则的方式,快捷的引用新增的验证规则。
关键代码
插件
Plugin.php
直接输出表单:$form->addInput($var);
插件
Plugin.php
使用内置的验证类(如xssCheck
)输出表单:$form->addInput($var->addRule('xssCheck', _t('请勿使用特殊字符')));
插件
Plugin.php
使用自定义验证规则(如minValue
)输出表单:// 新增验证规则 minValue public static function minValue($value) { return $value > 3; // 判断输入值是否大于 3 } // 引入验证规则 minValue $form->addInput($var->addRule(['PluginFolderName_Plugin', 'minValue'], _t('请输入大于 3 的数值'))); // 方式一,请将 PluginFolderName 替换为插件的文件夹名称 // $form->addInput($var->addRule([self::class, 'minValue'], _t('请输入大于 3 的数值'))); // 方式二
至此,在不修改文件
Validate.php
的前提下,也能快捷的引用新增的验证规则,理论上也适用于主题设置的表单验证。
评论区