شاید در یک پروژه برای شما پیش آمده باشد که بخواهید فیلد کد ملی قرار دهید و صرفا قرار دادن فیلد کافی نخواهد بود و باید حتما اعتبار سنجی این فیلد را هم قرار دهید؛ اعتبار سنجی برای فیلد کد ملی بصورت پیشفرض درون آر اس فرم وجود ندارد و باید به عنوان یک اعتبار سنجی سفارشی به آن اضافه کنیم.
به مسیر زیر رفته و فایل customvalidation.php را با یک ویرایشگر متنی باز کنید :
YOUR_JOOMLA_ROOT/components/com_rsform/helpers/
نکته : در صورتی که این فایل را مشاهده نمی کنید به این معنی است که این آموزش را مطالعه نکرده و طبق دستورات آن پیش نرفته اید فلذا قبل از هر چیزی آموزش مذکور را مطالعه و این فایل را طبق دستورات داده شده در آموزش، ایجاد کنید.
تابع زیر را به کلاس RSFormProCustomValidations اضافه کنید :
public static function MeliCodeValidation($value, $extra = null, $data = null)
{
if(!preg_match('/^[0-9]{10}$/',$value)) {
return false;
}
for($i=0;$i<10;$i++) {
if(preg_match('/^'.$i.'{10}$/',$value)) {
return false;
}
}
for($i=0,$sum=0;$i<9;$i++) {
$sum += ((10-$i) * intval(substr($value, $i,1)));
}
$mod = $sum % 11;
$parity = intval(substr($value, 9,1));
if(($mod < 2 && $mod == $parity) || ($mod >= 2 && $mod == (11 - $parity))) {
return true;
}
return false;
}
ممکن است این کلاس درون فایل از قبل دارای تابع های متعددی باشد که نیازی به تغییر یا حذف آنها نیست بلکه فقط تابع بالا به کلاس مذکور باید اضافه شود.
یک فیلد متنی ایجاد کرده و تمامی ویژگی ها را طبق نیاز تان پر کنید؛ در تب اعتبار سنجی ، گزینه ی "نوع معتبر سازی" را روی مقدار MeliCodeValidation تنظیم کنید :
در سر برگ "خواص" و زیر منوی ویرایش فرم ، گزینه "استفاده از معتبر سازی ای جکس" را روی بلی قرار دهید تا اعتبار سنجی ها بصورت AJax انجام شود و نیازی به ارسال و تاییدیه از سمت سرور نباشد.
به همین راحتی می توانید اعتبار سنجی کد ملی افراد را در فرم ساز RSForm Pro ایجاد کنید.