workbench_email-8.x-1.x-dev/src/Plugin/RecipientTypeBase.php
src/Plugin/RecipientTypeBase.php
<?php
namespace Drupal\workbench_email\Plugin;
use Drupal\Core\Entity\ContentEntityInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Plugin\PluginBase;
use Drupal\Core\Plugin\PluginWithFormsTrait;
use Drupal\workbench_email\TemplateInterface;
/**
* Provides a base class for Recipient type plugins.
*
* @see \Drupal\workbench_email\Annotation\RecipientType
* @see \Drupal\workbench_email\RecipientTypeManager
* @see \Drupal\workbench_email\Plugin\RecipientTypeInterface
* @see plugin_api
*/
abstract class RecipientTypeBase extends PluginBase implements RecipientTypeInterface {
use PluginWithFormsTrait;
/**
* The name of the provider that owns this recipient type.
*
* @var string
*/
public $provider;
/**
* A Boolean indicating whether this recipient type is enabled.
*
* @var bool
*/
public $status = FALSE;
/**
* An associative array containing the configured settings of this recipient type.
*
* @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['settings'])) {
$this->settings = (array) $configuration['settings'];
}
return $this;
}
/**
* {@inheritdoc}
*/
public function getConfiguration() {
return [
'id' => $this->getPluginId(),
'provider' => $this->pluginDefinition['provider'],
'status' => $this->status,
'settings' => $this->settings,
];
}
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return [
'provider' => $this->pluginDefinition['provider'],
'status' => FALSE,
'settings' => $this->pluginDefinition['settings'],
];
}
/**
* {@inheritdoc}
*/
public function calculateDependencies() {
return [];
}
/**
* {@inheritdoc}
*/
public function getLabel() {
return $this->pluginDefinition['title'];
}
/**
* {@inheritdoc}
*/
public function getDescription() {
return $this->pluginDefinition['description'];
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
return [];
}
/**
* {@inheritdoc}
*/
public function prepareRecipients(ContentEntityInterface $entity, TemplateInterface $template) {
return [];
}
/**
* {@inheritdoc}
*/
public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
// Nil op.
}
/**
* {@inheritdoc}
*/
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
// Nil op.
}
/**
* {@inheritdoc}
*/
public function isEnabled() {
return $this->status;
}
/**
* {@inheritdoc}
*/
public function onDependencyRemoval(array $dependencies) {
return FALSE;
}
}
