Skip to content

Commit f2fa585

Browse files
Merge pull request #13 from MichaelvanLaar/master
Fix issue with unsupported image type uploads, add missing functionality to remove WebP files when deleting the original files via the panel
2 parents 696c5cb + b7e1bdc commit f2fa585

File tree

2 files changed

+29
-5
lines changed

2 files changed

+29
-5
lines changed

index.php

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,41 @@
33
@include_once __DIR__ . '/vendor/autoload.php';
44
@include_once __DIR__ . '/src/webp.php';
55

6+
function shouldGenerateWebP($file) {
7+
return $file->kirby()->option('kirby3-webp', false);
8+
}
9+
10+
function generateWebP($file) {
11+
(new WebP\Convert)->generateWebP($file);
12+
}
13+
14+
function deleteWebPFiles($file) {
15+
$webpFile = dirname($file->root()) . '/' . $file->name() . '.webp';
16+
$webpTxtFile = dirname($file->root()) . '/' . $file->name() . '.webp.txt';
17+
deleteIfExist($webpFile);
18+
deleteIfExist($webpTxtFile);
19+
}
20+
21+
function deleteIfExist($file) {
22+
if (F::exists($file)) {
23+
F::remove($file);
24+
}
25+
}
26+
627
Kirby::plugin('felixhaeberle/kirby3-webp', [
728
'hooks' => [
829
'file.create:after' => function ($file) {
9-
if ($this->option('kirby3-webp', false)) {
10-
(new WebP\Convert)->generateWebP($file);
30+
if (shouldGenerateWebP($file)) {
31+
generateWebP($file);
1132
}
1233
},
1334
'file.replace:after' => function ($newFile, $oldFile) {
14-
if ($this->option('kirby3-webp', false)) {
15-
(new WebP\Convert)->generateWebP($newFile);
35+
if (shouldGenerateWebP($newFile)) {
36+
generateWebP($newFile);
1637
}
1738
},
39+
'file.delete:after' => function ($file) {
40+
deleteWebPFiles($file);
41+
},
1842
],
1943
]);

lib/Convert.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function generateWebP($file)
2929
{
3030
try {
3131
// Checking file type since only images are processed
32-
if ($file->type() == 'image') {
32+
if (in_array($file->extension(), ['jpg', 'jpeg', 'png'])) {
3333
// WebPConvert options
3434
$path = $file->contentFileDirectory() . '/';
3535
$input = $path . $file->filename();

0 commit comments

Comments
 (0)