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!');