class TemplateTagPlugin in Extensible BBCode 4.0.x
Same name and namespace in other branches
- 8.3 src/Plugin/TemplateTagPlugin.php \Drupal\xbbcode\Plugin\TemplateTagPlugin
This is a tag that delegates processing to a Twig template.
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\TemplateTagPlugin
- class \Drupal\xbbcode\Plugin\TagPluginBase implements TagPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of TemplateTagPlugin
1 file declares its use of TemplateTagPlugin
- EntityTagPlugin.php in src/
Plugin/ XBBCode/ EntityTagPlugin.php
File
- src/
Plugin/ TemplateTagPlugin.php, line 13
Namespace
Drupal\xbbcode\PluginView source
class TemplateTagPlugin extends TagPluginBase {
/**
* The twig environment.
*
* @var \Twig\Environment
*/
protected $twig;
/**
* The serializable identifier of the template.
*
* (Either a template name or inline code.)
*
* @var string
*/
protected $template;
/**
* Ephemeral reference to the template.
*
* This is private because it cannot be serialized, and must be reloaded
* through the twig environment after hydration.
*
* @var \Twig\TemplateWrapper
*/
private $templateWrapper;
/**
* TemplateTagPlugin constructor.
*
* @param array $configuration
* Plugin configuration.
* @param string $plugin_id
* Plugin ID.
* @param mixed $plugin_definition
* Plugin definition.
* @param \Twig\Environment $twig
* Twig environment service.
* @param string|null $template
* The template.
*/
public function __construct(array $configuration, string $plugin_id, $plugin_definition, TwigEnvironment $twig, $template = NULL) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->twig = $twig;
$this->template = $template;
}
/**
* Get the tag template.
*
* @return \Twig_TemplateWrapper
* The compiled template that should render this tag.
*
* @throws \Twig\Error\LoaderError
* @throws \Twig\Error\RuntimeError
* @throws \Twig\Error\SyntaxError
*/
protected function getTemplate() : TwigTemplateWrapper {
if (!$this->templateWrapper) {
$this->templateWrapper = $this->twig
->load($this->template);
}
return $this->templateWrapper;
}
/**
* {@inheritdoc}
*
* @throws \Twig\Error\LoaderError
* @throws \Twig\Error\RuntimeError
* @throws \Twig\Error\SyntaxError
*/
public function doProcess(TagElementInterface $tag) : TagProcessResult {
return new TagProcessResult($this
->getTemplate()
->render([
'settings' => $this->settings,
'tag' => $tag,
]));
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
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:: |
2 |
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. | 4 |
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 |
Return the unprocessed sample code. Overrides TagPluginInterface:: |
3 |
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:: |
|
TemplateTagPlugin:: |
protected | property | The serializable identifier of the template. | |
TemplateTagPlugin:: |
private | property | Ephemeral reference to the template. | |
TemplateTagPlugin:: |
protected | property | The twig environment. | |
TemplateTagPlugin:: |
public | function |
Overrides TagPluginBase:: |
1 |
TemplateTagPlugin:: |
protected | function | Get the tag template. | 1 |
TemplateTagPlugin:: |
public | function |
TemplateTagPlugin constructor. Overrides TagPluginBase:: |
1 |