85 lines
2.2 KiB
PHP
85 lines
2.2 KiB
PHP
<?php
|
|
namespace ProVM\TotalSport\Common\Service;
|
|
|
|
use function Stringy\create as s;
|
|
|
|
class ImageLoader {
|
|
protected $folder;
|
|
protected $assets_folder;
|
|
public function __construct(string $images_folder, string $images_assets_folder) {
|
|
$this->folder = $images_folder;
|
|
$this->assets_folder = $images_assets_folder;
|
|
}
|
|
protected function getFolder($event) {
|
|
return implode(DIRECTORY_SEPARATOR, [
|
|
$this->folder,
|
|
'eventos',
|
|
s($event->servicio)->removeLeft('Eventos '),
|
|
rtrim(implode(', ', [
|
|
$event->titulo,
|
|
$event->empresa
|
|
]), ', ')
|
|
]);
|
|
}
|
|
public function load($event) {
|
|
$folder = $this->getFolder($event);
|
|
if (!file_exists($folder)) {
|
|
return false;
|
|
}
|
|
$files = new \DirectoryIterator($folder);
|
|
$images = [];
|
|
foreach ($files as $file) {
|
|
if ($file->isDir()) {
|
|
continue;
|
|
}
|
|
$name = $file->getBasename('.' . $file->getExtension());
|
|
$org = false;
|
|
$thumb = false;
|
|
if (strpos($name, '_') !== false) {
|
|
$name = explode('_', $name)[0];
|
|
if (strpos($name, '_org') !== false) {
|
|
$org = true;
|
|
}
|
|
if (strpos($name, '_thumb') !== false) {
|
|
$thumb = true;
|
|
}
|
|
}
|
|
$images []= implode('/', [
|
|
$this->assets_folder,
|
|
'eventos',
|
|
s($event->servicio)->removeLeft('Eventos '),
|
|
rtrim(implode(', ', [
|
|
$event->titulo,
|
|
$event->empresa
|
|
]), ', '),
|
|
$file->getFilename()
|
|
]);
|
|
}
|
|
return $images;
|
|
}
|
|
public function add($event, $file) {
|
|
$folder = $this->getFolder($event);
|
|
if (!file_exists($folder)) {
|
|
mkdir($folder);
|
|
chmod($folder, 777);
|
|
}
|
|
$images = $this->load($event);
|
|
$base_name = '01';
|
|
if ($images !== false and count($images) > 0) {
|
|
$base_name = str_pad(count($images), 2, '0', \STR_PAD_LEFT);
|
|
}
|
|
$extension = pathinfo($file->getClientFilename(), PATHINFO_EXTENSION);
|
|
$filename = implode(DIRECTORY_SEPARATOR, [
|
|
$folder,
|
|
implode('.', [
|
|
implode('_', [
|
|
$base_name,
|
|
'org'
|
|
]),
|
|
$extension
|
|
])
|
|
]);
|
|
$file->moveTo($filename);
|
|
}
|
|
}
|