function socialfield_field_validate in Social field 7
Implements hook_field_validate().
File
- ./
socialfield.module, line 516 - Provides a field for adding social services links.
Code
function socialfield_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
// Clicked remove button. No validation needed.
if (!isset($items['validate_link']) || !$items['validate_link']) {
return;
}
$services = variable_get('socialfield_services');
$form_elements = array(
$field['field_name'],
$langcode,
'social_buttons',
);
foreach ($items as $delta => &$item) {
if (!$item['url']) {
// No url inserted. Nothing to validate here.
continue;
}
if (!valid_url($item['url'], TRUE)) {
// Checking if the url is valid.
$form_element = array_merge($form_elements, array(
'element_' . $delta,
'url',
));
form_set_error(implode('][', $form_element), t('Not a valid URL.'));
}
else {
// Checking if the url matches the pattern.
$match = drupal_match_path($item['url'], $services[$item['service']]['validation_pattern']);
if (!$match) {
$form_element = array_merge($form_elements, array(
'element_' . $delta,
'url',
));
form_set_error(implode('][', $form_element), t("%service link should match the following pattern: %pattern", array(
'%service' => $services[$item['service']]['name'],
'%pattern' => $services[$item['service']]['validation_pattern'],
)));
}
}
}
}