You are here

function composed_field_field_presave in Composed Field 7

Implements hook_field_presave().

Lumps all the subfield values into an serialized array so it gets saved as a single field value into the database.

File

./composed_field.module, line 226
Defines composed field type.

Code

function composed_field_field_presave($entity_type, $entity, $field, $instance, $langcode, &$items) {
  if ($field['type'] == 'composed_field') {
    foreach ($items as $delta => $item) {
      $all_subfields_have_value = FALSE;
      foreach ($item['composed'] as $subfield_value) {
        if (!empty($subfield_value)) {
          $all_subfields_have_value = TRUE;
          break;
        }
      }
      if ($all_subfields_have_value) {

        // Save it.
        $items[$delta]['composed'] = serialize($item['composed']);
      }
      else {

        // Do not save it.
        unset($items[$delta]);
      }
    }
  }
}