class ImageTagPlugin in Extensible BBCode 8.3
Same name and namespace in other branches
- 4.0.x standard/src/Plugin/XBBCode/ImageTagPlugin.php \Drupal\xbbcode_standard\Plugin\XBBCode\ImageTagPlugin
Inserts an image.
Plugin annotation
@XBBCodeTag(
id = "image",
label = @Translation("Image"),
description = @Translation("Inserts an image."),
name = "img",
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\xbbcode\Plugin\TagPluginBase implements TagPluginInterface
- class \Drupal\xbbcode\Plugin\RenderTagPlugin implements ContainerFactoryPluginInterface
- class \Drupal\xbbcode_standard\Plugin\XBBCode\ImageTagPlugin
- class \Drupal\xbbcode\Plugin\RenderTagPlugin implements ContainerFactoryPluginInterface
- class \Drupal\xbbcode\Plugin\TagPluginBase implements TagPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of ImageTagPlugin
File
- standard/
src/ Plugin/ XBBCode/ ImageTagPlugin.php, line 21
Namespace
Drupal\xbbcode_standard\Plugin\XBBCodeView source
class ImageTagPlugin extends RenderTagPlugin {
/**
* {@inheritdoc}
*
* @throws \InvalidArgumentException
*/
public function getDefaultSample() : string {
return $this
->t('[{{ name }} width=57 height=66]@url[/{{ name }}]', [
'@url' => Url::fromUri('base:core/themes/bartik/logo.svg')
->toString(),
]);
}
/**
* {@inheritdoc}
*/
public function buildElement(TagElementInterface $tag) : array {
$style = [];
$dimensions = explode('x', $tag
->getOption());
if (count($dimensions) === 2) {
[
$width,
$height,
] = $dimensions;
}
else {
$width = (string) $tag
->getAttribute('width');
$height = (string) $tag
->getAttribute('height');
}
if (is_numeric($width)) {
$style[] = "width:{$width}px";
}
if (is_numeric($height)) {
$style[] = "height:{$height}px";
}
$src = Html::decodeEntities($tag
->getContent());
return [
'#type' => 'inline_template',
'#template' => '<img src="{{ src }}" alt="{{ src }}" style="{{ style }};" />',
'#context' => [
'tag' => $tag,
'style' => implode(';', $style),
'src' => $src,
],
];
}
}
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 | |
ImageTagPlugin:: |
public | function |
Build a render array from the tag. Overrides RenderTagPlugin:: |
|
ImageTagPlugin:: |
public | function |
Overrides TagPluginBase:: |
|
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. | |
RenderTagPlugin:: |
protected | property | The Drupal renderer. | |
RenderTagPlugin:: |
public static | function |
Create a plugin instance. Overrides ContainerFactoryPluginInterface:: |
|
RenderTagPlugin:: |
public | function |
Create the actual output. Overrides TagPluginBase:: |
|
RenderTagPlugin:: |
public | function |
RenderTagPlugin constructor. Overrides TagPluginBase:: |
|
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. | |
TagPluginBase:: |
protected | property | The configurable tag name. | |
TagPluginBase:: |
protected | property | The sample code of this tag. | |
TagPluginBase:: |
protected | property | The settings for this tag plugin. | |
TagPluginBase:: |
protected | property | A Boolean indicating whether this tag is enabled. | |
TagPluginBase:: |
public | function | Get default plugin configuration from definition. | |
TagPluginBase:: |
public | function | Get the plugin configuration. | |
TagPluginBase:: |
public | function |
Returns the default tag name. Overrides TagPluginInterface:: |
|
TagPluginBase:: |
public | function |
Returns the administrative description for this tag plugin. Overrides TagPluginInterface:: |
|
TagPluginBase:: |
public | function |
Returns the configured name. Overrides TagPluginInterface:: |
|
TagPluginBase:: |
public | function |
Return a sample tag for the filter tips. Overrides TagPluginInterface:: |
|
TagPluginBase:: |
public | function |
Returns the administrative label for this tag plugin. Overrides TagPluginInterface:: |
|
TagPluginBase:: |
public | function |
Transform an elements' content, to armor against other filters. Overrides TagPluginInterface:: |
2 |
TagPluginBase:: |
public | function |
Generate output from a tag element. Overrides TagPluginInterface:: |
|
TagPluginBase:: |
public | function | Set the plugin configuration after instancing. | |
TagPluginBase:: |
public | function |
Returns the status of this tag plugin. Overrides TagPluginInterface:: |