class Upload in IMCE 8
Same name and namespace in other branches
- 8.2 src/Plugin/ImcePlugin/Upload.php \Drupal\imce\Plugin\ImcePlugin\Upload
Defines Imce Upload plugin.
Plugin annotation
@ImcePlugin(
id = "upload",
label = "Upload",
weight = -10,
operations = {
"upload" = "opUpload"
}
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\imce\ImcePluginBase implements ImcePluginInterface
- class \Drupal\imce\Plugin\ImcePlugin\Upload
- class \Drupal\imce\ImcePluginBase implements ImcePluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Upload
1 file declares its use of Upload
- UploadTest.php in tests/
src/ Kernel/ Plugin/ ImcePlugin/ UploadTest.php
File
- src/
Plugin/ ImcePlugin/ Upload.php, line 22
Namespace
Drupal\imce\Plugin\ImcePluginView source
class Upload extends ImcePluginBase {
/**
* {@inheritdoc}
*/
public function permissionInfo() {
return [
'upload_files' => $this
->t('Upload files'),
];
}
/**
* {@inheritdoc}
*/
public function buildPage(array &$page, ImceFM $fm) {
if ($fm
->hasPermission('upload_files')) {
$page['#attached']['library'][] = 'imce/drupal.imce.upload';
}
}
/**
* Operation handler: upload.
*/
public function opUpload(ImceFM $fm) {
$folder = $fm->activeFolder;
if (!$folder || !$folder
->getPermission('upload_files')) {
return;
}
// Prepare save options.
$destination = $folder
->getUri();
$replace = $fm
->getConf('replace', FileSystemInterface::EXISTS_RENAME);
$validators = [];
// Extension validator.
$exts = $fm
->getConf('extensions', '');
$validators['file_validate_extensions'] = [
$exts === '*' ? NULL : $exts,
];
// File size and user quota validator.
$validators['file_validate_size'] = [
$fm
->getConf('maxsize'),
$fm
->getConf('quota'),
];
// Image resolution validator.
$width = $fm
->getConf('maxwidth');
$height = $fm
->getConf('maxheight');
if ($width || $height) {
$validators['file_validate_image_resolution'] = [
($width ? $width : 10000) . 'x' . ($height ? $height : 10000),
];
}
// Name validator.
$validators[get_class($this) . '::validateFileName'] = [
$fm,
];
// Save files.
if ($files = file_save_upload('imce', $validators, $destination, NULL, $replace)) {
$fs = \Drupal::service('file_system');
foreach (array_filter($files) as $file) {
// Set status and save.
$file
->setPermanent();
$file
->save();
// Add to the folder and to js response.
$name = $fs
->basename($file
->getFileUri());
$item = $folder
->addFile($name);
$item->uuid = $file
->uuid();
$item
->addToJs();
}
}
}
/**
* Validates the name of a file object.
*/
public static function validateFileName(FileInterface $file, ImceFM $fm) {
$errors = [];
$filename = $file
->getFileName();
if (!$fm
->validateFileName($filename, TRUE)) {
$errors[] = t('%filename contains invalid characters.', [
'%filename' => $filename,
]);
}
return $errors;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
ImcePluginBase:: |
public | function |
Alters entity form of an Imce Profile. Overrides ImcePluginInterface:: |
|
ImcePluginBase:: |
public | function |
Processes profile configuration for a user. Overrides ImcePluginInterface:: |
|
ImcePluginBase:: |
public | function |
Validates entity form of an Imce Profile. Overrides ImcePluginInterface:: |
|
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 92 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
Upload:: |
public | function |
Builds imce page by adding required libraries and elements. Overrides ImcePluginBase:: |
|
Upload:: |
public | function | Operation handler: upload. | |
Upload:: |
public | function |
Returns folder permission definitions. Overrides ImcePluginBase:: |
|
Upload:: |
public static | function | Validates the name of a file object. |