Das geht auch analog, allerdings erstellt lazyResize 2 Dateien, anstatt nur eine Datei.
Die 2. Datei hat einfach noch den Suffix .meta
Aber erstmal zum $target, um $target zu benutzen musst du einen vollständigen Dateipfad übergeben, nicht einfach nur einen Suffix.
PHP-Code:
<?php
$source = 'tl_files/foo.png';
$target = 'tl_files/bar.png';
$pfad = $this->getImage($source, 100, 100, 'crop', $target);
?>
Dann ist hinterher $pfad === $target.
Aber zurück zu lazyResize, bei lazyResize werden 2 Dateien in system/images/ (nicht in system/html/) erstellt.
Z.B.:
PHP-Code:
<?php
$source = 'tl_files/foo.png';
$pfad = $this->getImage($source, 100, 100, 'crop');
?>
Dann gibt es 2 Dateien:
PHP-Code:
<?php
$image = $pfad;
$meta = $pfad . '.meta';
?>
Bedeutet für dich Analog:
PHP-Code:
<?php
$source = 'tl_files/foo.png';
$image = $this->getImage($source, 600, 500);
$thumb = preg_replace('#(\.\w+)$#', '_thumb$1', $image);
if (!file_exists(TL_ROOT . '/' . $thumb)) {
$this->getImage($source, 100, 100, '', $thumb);
}
?>
Die Dateien zu Verschieben ist eine ganz dumme Idee, weil Contao dann IMMER die Datei neu erstellen wird, weil diese Bedingung nicht mehr greift.
Mir ist aber im Zusammenhang mit $target gerade auch aufgefallen, dass die Datei immer neu erstellt wird, deshalb habe ich oben auch ein file_exists eingebaut. Ich habe dafür einen entsprechenden Pull Request geschickt.
MfG Tristan
Lesezeichen