public static function FilebrowserManager::validateFolderPath in Filebrowser 8.2
Same name and namespace in other branches
- 3.x src/FilebrowserManager.php \Drupal\filebrowser\FilebrowserManager::validateFolderPath()
File
- src/
FilebrowserManager.php, line 397
Class
Namespace
Drupal\filebrowserCode
public static function validateFolderPath($element, FormStateInterface $form_state) {
$folder_path = $form_state
->getValue('filebrowser')['folder_path'];
/** @var \Drupal\Core\StreamWrapper\StreamWrapperManager $stream_wrapper_manager */
$stream_wrapper_manager = \Drupal::service('stream_wrapper_manager');
$scheme = $stream_wrapper_manager::getScheme($folder_path);
$error = false;
$message = '';
// Scheme is valid?
if (!$scheme || !$stream_wrapper_manager
->isValidScheme($scheme)) {
$message = t('The scheme: %scheme in your uri is not valid.', [
'%scheme' => $scheme,
]);
$error = true;
$form_state
->setError($element, $message);
}
// is directory name contains illegal characters?
if (strpbrk($folder_path, "\\/?%*:|\"<>") === TRUE) {
$message = t('This @name contains illegal characters.', [
'name => $folder_path',
]);
$error = true;
$form_state
->setError($element, $message);
}
if (!$error) {
// name is safe, create the folder if it doesn't exists.
if (!file_exists($folder_path)) {
if (\Drupal::service('file_system')
->mkdir($folder_path, NULL, TRUE, NULL)) {
$message = t('Folder location @uri created.', [
'@uri' => $folder_path,
]);
\Drupal::messenger()
->addMessage($message);
}
else {
$error = true;
$message = t('@url does not exist and Filebrowser can not create it.', [
'@url' => $folder_path,
]);
$form_state
->setError($element, $message);
}
}
}
return [
'error' => $error,
'error_msg' => $message,
];
}