function viewreference_autocomplete_validate in View reference 6.2
Same name and namespace in other branches
- 6.3 viewreference.module \viewreference_autocomplete_validate()
- 6 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 587 - 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];
$delta = $element['#delta'];
$value = $element['#value'][$field_key];
$vid = NULL;
if (!empty($value)) {
preg_match('/^(?:\\s*|(.*) )?\\[\\s*view\\s*:\\s*(\\d+)\\s*\\]$/', $value, $matches);
if (!empty($matches)) {
// explicit vid
list(, $title, $vid) = $matches;
$args[] = $vid;
$result = db_query("SELECT title FROM {viewreference} WHERE view_id = '%s'", $args);
if (!empty($title) && ($v = db_fetch_object($result)) && $title != $v->title) {
form_set_error($element[$field_key], t('%name: Title mismatch. Please check your selection.'), array(
'%name' => t($element[$field_key]['#title']),
));
}
}
else {
$vids = _viewreference_potential_references($field, FALSE, $value, TRUE);
$vid = !empty($vids) ? array_shift(array_keys($vids)) : 0;
}
}
form_set_value($element, $vid, $form_state);
return $element;
}