You are here

function node_field_file_node_field_update in Node Field 7.2

Implements hook_node_field_update().

File

modules/node_field_file/node_field_file.module, line 30

Code

function node_field_file_node_field_update($field) {
  if (isset($field['value']) && isset($field['type']) && $field['type'] == 'file') {
    if (empty($field['value'])) {
      $node_field = node_field_load($field['id']);
      if ($node_field['value']) {
        $file = file_load($node_field['value']);
        if ($file) {
          file_usage_delete($file, 'node_field_file', 'node_field', $field['id']);
          file_delete($file);
        }
      }
    }
    else {
      $file_system = empty($field['settings']['file_system']) ? 'public' : $field['settings']['file_system'];
      $file = file_load($field['value']);
      if ($file) {
        $file->status = FILE_STATUS_PERMANENT;
        $destination = $file_system . '://' . $file->filename;
        $destination = file_unmanaged_move($file->uri, $destination, FILE_EXISTS_RENAME);
        $file->uri = $destination;
        file_save($file);
        file_usage_add($file, 'node_field_file', 'node_field', $field['id']);
      }
    }
  }
}