diff --git a/admin/tool/langimport/classes/controller.php b/admin/tool/langimport/classes/controller.php index 5f743d70cca..d3eee5887bc 100644 --- a/admin/tool/langimport/classes/controller.php +++ b/admin/tool/langimport/classes/controller.php @@ -175,33 +175,6 @@ class controller { } } - // Clean-up currently installed versions of the packs. - foreach ($neededlangs as $packindex => $pack) { - if ($pack == 'en') { - continue; - } - - // Delete old directories. - $dest1 = $CFG->dataroot.'/lang/'.$pack; - $dest2 = $CFG->dirroot.'/lang/'.$pack; - if (file_exists($dest1)) { - if (!remove_dir($dest1)) { - $this->errors[] = 'Could not delete old directory '.$dest1.', update of '.$pack - .' failed, please check permissions.'; - unset($neededlangs[$packindex]); - continue; - } - } - if (file_exists($dest2)) { - if (!remove_dir($dest2)) { - $this->errors[] = 'Could not delete old directory '.$dest2.', update of '.$pack - .' failed, please check permissions.'; - unset($neededlangs[$packindex]); - continue; - } - } - } - try { $updated = $this->install_languagepacks($neededlangs, true); } catch (\moodle_exception $e) { diff --git a/lib/componentlib.class.php b/lib/componentlib.class.php index 972a30fa024..07571961d5d 100644 --- a/lib/componentlib.class.php +++ b/lib/componentlib.class.php @@ -323,8 +323,14 @@ class component_installer { /// Move current revision to a safe place $destinationdir = $CFG->dataroot.'/'.$this->destpath; $destinationcomponent = $destinationdir.'/'.$this->componentname; - @remove_dir($destinationcomponent.'_old'); //Deleting possible old components before - @rename ($destinationcomponent, $destinationcomponent.'_old'); //Moving to a safe place + @remove_dir($destinationcomponent.'_old'); // Deleting a possible old version. + + // Moving to a safe place. + $moveresult = rename($destinationcomponent, $destinationcomponent.'_old'); + if (!$moveresult) { + debugging("Failed to rename {$destinationcomponent} to {$destinationcomponent}_old while installing a language"); + } + /// Unzip new version if (!unzip_file($zipfile, $destinationdir, false)) { /// Error so, go back to the older