'files:([^"]*?)' . str_replace('/', '\/', str_replace(file_directory_path() . '/', '', $file['filepath']['old'])), 'regex_enc' => 'files:([^"]*?)' . str_replace('/', '\/', str_replace(drupal_urlencode(file_directory_path()) . '/', '', drupal_urlencode($file['filepath']['old']))), 'replace' => 'files:$1' . str_replace(file_directory_path() . '/', '', $file['filepath']['new']), ); $fields = array(); // Get Node fields. if (isset($node->body)) { $fields += array( 'body' => &$node->body, 'teaser' => &$node->teaser, ); } // Get CCK fields. if (module_exists('content')) { $content_type = content_types($node->type); foreach ($content_type['fields'] as $name => $field) { if ($field['type'] == 'text' && is_array($node->{$name})) { foreach ($node->{$name} as $key => $value) { if (isset($node->{$name}[$key]['value'])) { $fields["{$name}_{$key}"] = &$node->{$name}[$key]['value']; } } } } } // Loop through all fields and process filter. foreach ($fields as $field => &$data) { ${$field} = (preg_match('/'. $pattern['regex'] .'/s', $data)) ? preg_replace('/'. $pattern['regex'] .'/s', $pattern['replace'], $data) : preg_replace('/'. $pattern['regex_enc'] .'/s', $pattern['replace'], $data); if (${$field} != $data) { $data = ${$field}; // Mark node for update. if ($field == 'body' || $field == 'teaser') { $update->node = TRUE; } } } } }