summaryrefslogtreecommitdiff
path: root/modules/file/file.field.inc
diff options
context:
space:
mode:
Diffstat (limited to 'modules/file/file.field.inc')
-rw-r--r--modules/file/file.field.inc16
1 files changed, 16 insertions, 0 deletions
diff --git a/modules/file/file.field.inc b/modules/file/file.field.inc
index eb43c4f35..4fce28414 100644
--- a/modules/file/file.field.inc
+++ b/modules/file/file.field.inc
@@ -242,6 +242,22 @@ function file_field_prepare_view($entity_type, $entities, $field, $instances, $l
}
/**
+ * Implements hook_field_presave().
+ */
+function file_field_presave($obj_type, $object, $field, $instance, $langcode, &$items) {
+ // Make sure that each file which will be saved with this object has a
+ // permanent status, so that it will not be removed when temporary files are
+ // cleaned up.
+ foreach ($items as $item) {
+ $file = file_load($item['fid']);
+ if (($file->status & FILE_STATUS_PERMANENT) == 0) {
+ $file->status |= FILE_STATUS_PERMANENT;
+ file_save($file);
+ }
+ }
+}
+
+/**
* Implements hook_field_update().
*
* Check for files that have been removed from the object.