You are here

function _filefield_paths_include_fix_references_filefield_paths_file_postprocess in File (Field) Paths 6.2

@file

File

includes/fix_references.inc, line 6

Code

function _filefield_paths_include_fix_references_filefield_paths_file_postprocess($source, $file, $node, $setings) {

  // Regular expression to replace old file reference.
  $file_directory_path = variable_get('file_downloads', FILE_DOWNLOADS_PUBLIC) == FILE_DOWNLOADS_PUBLIC ? file_directory_path() : 'system/files';
  $pattern = array(
    'find' => str_replace('/', '\\/', quotemeta($file_directory_path)) . '([^"]*?)' . str_replace('/', '\\/', quotemeta(str_replace(file_directory_path(), '', $source))),
    'replace' => $file_directory_path . '$1' . str_replace(file_directory_path(), '', $file['filepath']),
  );
  if (_filefield_paths_replace_pattern($pattern, $node)) {

    // We don't use node_save() here as it triggers hook_nodeapi('save') and
    // causes an infinite loop.
    global $user;
    drupal_write_record('node', $node, 'nid');
    _node_save_revision($node, $user->uid, 'vid');
  }
}