Skip to content

Commit 6c89d0e

Browse files
committed
fix: allineamento funzionalità verifica integrità files
1 parent 70c5e39 commit 6c89d0e

2 files changed

Lines changed: 43 additions & 4 deletions

File tree

modules/aggiornamenti/src/Controlli/IntegritaFile.php

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,16 @@ protected function checkOrphanFiles()
301301
$directory = $upload->attachments_directory;
302302
if (!empty($directory)) {
303303
$registered_files[] = $directory.'/'.$upload->filename;
304+
305+
// Aggiungo i thumbnails se il file è un'immagine
306+
if ($upload->isImage()) {
307+
$info = $upload->info;
308+
$thumbnail_sizes = ['600', '250', '100'];
309+
foreach ($thumbnail_sizes as $size) {
310+
$thumbnail_filename = $info['filename'].'_thumb'.$size.'.'.$info['extension'];
311+
$registered_files[] = $directory.'/'.$thumbnail_filename;
312+
}
313+
}
304314
} else {
305315
// File nella root della cartella files (caso raro)
306316
$registered_files[] = $upload->filename;
@@ -325,13 +335,13 @@ protected function shouldExcludeFile($item, $relative_path)
325335
return true;
326336
}
327337

328-
// File delle firme degli interventi (salvati direttamente senza passare per zz_files)
329-
// Pattern: interventi/firma_*.jpg o interventi/firma_*.png
330-
if (preg_match('#^interventi/firma_\d+\.(jpg|png)$#', $relative_path)) {
338+
// Thumbnails delle immagini (gestiti automaticamente)
339+
// Pattern: *_thumb600.*, *_thumb250.*, *_thumb100.*
340+
if (preg_match('#_thumb(600|250|100)\.[a-z]+$#i', $item)) {
331341
return true;
332342
}
333343

334-
// File delle presentazioni bancarie (salvati direttamente)
344+
// File delle presentazioni bancarie (plugin di fatturazione)
335345
// Pattern: presentazioni_bancarie/*.xml
336346
if (preg_match('#^presentazioni_bancarie/.*\.xml$#', $relative_path)) {
337347
return true;

src/Models/Upload.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,9 +260,38 @@ public function delete()
260260

261261
$filesystem->delete($this->attachments_directory.'/'.$this->filename);
262262

263+
// Elimino i thumbnails associati se il file è un'immagine
264+
if ($this->isImage()) {
265+
$this->deleteThumbnails($filesystem);
266+
}
267+
263268
return parent::delete();
264269
}
265270

271+
/**
272+
* Elimina i thumbnails associati al file immagine.
273+
*
274+
* @param OSMFilesystem $filesystem
275+
* @return void
276+
*/
277+
protected function deleteThumbnails($filesystem)
278+
{
279+
$info = $this->info;
280+
$directory = $this->attachments_directory;
281+
282+
// Dimensioni dei thumbnails
283+
$thumbnail_sizes = ['600', '250', '100'];
284+
285+
foreach ($thumbnail_sizes as $size) {
286+
$thumbnail_filename = $info['filename'].'_thumb'.$size.'.'.$info['extension'];
287+
try {
288+
$filesystem->delete($directory.'/'.$thumbnail_filename);
289+
} catch (\Exception) {
290+
// Se il thumbnail non esiste, continuo senza errori
291+
}
292+
}
293+
}
294+
266295
public function save(array $options = [], $skip_resize = false)
267296
{
268297
if ($this->isImage() && !$skip_resize) {

0 commit comments

Comments
 (0)