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

Moved logo to image folder

This commit is contained in:
trendschau
2021-12-15 16:48:10 +01:00
parent aec4dbb934
commit cfa7b7be32
7 changed files with 199 additions and 14 deletions

View File

@@ -72,7 +72,15 @@ class ControllerFrontendWebsite extends ControllerShared
$logo = false;
if(isset($this->settings['logo']) && $this->settings['logo'] != '')
{
$logo = 'media/files/' . $this->settings['logo'];
# check if logo exists
if(file_exists($this->settings['rootPath'] . 'media/live/' . $this->settings['logo']))
{
$logo = 'media/live/' . $this->settings['logo'];
}
elseif(file_exists($this->settings['rootPath'] . 'media/files/' . $this->settings['logo']))
{
$logo = 'media/files/' . $this->settings['logo'];
}
}
$favicon = false;

View File

@@ -82,7 +82,7 @@ class ControllerSettings extends ControllerShared
$files = $request->getUploadedFiles();
$newSettings = isset($params['settings']) ? $params['settings'] : false;
$validate = new Validation();
$processFiles = new ProcessFile();
$processImage = new ProcessImage();
if($newSettings)
{
@@ -151,7 +151,7 @@ class ControllerSettings extends ControllerShared
return $response->withRedirect($this->c->router->pathFor('settings.show'));
}
if(!$processFiles->checkFolders())
if(!$processImage->checkFolders())
{
$this->c->flash->addMessage('error', 'Please make sure that your media folder exists and is writable.');
return $response->withRedirect($this->c->router->pathFor('settings.show'));
@@ -159,9 +159,9 @@ class ControllerSettings extends ControllerShared
# handle single input with single file upload
$logo = $files['settings']['logo'];
$allowed = ['jpg', 'jpeg', 'png', 'svg'];
if($logo->getError() === UPLOAD_ERR_OK)
{
$allowed = ['jpg', 'jpeg', 'png', 'svg'];
$extension = pathinfo($logo->getClientFilename(), PATHINFO_EXTENSION);
if(!in_array(strtolower($extension), $allowed))
{
@@ -170,12 +170,20 @@ class ControllerSettings extends ControllerShared
return $response->withRedirect($this->c->router->pathFor('settings.show'));
}
$processFiles->deleteFileWithName('logo');
$newSettings['logo'] = $processFiles->moveUploadedFile($logo, $overwrite = true, $name = 'logo');
foreach($allowed as $logoextension)
{
$processImage->deleteImage('logo.' . $logoextension);
}
$newSettings['logo'] = $processImage->moveUploadedImage($logo, $overwrite = true, $name = 'logo');
$processImage->copyImage('logo.' . $logoextension, $processImage->liveFolder, $processImage->thumbFolder);
}
elseif(isset($params['settings']['deletelogo']) && $params['settings']['deletelogo'] == 'delete')
{
$processFiles->deleteFileWithName('logo');
foreach($allowed as $logoextension)
{
$processImage->deleteImage('logo.' . $logoextension);
}
$newSettings['logo'] = '';
}
else
@@ -195,7 +203,7 @@ class ControllerSettings extends ControllerShared
return $response->withRedirect($this->c->router->pathFor('settings.show'));
}
$processImage = new ProcessImage([
$processFavImage = new ProcessImage([
'16' => ['width' => 16, 'height' => 16],
'32' => ['width' => 32, 'height' => 32],
'72' => ['width' => 72, 'height' => 72],
@@ -203,19 +211,19 @@ class ControllerSettings extends ControllerShared
'144' => ['width' => 144, 'height' => 144],
'180' => ['width' => 180, 'height' => 180],
]);
$favicons = $processImage->generateSizesFromImageFile('favicon.png', $favicon->file);
$favicons = $processFavImage->generateSizesFromImageFile('favicon.png', $favicon->file);
foreach($favicons as $key => $favicon)
{
imagepng( $favicon, $processFiles->fileFolder . 'favicon-' . $key . '.png' );
# $processFiles->moveUploadedFile($favicon, $overwrite = true, $name = 'favicon-' . $key);
imagepng( $favicon, $processFavImage->fileFolder . 'favicon-' . $key . '.png' );
}
$newSettings['favicon'] = 'favicon';
}
elseif(isset($params['settings']['deletefav']) && $params['settings']['deletefav'] == 'delete')
{
$processFiles->deleteFileWithName('favicon');
$processFiles = new ProcessFile();
$processFiles->deleteFileWithName('favicon-*.png');
$newSettings['favicon'] = '';
}
else

View File

@@ -13,7 +13,7 @@ class ProcessFile extends ProcessAssets
* @param UploadedFile $uploadedFile file uploaded file to move
* @return string filename of moved file
*/
public function moveUploadedFile(UploadedFile $uploadedFile, $overwrite = false, $name = false)
public function moveUploadedFile(UploadedFile $uploadedFile, $overwrite = false, $name = false, $folder = NULL)
{
$this->setFileName($uploadedFile->getClientFilename(), 'file');
@@ -104,7 +104,7 @@ class ProcessFile extends ProcessAssets
if($name != '' && !in_array($name, array(".","..")))
{
foreach(glob($this->fileFolder . $name . '.*') as $file)
foreach(glob($this->fileFolder . $name) as $file)
{
unlink($file);
}

View File

@@ -1,6 +1,7 @@
<?php
namespace Typemill\Models;
use Slim\Http\UploadedFile;
use Typemill\Models\Helpers;
class ProcessImage extends ProcessAssets
@@ -261,6 +262,32 @@ class ProcessImage extends ProcessAssets
return false;
}
/**
* Moves the uploaded file to the upload directory. Only used for settings / NON VUE.JS uploads
*
* @param string $directory directory to which the file is moved
* @param UploadedFile $uploadedFile file uploaded file to move
* @return string filename of moved file
*/
public function moveUploadedImage(UploadedFile $uploadedFile, $overwrite = false, $name = false, $folder = NULL)
{
$this->setFileName($uploadedFile->getClientFilename(), 'file');
if($name)
{
$this->setFileName($name . '.' . $this->extension, 'file', $overwrite);
}
if(!$folder)
{
$folder = $this->liveFolder;
}
$uploadedFile->moveTo($folder . $this->getFullName());
return $this->getFullName();
}
public function deleteImage($name)
{
@@ -301,6 +328,35 @@ class ProcessImage extends ProcessAssets
return $result;
}
public function deleteImageWithName($name)
{
# e.g. delete $name = 'logo...';
$name = basename($name);
if($name != '' && !in_array($name, array(".","..")))
{
foreach(glob($this->liveFolder . $name) as $file)
{
unlink($file);
}
foreach(glob($this->originalFolder . $name) as $file)
{
unlink($file);
}
foreach(glob($this->thumbFolder . $name) as $file)
{
unlink($file);
}
}
}
public function copyImage($name,$sourcefolder,$targetfolder)
{
copy($sourcefolder . $name, $targetfolder . $name);
}
/*
* scans content of a folder (without recursion)
* vars: folder path as string