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); } }