class DynamicTwigField in Display Suite 8.4
Same name in this branch
- 8.4 src/Plugin/Derivative/DynamicTwigField.php \Drupal\ds\Plugin\Derivative\DynamicTwigField
- 8.4 src/Plugin/DsField/DynamicTwigField.php \Drupal\ds\Plugin\DsField\DynamicTwigField
Same name and namespace in other branches
- 8.3 src/Plugin/DsField/DynamicTwigField.php \Drupal\ds\Plugin\DsField\DynamicTwigField
Defines a generic dynamic twig field.
Plugin annotation
@DsField(
id = "dynamic_twig_field",
deriver = "Drupal\ds\Plugin\Derivative\DynamicTwigField"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\ds\Plugin\DsField\DsFieldBase implements ConfigurableInterface, DependentPluginInterface, DsFieldInterface
- class \Drupal\ds\Plugin\DsField\TokenBase
- class \Drupal\ds\Plugin\DsField\DynamicTwigField
- class \Drupal\ds\Plugin\DsField\TokenBase
- class \Drupal\ds\Plugin\DsField\DsFieldBase implements ConfigurableInterface, DependentPluginInterface, DsFieldInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of DynamicTwigField
File
- src/
Plugin/ DsField/ DynamicTwigField.php, line 15
Namespace
Drupal\ds\Plugin\DsFieldView source
class DynamicTwigField extends TokenBase {
/**
* {@inheritdoc}
*/
public function build() {
$output = '';
$content = $this
->content();
$render = [
'#type' => 'inline_template',
'#template' => $content,
'#context' => [
$this
->getEntityTypeId() => $this
->entity(),
'entity' => $this
->entity(),
],
];
try {
$output = \Drupal::service('renderer')
->render($render);
} catch (\Exception $e) {
\Drupal::logger('ds_twig_field')
->error('Error rendering @field: @message', [
'@field' => $this
->getDerivativeId(),
'@message' => $e
->getMessage(),
]);
}
if ($output) {
return [
'#markup' => FilteredMarkup::create($output),
];
}
return [];
}
/**
* {@inheritdoc}
*/
public function content() {
$definition = $this
->getPluginDefinition();
return $definition['properties']['content'];
}
}
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 | |
DsFieldBase:: |
public | function |
Gets the current bundle. Overrides DsFieldInterface:: |
|
DsFieldBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
DsFieldBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurableInterface:: |
5 |
DsFieldBase:: |
public | function |
Gets the current entity. Overrides DsFieldInterface:: |
|
DsFieldBase:: |
public | function |
Returns a list of possible formatters for this field. Overrides DsFieldInterface:: |
3 |
DsFieldBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
1 |
DsFieldBase:: |
public | function |
Gets the current entity type. Overrides DsFieldInterface:: |
|
DsFieldBase:: |
public | function |
Gets the field configuration. Overrides DsFieldInterface:: |
|
DsFieldBase:: |
public | function |
Gets the field name. Overrides DsFieldInterface:: |
|
DsFieldBase:: |
public | function |
Returns the title of the field. Overrides DsFieldInterface:: |
1 |
DsFieldBase:: |
public | function |
Returns if the field is allowed on the field UI screen. Overrides DsFieldInterface:: |
3 |
DsFieldBase:: |
public | function |
Defines if we are dealing with a multivalue field. Overrides DsFieldInterface:: |
1 |
DsFieldBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
1 |
DsFieldBase:: |
public | function |
The form that holds the settings for this plugin. Overrides DsFieldInterface:: |
7 |
DsFieldBase:: |
public | function |
Returns the summary of the chosen settings. Overrides DsFieldInterface:: |
7 |
DsFieldBase:: |
public | function |
Gets the view mode. Overrides DsFieldInterface:: |
|
DynamicTwigField:: |
public | function |
Renders a field. Overrides TokenBase:: |
|
DynamicTwigField:: |
public | function |
Returns the value of the code field. Overrides TokenBase:: |
|
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. | |
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. | |
TokenBase:: |
protected | property | The LanguageManager service. | |
TokenBase:: |
protected | property | The Token service. | |
TokenBase:: |
public static | function |
Creates an instance of the plugin. Overrides DsFieldBase:: |
|
TokenBase:: |
protected | function | Returns the format of the code field. | 1 |
TokenBase:: |
public | function |
Constructs a Display Suite field plugin. Overrides DsFieldBase:: |