diff --git a/include/admin/images.inc.php b/include/admin/images.inc.php
index a248f886..ef093f18 100644
--- a/include/admin/images.inc.php
+++ b/include/admin/images.inc.php
@@ -181,8 +181,10 @@ switch ($serendipity['GET']['adminAction']) {
if (!serendipity_checkFormToken() || !serendipity_checkPermission('adminImagesDelete')) {
return;
}
- if (!serendipity_renameFile($serendipity['GET']['fid'], $serendipity['GET']['newname'])) {
- $data['messages'] = sprintf(' ' . ERROR_FILE_EXISTS . "\n", $serendipity['GET']['newname']);
+ $result = serendipity_renameFile($serendipity['GET']['fid'], $serendipity['GET']['newname']);
+ if (!empty($result) && $result !== TRUE) {
+ # serendipity_renameFile returned an error
+ $data['messages'] = $result;
}
break;
diff --git a/include/functions_images.inc.php b/include/functions_images.inc.php
index 32d555ba..0f459a22 100644
--- a/include/functions_images.inc.php
+++ b/include/functions_images.inc.php
@@ -2262,15 +2262,22 @@ function serendipity_renameFile($id, $newName, $path = null) {
$newPath = "{$imgBase}{$path}{$newName}.{$file['extension']}";
if (file_exists($newPath)) {
- return false;
+ return sprintf(' ' . ERROR_FILE_EXISTS . "\n", $newName);
}
- rename("{$imgBase}{$file['path']}{$file['realname']}", $newPath);
+ if (rename("{$imgBase}{$file['path']}{$file['realname']}", $newPath)) {
+ # if renaming was successfull, rename thumbnails and update
+ # databases and entries
- serendipity_renameThumbnails($id, "{$path}$newName");
+ serendipity_renameThumbnails($id, "{$path}$newName");
- serendipity_updateImageInDatabase(array('name' => $newName, 'realname' => basename($newPath)), $id);
- serendipity_updateImageInEntries($id, $file);
+ serendipity_updateImageInDatabase(array('name' => $newName, 'realname' => basename($newPath)), $id);
+ serendipity_updateImageInEntries($id, $file);
+ } else {
+ return ' ' . MEDIA_RENAME_FAILED . "\n";
+ }
+
+ return TRUE;
}
/**
diff --git a/lang/UTF-8/serendipity_lang_de.inc.php b/lang/UTF-8/serendipity_lang_de.inc.php
index 8828ebd3..bc566c64 100644
--- a/lang/UTF-8/serendipity_lang_de.inc.php
+++ b/lang/UTF-8/serendipity_lang_de.inc.php
@@ -1132,3 +1132,4 @@
@define('SOURCE', 'Quelle');
@define('PLUGIN_SOURCE_BUNDLED', 'mitgeliefertes Plugin');
@define('PLUGIN_SOURCE_LOCAL', 'lokal installiert');
+@define('MEDIA_RENAME_FAILED', 'Umbenennen fehlgeschlagen!');
diff --git a/lang/UTF-8/serendipity_lang_en.inc.php b/lang/UTF-8/serendipity_lang_en.inc.php
index d9f85b23..51ee3bb0 100644
--- a/lang/UTF-8/serendipity_lang_en.inc.php
+++ b/lang/UTF-8/serendipity_lang_en.inc.php
@@ -1134,3 +1134,4 @@
@define('SOURCE', 'Source');
@define('PLUGIN_SOURCE_BUNDLED', 'bundled core plugin');
@define('PLUGIN_SOURCE_LOCAL', 'locally installed');
+@define('MEDIA_RENAME_FAILED', 'Renaming failed!');
diff --git a/lang/serendipity_lang_de.inc.php b/lang/serendipity_lang_de.inc.php
index decac11c..56a79742 100644
--- a/lang/serendipity_lang_de.inc.php
+++ b/lang/serendipity_lang_de.inc.php
@@ -1132,3 +1132,4 @@
@define('SOURCE', 'Quelle');
@define('PLUGIN_SOURCE_BUNDLED', 'mitgeliefertes Plugin');
@define('PLUGIN_SOURCE_LOCAL', 'lokal installiert');
+@define('MEDIA_RENAME_FAILED', 'Umbenennen fehlgeschlagen!');
diff --git a/lang/serendipity_lang_en.inc.php b/lang/serendipity_lang_en.inc.php
index 16817e79..836e4b2e 100644
--- a/lang/serendipity_lang_en.inc.php
+++ b/lang/serendipity_lang_en.inc.php
@@ -1134,3 +1134,4 @@
@define('SOURCE', 'Source');
@define('PLUGIN_SOURCE_BUNDLED', 'bundled core plugin');
@define('PLUGIN_SOURCE_LOCAL', 'locally installed');
+@define('MEDIA_RENAME_FAILED', 'Renaming failed!');