ContextReactionPluginBase.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace Drupal\context;
  3. use Drupal\Core\Form\FormStateInterface;
  4. use Drupal\Core\Plugin\PluginBase;
  5. abstract class ContextReactionPluginBase extends PluginBase implements ContextReactionInterface {
  6. /**
  7. * {@inheritdoc}
  8. */
  9. public function __construct(array $configuration, $plugin_id, $plugin_definition) {
  10. parent::__construct($configuration, $plugin_id, $plugin_definition);
  11. $this->setConfiguration($configuration);
  12. }
  13. /**
  14. * {@inheritdoc}
  15. */
  16. public function getId() {
  17. if (isset($this->getConfiguration()['id'])) {
  18. return $this->getConfiguration()['id'];
  19. }
  20. return NULL;
  21. }
  22. /**
  23. * {@inheritdoc}
  24. */
  25. public function getConfiguration() {
  26. return [
  27. 'id' => $this->getPluginId(),
  28. ] + $this->configuration;
  29. }
  30. /**
  31. * {@inheritdoc}
  32. */
  33. public function setConfiguration(array $configuration) {
  34. $this->configuration = $configuration + $this->defaultConfiguration();
  35. return $this;
  36. }
  37. /**
  38. * Form validation handler is optional.
  39. *
  40. * {@inheritdoc}
  41. */
  42. public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {}
  43. /**
  44. * {@inheritdoc}
  45. */
  46. public function defaultConfiguration() {
  47. return [
  48. 'saved' => FALSE,
  49. ];
  50. }
  51. /**
  52. * {@inheritdoc}
  53. */
  54. public function calculateDependencies() {
  55. return [];
  56. }
  57. }