You are here

function bat_event_state_entity_metadata_field_verbatim_set in Booking and Availability Management Tools for Drupal 7

Set event state value.

1 string reference to 'bat_event_state_entity_metadata_field_verbatim_set'
bat_event_state_reference_info_callback in modules/bat_event/bat_event.module
Callback to alter the property info of State reference fields.

File

modules/bat_event/bat_event.module, line 1653
Manage Events - Events store the EventValue of a Unit over a period of time.

Code

function bat_event_state_entity_metadata_field_verbatim_set($entity, $name, $items, $langcode, $entity_type) {
  $field = field_info_field($name);
  $langcode = entity_metadata_field_get_language($entity_type, $entity, $field, $langcode);
  if (isset($items['state'])) {
    $state = bat_event_load_state_by_machine_name($items['state']);
    $items['state_id'] = $state['id'];
    unset($items['state']);
  }
  $value = $field['cardinality'] == 1 ? array(
    $items,
  ) : (array) $items;

  // Filter out any items set to NULL.
  $entity->{$name}[$langcode] = array_filter($value);

  // Empty the static field language cache, so the field system picks up any
  // possible new languages.
  drupal_static_reset('field_language');
}