FileEventSubscriber.php in Thunder 6.2.x
File
modules/thunder_media/src/EventSubscriber/FileEventSubscriber.php
View source
<?php
namespace Drupal\thunder_media\EventSubscriber;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\File\Event\FileUploadSanitizeNameEvent;
use Drupal\pathauto\AliasCleanerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class FileEventSubscriber implements EventSubscriberInterface {
protected $config;
protected $aliasCleaner;
public function __construct(ConfigFactoryInterface $configFactory, AliasCleanerInterface $aliasCleaner = NULL) {
$this->config = $configFactory
->get('thunder_media.settings');
$this->aliasCleaner = $aliasCleaner;
}
public function sanitizeFilename(FileUploadSanitizeNameEvent $event) {
if ($this->config
->get('enable_filename_transliteration')) {
$pathinfo = pathinfo($event
->getFilename());
if (!empty($pathinfo['filename']) && !empty($pathinfo['extension'])) {
$cleanFilename = $this->aliasCleaner
->cleanString($pathinfo['filename']) . '.' . $pathinfo['extension'];
$event
->setFilename($cleanFilename);
}
}
}
public static function getSubscribedEvents() {
return [
FileUploadSanitizeNameEvent::class => 'sanitizeFilename',
];
}
}