راهنما و مستندات محصول فرم ساز پیشرفته RSForm Pro

مشاهده و خرید محصول

موضوع: قوانین اعتبار سنجی های سفارشی با PHP

تاریخ ایجاد : 1397/09/27

در نسخه های قبلی کامپوننت فرم ساز RSForm Pro برای اعتبار سنجی های سفارشی شما می بایست فایل validation.php که جزو فایل های هسته محسوب می شود را ویرایش می کردید که کار چندان عاقلانه ای نبود اما از نسخه 1.51.0 شما می توانید بدون ویرایش هسته کامپوننت ، اعتبار سنجی های خودتان را انجام داده و نگرانی بابت پاک شدن کدهایتان برای آپدیت های بعدی نداشته باشید.

 برای ایجاد یک قانون اعتبار سنجی جدید باید یک فایل با نام customvalidation.php در مسیر زیر بسازید :

YOUR_JOOMLA_ROOT/components/com_rsform/helpers/

 بعد از ایجاد این فایل باید یک کلاس با نام RSFormProCustomValidations که از کلاس RSFormProValidations هم تبعیت می کند بنویسیم؛ به کد زیر دقت کنید :

<?php
 
defined( '_JEXEC' ) or die( 'Restricted access' );
 
require_once dirname(__FILE__).'/validation.php';
 
class RSFormProCustomValidations extends RSFormProValidations
{  
 
  public static function JoominaMarketValidation($value, $extra = null, $data = null)
  {
    // The following makes sure the submitted value is "test"
    if ($value == 'test')
    {
      // Return true if the validation passed.
      return true;
    }
    else
    {
      // Return false if the validation didn't pass.
      return false;
    }
  }
 
}

?>

 در خط 5 ما باید در همین مسیر فایل validation.php را فراخوانی کنیم تا بتوانیم کلاس این فایل را جزو فرزندهای آن قرار دهیم.

 تابع JoominaMarketValidation درون کلاس چیست؟

 اگر دقت کنید ما یک تابع با نام JoominaMarketValidation در کلاس ایجاد شده ، ایجاد کرده ایم که در لیست اعتبار سنجی های ما در آر اس فرم یک اعتبار سنجی جدید دقیقا با همین نام اضافه خواهد شد؛ در واقع تابع ای که اینجا نوشته شده همان اعتبار سنجی سفارشی ما خواهد بود؛ به تصویر زیر دقت کنید :

 

 برای ترجمه باید چه کاری انجام دهیم ؟

 برای ترجمه فقط کافی است شما نام تابع خود را به انتهای کارکتر RSFP_COMP_FVALUE_ قرار بدید؛ یعنی اگر ما بخواهیم برای تابع JoominaMarketValidation این کار را انجام دهیم بصورت زیر خواهد شد :

RSFP_COMP_FVALUE_JOOMINAMARKETVALIDATION="اعتبار سنجی اختصاصی جومینا مارکت"

 ترجمه بالا را در انتهای فایل fa-IR.com_rsform.ini که در مسیر زیر قرار دارد ، بنویسید :

YOUR_JOOMLA_ROOT/administrator/language/fa-IR/

 با قرار دادن ترجمه مشاهده خواهید کرد که نام اعتبار سنجی شما هم ترجمه خواهد شد :

 

 این تابع در نهایت باید مقدار True یا False را برگرداند که در صورت برگرداندن True یعنی اعتبارسنجی با موفقیت انجام شد و مشکلی نیست ولی در صورت برگرداندن False یعنی مقدار پر شده توسط کاربر نتوانسته از اعتبارسنجی با موفقیت عبور کند و اجازه ادامه کار را نخواهد داشت.

 توضیح پارامترهای تابع

 متغیر value : این متغیر حاوی مقدار پر شده توسط کاربر در فرم می باشد که باید اعتبار سنجی را روی این مقدار انجام دهید.

 متغیر extra : بدون استفاده می باشد.

 متغیر data : این متغیر حاوی اطلاعات فیلد ارسال شده می باشد؛ اطلاعاتی همچون :

  •  componentId : شناسه فیلد
  •  NAME : نام فیلد (به لاتین)
  •  CAPTION : برچسب فیلد
  •  DEFAULTVALUE : مقدار پیشفرض فیلد
  •  REQUIRED : ضروری یا عدم ضروری (YES/NO)
  •  VALIDATIONMESSAGE : پیغام نا معتبر بودن فیلد
  •  INPUTTYPE : نوع فیلد

 این موارد از مقادیر مهم این متغیر آرایه ای می باشد ولی تعداد بیشتری از آنها وجود دارد که نیازی به معرفی همه آنها در این مقاله نبوده است.

 به هر یک از مقادیر بالا می توان بصورت زیر دسترسی پیدا کرد :

$data['componentId']
$data['NAME']
$data['CAPTION']
$data['REQUIRED']
...

 حال با این کار شما می توانید هر نوع اعتبار سنجی را که نیاز دارید برای فیلدهای فرم خود بسازید؛ دقت کنید که هر اعتبار سنجی فقط درون یک تابع قرار خواهد گرفت اما شما هیچ محدودیتی برای تعداد تابع ها نخواهید داشت.

 نکته : برای اعتبار سنجی با تکنولوژی AJax کافی ست وارد ویرایش فرم مربوطه خود شده ، تب خواص » زیر منوی "ویرایش فرم" را کلیک کنید و به دنبال گزینه "استفاده از معتبر سازی ای جکس" بگردید سپس آن را روی بلی تنظیم کنید؛ با فعال کردن این گزینه تمامی اعتبار سنجی ها هم بصورت AJax (بدون نیاز به ارسال فرم) و هم بصورت عادی و در هنگام پردازش فرم بررسی می شود.

 

 فایل نمونه جهت درک بهتر قرار داده شد که می توانید از لینک زیر دریافت کنید؛

 تیم برنامه نویسی جومینا مارکت سعی خواهد کرد که انواع اعتبار سنجی های مورد استفاده را برای شما عزیزان را در بخش مستندات فرم ساز پیشرفته RSForm Pro منتشر و در معرض استفاده عموم قرار دهد.

  دانلود فایل PHP نمونه