class File in YAML Content 8
Plugin for processing and loading a file attachment.
Plugin annotation
@YamlContentProcess(
id = "file",
title = @Translation("File Processor"),
description = @Translation("Processing and loading a file attachment.")
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\yaml_content\Plugin\YamlContentProcessBase implements YamlContentProcessInterface
- class \Drupal\yaml_content\Plugin\yaml_content\process\File implements YamlContentProcessInterface
- class \Drupal\yaml_content\Plugin\YamlContentProcessBase implements YamlContentProcessInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of File
2 files declare their use of File
- FileTest.php in tests/
src/ Functional/ Plugin/ yaml_content/ process/ FileTest.php - FileTest.php in tests/
src/ Unit/ Plugin/ yaml_content/ process/ FileTest.php
File
- src/
Plugin/ yaml_content/ process/ File.php, line 20
Namespace
Drupal\yaml_content\Plugin\yaml_content\processView source
class File extends YamlContentProcessBase implements YamlContentProcessInterface {
/**
* {@inheritdoc}
*/
public function process(ProcessingContext $context, array &$field_data) {
$entity_type = $this->configuration[0];
$filter_params = $this->configuration[1];
$filename = $filter_params['filename'];
$directory = '/data_files/';
// If the entity type is an image, look in to the /images directory.
if ($entity_type == 'image') {
$directory = '/images/';
}
// TODO path not set.
$output = file_get_contents($context
->getContentLoader()
->getContentPath() . $directory . $filename);
if ($output !== FALSE) {
$destination = 'public://';
// Look-up the field's directory configuation.
if ($directory = $context
->getField()
->getSetting('file_directory')) {
$directory = trim($directory, '/');
$directory = PlainTextOutput::renderFromHtml(\Drupal::token()
->replace($directory));
if ($directory) {
$destination .= $directory . '/';
}
}
// Create the destination directory if it does not already exist.
\Drupal::service('file_system')
->prepareDirectory($destination, FileSystemInterface::CREATE_DIRECTORY);
// Save the file data or return an existing file.
$file = file_save_data($output, $destination . $filename, FileSystemInterface::EXISTS_REPLACE);
// Use the newly created file id as the value.
$field_data['target_id'] = $file
->id();
// Remove process data to avoid issues when setting the value.
unset($field_data['#process']);
return $file
->id();
}
$this
->throwParamError('Unable to process file content', $entity_type, $filter_params);
}
}
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 | |
File:: |
public | function |
Processes field data. Overrides YamlContentProcessInterface:: |
|
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. | |
YamlContentProcessBase:: |
protected | function | Prepare an error message and throw error. |