1 field.api.php hook_field_storage_pre_insert($entity_type, $entity, &$skip_fields)

Act before the storage backends insert field data.

This hook allows modules to store data before the Field Storage API, optionally preventing the field storage module from doing so.

Parameters

$entity_type: The type of $entity; for example, 'node' or 'user'.

$entity: The entity with fields to save.

$skip_fields: An array keyed by field IDs whose data has already been written and therefore should not be written again. The values associated with these keys are not specified.

Return value

Saved field IDs are set set as keys in $skip_fields.:

Related topics

File

core/modules/field/field.api.php, line 2251
Hooks provided by the Field module.

Code

function hook_field_storage_pre_insert($entity_type, $entity, &$skip_fields) {
  if ($entity_type == 'node' && $entity->status) {
    $query = db_insert('custom_index')->fields(array('nid', 'title', 'tid', 'sticky', 'created', 'comment_count', 'last_comment_timestamp'));
    foreach ($entity->custom as $language) {
      foreach ($language as $delta) {
        $query->values(array(
          'nid' => $entity->nid,
          'title' => $entity->title,
          'tid' => $delta['value'],
          'sticky' => $entity->sticky,
          'created' => $entity->created,
          'comment_count' => 0,
          'last_comment_timestamp' => $entity->created,
        ));
      }
    }
    $query->execute();
  }
}