function viewreference_autocomplete_validate in View reference 6.3
Same name and namespace in other branches
- 6 viewreference.module \viewreference_autocomplete_validate()
- 6.2 viewreference.module \viewreference_autocomplete_validate()
- 7.3 viewreference.module \viewreference_autocomplete_validate()
Validate an autocomplete element.
Remove the wrapper layer and set the right element's value.
1 string reference to 'viewreference_autocomplete_validate'
- viewreference_autocomplete_process in ./
viewreference.module - Process an individual element.
File
- ./
viewreference.module, line 585 - Defines a field type for referencing a view from a node.
Code
function viewreference_autocomplete_validate($element, &$form_state) {
$field_name = $element['#field_name'];
$field = content_fields($field_name);
$field_key = $element['#columns'][0];
$value = $element['#value'][$field_key];
$new_value = NULL;
if (!empty($value)) {
$regex = '/' . '(.*).*?' . '(\\[)' . '((?:[a-z][a-z0-9_]*))' . '(:)' . '((?:[a-z][a-z0-9_]*))' . '(\\])' . '/is';
// End of string
preg_match($regex, $value, $matches);
if (!empty($matches)) {
$new_value = $matches[3] . ':' . $matches[5];
$allowed = viewreference_get_views(FALSE, $field['settings']['referenceable_views']);
if (!isset($allowed[$new_value])) {
form_error($element, t('%name: View display %value cannot be referenced.', array(
'%name' => $element[$field_key]['#title'],
'%value' => $new_value,
)));
}
}
else {
form_error($element, t('%name: The value %value is in an unexpected format. Expecting: %format', array(
'%name' => $element[$field_key]['#title'],
'%value' => $value,
'%format' => '<em>View title [view:display_n]</em>',
)));
}
}
form_set_value($element, $new_value, $form_state);
}