function clientside_validation_webform_after_build_recurse in Clientside Validation 7
Same name and namespace in other branches
- 6 clientside_validation_webform/clientside_validation_webform.module \clientside_validation_webform_after_build_recurse()
1 call to clientside_validation_webform_after_build_recurse()
- clientside_validation_webform_clientside_validation_webform_alter in clientside_validation_webform/
clientside_validation_webform.module - @file Adds clientside validation support for the webform module
File
- clientside_validation_webform/
clientside_validation_webform.module, line 20 - Adds clientside validation support for the webform module
Code
function clientside_validation_webform_after_build_recurse($form_id, &$form, &$form_state, &$js_rules) {
if ($children = array_values(element_children($form))) {
foreach ($children as $index => $item) {
$element = $form[$item];
$skipvalidation = FALSE;
if (isset($element['#webform_component']['extra']['exclude_cv']) && $element['#webform_component']['extra']['exclude_cv'] == "1") {
$skipvalidation = TRUE;
}
if (isset($element['#title']) && !$skipvalidation) {
if (isset($element['#type'])) {
if (isset($element['#webform_component']) && $element['#webform_component']['type'] == 'time' && isset($element['hour']['#name'])) {
$message = t('Hour in !name field is required.', array(
'!name' => variable_get('clientside_validation_prefix', '') . $element['#title'] . variable_get('clientside_validation_suffix', ''),
));
_clientside_validation_set_required($element['hour']['#name'], $element['#title'], isset($element['#required']) ? $element['#required'] : FALSE, $js_rules, $message);
$message = t('Minute in !name field is required.', array(
'!name' => variable_get('clientside_validation_prefix', '') . $element['#title'] . variable_get('clientside_validation_suffix', ''),
));
_clientside_validation_set_required($element['minute']['#name'], $element['#title'], isset($element['#required']) ? $element['#required'] : FALSE, $js_rules, $message);
}
elseif (isset($element['#webform_component']) && $element['#webform_component']['type'] == 'date') {
$message = t('Month in !name field is required.', array(
'!name' => variable_get('clientside_validation_prefix', '') . $element['#title'] . variable_get('clientside_validation_suffix', ''),
));
_clientside_validation_set_required($element['#name'] . '[month]', $element['#title'], isset($element['#required']) ? $element['#required'] : FALSE, $js_rules, $message);
$message = t('Day in !name field is required.', array(
'!name' => variable_get('clientside_validation_prefix', '') . $element['#title'] . variable_get('clientside_validation_suffix', ''),
));
_clientside_validation_set_required($element['#name'] . '[day]', $element['#title'], isset($element['#required']) ? $element['#required'] : FALSE, $js_rules, $message);
$message = t('Year in !name field is required.', array(
'!name' => variable_get('clientside_validation_prefix', '') . $element['#title'] . variable_get('clientside_validation_suffix', ''),
));
_clientside_validation_set_required($element['#name'] . '[year]', $element['#title'], isset($element['#required']) ? $element['#required'] : FALSE, $js_rules, $message);
if (isset($element['#year_start']) && isset($element['#year_end'])) {
if (is_numeric($element['#year_start']) && is_numeric($element['#year_end'])) {
$message = t('The entered date needs to be between the years @start and @end.', array(
'@start' => $element['#year_start'],
'@end' => $element['#year_end'],
));
_clientside_validation_set_minmax($element['#name'] . '[year]', $element['#title'], $element['#year_start'], $element['#year_end'], $js_rules, $message);
}
}
elseif (isset($element['#start_date']) || isset($element['#end_date'])) {
if (isset($element['#start_date']) && isset($element['#end_date'])) {
$message = t('The entered date needs to be between the dates @start and @end.', array(
'@start' => $element['#start_date'],
'@end' => $element['#end_date'],
));
$start_date = explode('-', $element['#start_date']);
$end_date = explode('-', $element['#end_date']);
}
elseif (isset($element['#start_date'])) {
$message = t('The entered date needs to be before @start', array(
'@start' => $element['#start_date'],
));
$start_date = explode('-', $element['#start_date']);
$end_date = '';
}
else {
$message = t('The entered date needs to be before @end', array(
'@end' => $element['#end_date'],
));
$start_date = '';
$end_date = explode('-', $element['#end_date']);
}
$id = 'webform-component-' . str_replace('_', '-', implode('--', array_slice($element['#parents'], 1)));
_clientside_validation_set_minmax_date($id, $element['#title'], $start_date, $end_date, $js_rules, $message);
}
}
elseif ($element['#type'] == 'checkboxes') {
$id = '#' . $element['#id'];
_clientside_validation_set_checkboxgroup_minmax($element['#name'], $element['#title'], $id, $js_rules, '', intval($element['#required']));
}
elseif ($element['#type'] == 'select' && $element['#multiple']) {
_clientside_validation_set_required($element['#name'] . '[]', $element['#title'], isset($element['#required']) ? $element['#required'] : FALSE, $js_rules);
}
elseif (isset($element['#name'])) {
_clientside_validation_set_required($element['#name'], $element['#title'], isset($element['#required']) ? $element['#required'] : FALSE, $js_rules);
}
}
if (isset($element['#webform_component']) && $element['#webform_component']['type'] == 'file') {
$file_children = element_children($element);
if (count($file_children) > 0) {
foreach ($file_children as $child) {
$file_child = $element[$child];
if (isset($file_child['#name']) && $file_child['#type'] == 'file') {
$name = $file_child['#name'];
_clientside_validation_set_required($name, $element['#title'], isset($element['#webform_component']['mandatory']) ? (bool) $element['#webform_component']['mandatory'] : FALSE, $js_rules);
if (isset($element['#webform_component']['extra']['filtering']['types'])) {
$extensions = $element['#webform_component']['extra']['filtering']['types'];
_clientside_validation_set_extensions($name, $extensions, $js_rules);
}
}
}
}
}
if (isset($element['#maxlength']) && $element['#maxlength']) {
$message = t('!name field has a max length of !maxl characters.', array(
'!name' => variable_get('clientside_validation_prefix', '') . $element['#title'] . variable_get('clientside_validation_suffix', ''),
'!maxl' => $element['#maxlength'],
));
_clientside_validation_set_minmaxlength($element['#name'], $element['#title'], '', $element['#maxlength'], $js_rules, $message);
}
if (isset($element['#webform_component']) && $element['#webform_component']['type'] == 'email') {
_clientside_validation_set_email($element['#name'], $element['#title'], $js_rules);
}
if (isset($element['#webform_component']) && $element['#webform_component']['type'] == 'number') {
if (!$element['#webform_component']['extra']['integer']) {
_clientside_validation_set_number_decimal($element['#name'], $element['#title'], $element['#webform_component']['extra']['point'], $js_rules);
}
else {
_clientside_validation_set_number($element['#name'], $element['#title'], $js_rules);
}
if (module_exists('clientside_validation_html5')) {
_clientside_validation_set_minmax_html5($element['#name'], $element['#title'], $element['#webform_component']['extra']['min'], $element['#webform_component']['extra']['max'], $element['#webform_component']['extra']['step'], $js_rules);
}
else {
_clientside_validation_set_minmax($element['#name'], $element['#title'], $element['#webform_component']['extra']['min'], $element['#webform_component']['extra']['max'], $js_rules);
}
}
}
if (isset($element['#type']) && $element['#type'] == 'captcha') {
$settings = clientside_validation_settings_current_form();
if ($settings['validate_options']['captcha']) {
$title = _clientside_validation_set_title(isset($element['captcha_widgets']['captcha_response']['#title']) ? $element['captcha_widgets']['captcha_response']['#title'] : $element['#name']);
$message = t('Wrong answer for !title', array(
'!title' => $title,
));
if (isset($element['captcha_widgets'])) {
_clientside_validation_set_captcha($element['captcha_widgets']['captcha_response']['#name'], $title, $element['#captcha_validate'], $js_rules, $message, $element['captcha_token']['#value']);
}
}
}
clientside_validation_webform_after_build_recurse($form_id, $element, $form_state, $js_rules);
}
}
}