abstract class TagPluginBase in Extensible BBCode 4.0.x
Same name and namespace in other branches
- 8.3 src/Plugin/TagPluginBase.php \Drupal\xbbcode\Plugin\TagPluginBase
Provides a base class for XBBCode tag plugins.
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\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of TagPluginBase
See also
XBBCodeTag
4 files declare their use of TagPluginBase
- CodeTagPlugin.php in standard/
src/ Plugin/ XBBCode/ CodeTagPlugin.php - NullTagPlugin.php in src/
Plugin/ XBBCode/ NullTagPlugin.php - TagPluginDeriver.php in src/
Plugin/ Derivative/ TagPluginDeriver.php - XBBCodeTestPlugin.php in tests/
xbbcode_test_plugin/ src/ Plugin/ XBBCode/ XBBCodeTestPlugin.php
File
- src/
Plugin/ TagPluginBase.php, line 18
Namespace
Drupal\xbbcode\PluginView source
abstract class TagPluginBase extends PluginBase implements TagPluginInterface {
/**
* A Boolean indicating whether this tag is enabled.
*
* @var bool
*/
protected $status = FALSE;
/**
* The configurable tag name.
*
* @var string
*/
protected $name;
/**
* The settings for this tag plugin.
*
* @var array
*/
protected $settings;
/**
* The sample code of this tag.
*
* @var string
*/
protected $sample;
/**
* {@inheritdoc}
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->name = $this->pluginDefinition['name'];
$this->settings = $this->pluginDefinition['settings'];
$this
->setConfiguration($configuration);
}
/**
* Set the plugin configuration after instancing.
*
* @param array $configuration
* Plugin configuration.
*
* @return $this
*/
public function setConfiguration(array $configuration) : self {
if (isset($configuration['name'])) {
$this->name = $configuration['name'];
}
if (isset($configuration['settings'])) {
$this->settings = (array) $configuration['settings'];
}
return $this;
}
/**
* Get the plugin configuration.
*
* @return array
* Plugin configuration.
*/
public function getConfiguration() : array {
return [
'id' => $this
->getPluginId(),
'name' => $this->name,
'settings' => $this->settings,
];
}
/**
* Get default plugin configuration from definition.
*
* @return array
* Default plugin configuration.
*/
public function defaultConfiguration() : array {
return [
'name' => $this->pluginDefinition['name'],
'settings' => $this->pluginDefinition['settings'],
];
}
/**
* {@inheritdoc}
*/
public function label() : string {
return $this->pluginDefinition['label'];
}
/**
* {@inheritdoc}
*/
public function status() : bool {
return $this->status;
}
/**
* {@inheritdoc}
*/
public function getDescription() : string {
return $this->pluginDefinition['description'];
}
/**
* {@inheritdoc}
*/
public function getName() : string {
return $this->name;
}
/**
* {@inheritdoc}
*/
public function getDefaultName() : string {
return $this->pluginDefinition['name'];
}
/**
* {@inheritdoc}
*/
public function getDefaultSample() : string {
return $this->pluginDefinition['sample'];
}
/**
* {@inheritdoc}
*/
public function getSample() : string {
if (!$this->sample) {
$this->sample = str_replace('{{ name }}', $this->name, trim($this
->getDefaultSample()));
}
return $this->sample;
}
/**
* {@inheritdoc}
*/
public function prepare(string $content, TagElementInterface $tag) : string {
return $content;
}
/**
* {@inheritdoc}
*/
public function process(TagElementInterface $tag) : OutputElementInterface {
// Use an adapter that marks rendered output as safe.
$result = $this
->doProcess(new PreparedTagElement($tag));
// Merge metadata from rendered sub-tags.
foreach ($tag
->getRenderedChildren(FALSE) as $child) {
if ($child instanceof TagProcessResult) {
$result = $result
->merge($child);
}
}
return $result;
}
/**
* Create the actual output.
*
* Tag plugins should override this function rather than ::process(),
* in order to let the metadata from sub-tags bubble up.
*
* @param \Drupal\xbbcode\Parser\Tree\TagElementInterface $tag
* Tag element in the parse tree.
*
* @return \Drupal\xbbcode\TagProcessResult
* Tag process result.
*/
public abstract function doProcess(TagElementInterface $tag) : TagProcessResult;
}
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:: |
abstract public | function | Create the actual output. | 5 |
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:: |
|
TagPluginBase:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
3 |