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);
}
}
}