achso, ja klar.
Das problem ist nur, dass ich eigentlich kein PHP programmieren kann...
...aber probieren kann ich es ja.
Wie man einen Hook einsetzt, erkläre ich aber nicht noch einmal, Ok?!
Bei mir heißt der Hook imageRename, die Funktion heißt postUpload, also lautet die config.php bei mir:
Code:
$GLOBALS['TL_HOOKS']['postUpload'][] = array('imageRename', 'postUpload');
Die imageRename.php sieht dann so aus:
Code:
class imageRename extends Backend
{
public function postUpload($arrFiles)
{
for($i = 0; $i<count($arrFiles); ++$i)
{
$fileul = $arrFiles[$i];
$path_parts = pathinfo($fileul);
$oldfilename = $path_parts['filename'];
$oldextension = $path_parts['extension'];
$newfilename = strtolower($oldfilename);
$newextension = strtolower($oldextension);
$newfile = str_replace ($oldfilename, $newfilename, $fileul);
$newfileextension = str_replace ($oldextension, $newextension, $newfile);
$oldname = "../".$fileul;
$newname = "../".strtr($newfileextension, " ", "_");
rename ($oldname, $newname);
}
}
}
Also erstmal eine Schleife, falls es sich um mehrere Dateien im Upload handelt.
Dann wird mit pathinfo() der Dateiname und die -erweiterung extrahiert.
Mit strtolower() werden Dateiname und -erweiterung kleingemacht.
Mit str_replace() wird der alte Name durch kleingeschriebenen Dateiname ersetzt.
Dann mit strtr() werden die Leerzeichen durch Unterstriche ersetzt.
Abschließend wird mit rename() die Datei im Filesystem umbenannt.
Sicher nicht besonders schön, aber es funktioniert. Jetzt kann mein Kunde seine Bilder benennen wie er möchte. Nach dem Upload ist alles kleingeschrieben und hat keine Leerzeichen mehr.
Lesezeichen