You are here

function wsfields_storage_field_storage_write in Web Service Data 7

Implements hook_field_storage_write().

2 calls to wsfields_storage_field_storage_write()
wsfields_storage_entity_insert in modules/wsfields_storage/wsfields_storage.module
Implements hook_entity_insert().
wsfields_storage_entity_update in modules/wsfields_storage/wsfields_storage.module
Implements hook_entity_update().

File

modules/wsfields_storage/wsfields_storage.module, line 193
Storage controller definitions

Code

function wsfields_storage_field_storage_write($entity_type, $entity, $op, $fields) {
  foreach ($fields as $field_id) {
    $field = field_info_field_by_id($field_id);
    $field_name = $field['field_name'];
    $all_languages = field_available_languages($entity_type, $field);
    $field_languages = array_intersect($all_languages, array_keys((array) $entity->{$field_name}));
    foreach ($field_languages as $langcode) {
      $items = (array) $entity->{$field_name}[$langcode];
      $delta_count = 0;

      // Trim the list of items down to what the field has been set to
      if ($field['cardinality'] != FIELD_CARDINALITY_UNLIMITED and count($items) > $field['cardinality']) {
        $items = array_chunk($items, count($items), TRUE);
        $items = reset($items);
      }
      wsfields_data_write($entity_type, $entity, $op, $field, $items);
    }
  }
}