Heute ist mir ein kleiner Fehler in der Klasse system/libraries/FTP.php in der Methode rename() aufgefallen (Zeile 186).
PHP-Code:
// Unix fix: rename case sensitively
if (strcasecmp($strOldName, $strNewName) !== strcmp($strOldName, $strNewName))
{
@ftp_rename($this->resConnection, $GLOBALS['TL_CONFIG']['ftpPath'] . $strOldName, $GLOBALS['TL_CONFIG']['ftpPath'] . $strOldName . '__');
$strOldName .= '__';
}
Diese if-Abfrage sollte nur ausgeführt werden, wenn ein Dateiname gleich bleibt und sich lediglich die Groß-/Kleinschreibung ändert. De facto wird sie aber immer ausgeführt, da nur geprüft wird, ob der alte und der neue Name unterschiedlich sind. Daher habe ich folgende Änderung vorgenommen:
PHP-Code:
// Unix fix: rename case sensitively
if (($strcasecmp = strcasecmp($strOldName, $strNewName)) == 0 && $strcasecmp !== strcmp($strOldName, $strNewName))
{
@ftp_rename($this->resConnection, $GLOBALS['TL_CONFIG']['ftpPath'] . $strOldName, $GLOBALS['TL_CONFIG']['ftpPath'] . $strOldName . '__');
$strOldName .= '__';
}
Dadurch wird zuerst geprüft, ob sich der Dateiname ändert, und nur wenn das nicht der Fall ist ($strcasecmp == 0), wird die weitere Anweisung ausgeführt. Falls ihr den Safe Mode Hack verwendet, bitte testet diese Änderung ausführlich und gebt mir hier Feedback. Vielen Dank.
Lesezeichen