/**
  * Get form instance
  *
  * @return object
  */
 public function getForm()
 {
     // get form builder
     if (!$this->form) {
         // add extra filters
         $this->formElements['name']['filters'] = [['name' => 'stringtolower']];
         // set the default file name
         $this->formElements['name']['value'] = $this->isDirectory ? $this->fileName : FileSystemUtility::getFileName($this->fileName);
         // remove the file's extension
         // init the max file name length
         $this->maxFileNameLength = $this->isDirectory ? (int) SettingService::getSetting('file_manager_file_name_length') : (int) SettingService::getSetting('file_manager_file_name_length') - (strlen(FileSystemUtility::getFileExtension($this->fileName)) + 1);
         // init a directory or file settings
         $this->isDirectory ? $this->initDirectorySettings() : $this->initFileSettings();
         $this->form = new ApplicationCustomFormBuilder($this->formName, $this->formElements, $this->translator, $this->ignoredElements, $this->notValidatedElements, $this->method);
     }
     return $this->form;
 }
 /**
  * Slugify a file name
  *
  * @param string $fileName
  * @param boolean $addSalt
  * @param boolean $processFullName
  * @return string
  */
 public static function slugifyFileName($fileName, $addSalt = true, $processFullName = false)
 {
     $fileExtension = FileSystemUtility::getFileExtension($fileName);
     $fileName = FileSystemUtility::getFileName($fileName);
     $maxFileNameLength = !$processFullName && $fileExtension ? (int) SettingService::getSetting('file_manager_file_name_length') - (strlen($fileExtension) + 1) : (int) SettingService::getSetting('file_manager_file_name_length');
     $slug = SlugUtility::slugify($processFullName && $fileExtension ? $fileName . '.' . $fileExtension : $fileName, $maxFileNameLength, '_', 0, self::$fileNamePattern);
     if (!$slug && $addSalt) {
         $slug = SlugUtility::generateRandomSlug($maxFileNameLength);
     }
     return $slug;
 }