function _clientside_validation_set_fapi_validation in Clientside Validation 6
Same name and namespace in other branches
- 7 clientside_validation_fapi/clientside_validation_fapi.module \_clientside_validation_set_fapi_validation()
Set fapi validation.
1 call to _clientside_validation_set_fapi_validation()
- clientside_validation_fapi_regular in clientside_validation_fapi/
clientside_validation_fapi.module
File
- clientside_validation_fapi/
clientside_validation_fapi.module, line 79 - Add client side validation support for fapi validation
Code
function _clientside_validation_set_fapi_validation($element, $rule, $params, &$js_rules, $message = '') {
$callback = $rule['callback'];
$name = $element['#name'];
$title = $name;
if (isset($element['#title'])) {
$title = $element['#title'];
}
$expressions = array(
'fapi_validation_rule_alpha' => '/^[\\p{L}]+$/uD',
'fapi_validation_rule_alpha_numeric' => '/^[\\p{L}\\p{N}]+$/uD',
'fapi_validation_rule_ipv4' => '/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' . '(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/',
'fapi_validation_rule_alpha_dash' => '/^[-\\p{L}\\p{N}_]+$/uD',
'fapi_validation_rule_digit' => '/^\\d+$/',
);
if (strpos($message, '%field') !== FALSE) {
$message = t($message, array(
'%field' => variable_get('clientside_validation_prefix', '') . $title . variable_get('clientside_validation_suffix', ''),
));
}
switch ($callback) {
case 'fapi_validation_rule_alpha':
$type = 'alpha';
case 'fapi_validation_rule_alpha_numeric':
$type = 'alpha numeric';
case 'fapi_validation_rule_ipv4':
$type = 'ipv4';
case 'fapi_validation_rule_alpha_dash':
$type = 'alpha dash';
case 'fapi_validation_rule_digit':
$type = 'digit';
case 'fapi_validation_rule_regexp':
if ($callback == 'fapi_validation_rule_regexp') {
$expressions['fapi_validation_rule_regexp'] = is_array($params) ? $params[0] : $params;
$type = 'regexp';
}
_clientside_validation_set_regex_pcre($name, $title, $js_rules, $expressions[$callback], $message, $type);
break;
case 'fapi_validation_rule_numeric':
_clientside_validation_set_number_decimal($name, $title, '.', $js_rules, $message);
break;
case 'fapi_validation_rule_email':
_clientside_validation_set_email($name, $title, $js_rules, $message);
break;
case 'fapi_validation_rule_length':
if (count($params) == 1) {
_clientside_validation_set_minmaxlength($name, $title, '', $params[0], $js_rules, $message);
}
elseif (count($params) == 2) {
_clientside_validation_set_minmaxlength($name, $title, $params[0], $params[1], $js_rules, $message);
}
break;
case 'fapi_validation_rule_url':
_clientside_validation_set_url($name, $title, $js_rules, $message);
break;
case 'fapi_validation_rule_chars':
_clientside_validation_set_specific_values($name, $title, $params, $js_rules, $message);
break;
case 'fapi_validation_rule_decimal':
if (count($params) == 2) {
$expression = '/^[0-9]{' . $params[0] . '}\\.[0-9]{' . $params[1] . '}$/';
}
else {
$expression = '/\\d+\\.\\d+/';
}
_clientside_validation_set_regex_pcre($name, $title, $js_rules, $expression, $message, 'decimal');
break;
default:
$context = array(
'type' => 'fapi',
'rule' => $rule,
'message' => $message,
'params' => $params,
);
drupal_alter('clientside_validation_rule', $js_rules, $element, $context);
break;
}
}