FilterBase.php
Same filename in other branches
Namespace
Drupal\filter\PluginFile
-
core/
modules/ filter/ src/ Plugin/ FilterBase.php
View source
<?php
namespace Drupal\filter\Plugin;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Plugin\PluginBase;
/**
* Provides a base class for Filter plugins.
*
* @see \Drupal\filter\Annotation\Filter
* @see \Drupal\filter\FilterPluginManager
* @see \Drupal\filter\Plugin\FilterInterface
* @see plugin_api
*/
abstract class FilterBase extends PluginBase implements FilterInterface {
/**
* The name of the provider that owns this filter.
*
* @var string
*/
public $provider;
/**
* A Boolean indicating whether this filter is enabled.
*
* @var bool
*/
public $status = FALSE;
/**
* The weight of this filter compared to others in a filter collection.
*
* @var int
*/
public $weight = 0;
/**
* An associative array containing the configured settings of this filter.
*
* @var array
*/
public $settings = [];
/**
* {@inheritdoc}
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->provider = $this->pluginDefinition['provider'];
$this->setConfiguration($configuration);
}
/**
* {@inheritdoc}
*/
public function setConfiguration(array $configuration) {
if (isset($configuration['status'])) {
$this->status = (bool) $configuration['status'];
}
if (isset($configuration['weight'])) {
$this->weight = (int) $configuration['weight'];
}
if (isset($configuration['settings'])) {
$this->settings = (array) $configuration['settings'];
}
return $this;
}
/**
* {@inheritdoc}
*/
public function getConfiguration() {
return [
'id' => $this->getPluginId(),
'provider' => $this->pluginDefinition['provider'],
'status' => $this->status,
'weight' => $this->weight,
'settings' => $this->settings,
];
}
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return [
'provider' => $this->pluginDefinition['provider'],
'status' => FALSE,
'weight' => $this->pluginDefinition['weight'] ?: 0,
'settings' => $this->pluginDefinition['settings'],
];
}
/**
* {@inheritdoc}
*/
public function calculateDependencies() {
return [];
}
/**
* {@inheritdoc}
*/
public function getType() {
return $this->pluginDefinition['type'];
}
/**
* {@inheritdoc}
*/
public function getLabel() {
return $this->pluginDefinition['title'];
}
/**
* {@inheritdoc}
*/
public function getDescription() {
return $this->pluginDefinition['description'];
}
/**
* {@inheritdoc}
*/
public function settingsForm(array $form, FormStateInterface $form_state) {
// Implementations should work with and return $form. Returning an empty
// array here allows the text format administration form to identify whether
// the filter plugin has any settings form elements.
return [];
}
/**
* {@inheritdoc}
*/
public function prepare($text, $langcode) {
return $text;
}
/**
* {@inheritdoc}
*/
public function getHTMLRestrictions() {
return FALSE;
}
/**
* {@inheritdoc}
*/
public function tips($long = FALSE) {
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
FilterBase | Provides a base class for Filter plugins. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.