1
0
mirror of https://github.com/typemill/typemill.git synced 2025-07-31 19:30:40 +02:00

Add svg support

This commit is contained in:
trendschau
2021-09-02 14:50:42 +02:00
parent b722b639fc
commit 5f597c31ad
14 changed files with 142 additions and 68 deletions

View File

@@ -22,6 +22,19 @@ class ProcessImage extends ProcessAssets
$imageData = $imageDecoded["image"];
$imageType = $imageDecoded["type"];
if($imageType == 'svg+xml')
{
# store the original name as txt-file
$tmpname = fopen($this->tmpFolder . $this->getName() . ".svg.txt", "w");
# store the same svg file for original, live and thumb.
$this->saveOriginal($this->tmpFolder, $imageData, $name = 'original', 'svg');
$this->saveOriginal($this->tmpFolder, $imageData, $name = 'live', 'svg');
$this->saveOriginal($this->tmpFolder, $imageData, $name = 'thumbs', 'svg');
return true;
}
$this->setExtension($imageType);
# transform image-stream into image
@@ -325,17 +338,34 @@ class ProcessImage extends ProcessAssets
{
$imageinfo = getimagesize($this->liveFolder . $name);
$imagedetails = [
'name' => $name,
'timestamp' => filemtime($this->liveFolder . $name),
'bytes' => filesize($this->liveFolder . $name),
'width' => $imageinfo[0],
'height' => $imageinfo[1],
'type' => $imageinfo['mime'],
'src_thumb' => 'media/thumbs/' . $name,
'src_live' => 'media/live/' . $name,
'pages' => $this->findPagesWithUrl($structure, $name, $result = [])
];
if(!$imageinfo && pathinfo($this->liveFolder . $name, PATHINFO_EXTENSION) == 'svg')
{
$imagedetails = [
'name' => $name,
'timestamp' => filemtime($this->liveFolder . $name),
'bytes' => filesize($this->liveFolder . $name),
'width' => '---',
'height' => '---',
'type' => 'svg',
'src_thumb' => 'media/thumbs/' . $name,
'src_live' => 'media/live/' . $name,
'pages' => $this->findPagesWithUrl($structure, $name, $result = [])
];
}
else
{
$imagedetails = [
'name' => $name,
'timestamp' => filemtime($this->liveFolder . $name),
'bytes' => filesize($this->liveFolder . $name),
'width' => $imageinfo[0],
'height' => $imageinfo[1],
'type' => $imageinfo['mime'],
'src_thumb' => 'media/thumbs/' . $name,
'src_live' => 'media/live/' . $name,
'pages' => $this->findPagesWithUrl($structure, $name, $result = [])
];
}
return $imagedetails;
}

View File

@@ -29,12 +29,12 @@ class Validation
Validator::addRule('image_types', function($field, $value, array $params, array $fields) use ($user)
{
$allowed = ['jpg', 'jpeg', 'png', 'webp'];
$allowed = ['jpg', 'jpeg', 'png', 'webp', 'svg'];
$pathinfo = pathinfo($value);
$extension = strtolower($pathinfo['extension']);
if(in_array($extension, $allowed)){ return true; }
return false;
}, 'only jpg, jpeg, png, webp, allowed');
}, 'only jpg, jpeg, png, webp, svg allowed');
# checks if email is available if user is created
Validator::addRule('emailAvailable', function($field, $value, array $params, array $fields) use ($user)