function oa_notifications_select2widget_entity_validate_field in Open Atrium Notifications 7.2
Sets form value
Parameters
$element:
$form_state:
$form:
File
- ./
oa_notifications.module, line 742
Code
function oa_notifications_select2widget_entity_validate_field(&$element, &$form_state, $form) {
$value = array();
$entity_labels = array();
$settings = $element['#settings']['select2widgetajax'];
$field = field_widget_field($element, $form_state);
$instance = field_info_instance($element['#entity_type'], $element['#field_name'], $element['#bundle']);
$target_entities = explode(',', $element['#value']);
foreach ($target_entities as &$target_entity) {
if (is_numeric($target_entity)) {
$value[$target_entity] = $target_entity;
$entity = entity_load_single($field['settings']['target_type'], $target_entity);
if ($entity !== FALSE) {
$label = entity_label($field['settings']['target_type'], $entity);
$key = "{$label} ({$target_entity})";
}
else {
$key = "Anonymous ({$target_entity})";
}
// Labels containing commas or quotes must be wrapped in quotes.
if (strpos($key, ',') !== FALSE || strpos($key, '"') !== FALSE) {
$key = '"' . str_replace('"', '""', $key) . '"';
}
$entity_labels[$target_entity] = $key;
}
elseif (preg_match("/.+\\((\\d+)\\)/", $target_entity, $matches)) {
$entity_labels[$matches[1]] = $target_entity;
$value[$matches[1]] = $matches[1];
}
}
$element['#attached']['js'][0]['data']['select2widgetajax']['elements'][$element['#id']]['init'] = $entity_labels;
//Update default values
form_set_value($element, $value, $form_state);
}