function fb_form_friend_selector_validate in Drupal for Facebook 6.2
Same name and namespace in other branches
- 5.2 fb_form.module \fb_form_friend_selector_validate()
- 6.3 fb_form.module \fb_form_friend_selector_validate()
- 7.3 fb_form.module \fb_form_friend_selector_validate()
File
- ./
fb_form.module, line 425 - This module defines facebook-specific form elements for use with Drupal's form API.
Code
function fb_form_friend_selector_validate($element, $set_errors = TRUE) {
//dpm(func_get_args(), "fb_form_friend_selector_validate");
if (!trim($element['#value'])) {
return;
}
$names = explode(',', $element['#value']);
$items = array();
// Facebook user ids
$result = $_SESSION['fb_form_friend_selector_result'];
foreach ($names as $name) {
$found = FALSE;
foreach ($result as $data) {
$fb_name = strtolower($data['name']);
if (strtolower(trim($name)) == $fb_name) {
if ($found) {
// TODO: handle name collisions more gracefully!
if ($set_errors) {
form_set_error(implode('][', $element['#parents']), t('\'%name\' matched more than one friend.', array(
'%name' => $name,
)));
}
$found = -1;
}
else {
$found = $data['uid'];
}
}
}
if ($found > 0) {
// Running list of ids
$items[] = $found;
}
elseif ($found == 0) {
if ($set_errors) {
form_set_error(implode('][', $element['#parents']), t('Could not find a friend named \'%name\'.', array(
'%name' => $name,
)));
}
}
}
// Make the submitted value a list of ids, not a comma-seperated list of names.
form_set_value($element, $items);
_form_set_value($_POST, $element, $element['#parents'], $items);
}