Updated to Drupal 8.6.4, which is PHP 7.3 friendly. Also updated HTMLaw library....
[yaffs-website] / web / core / lib / Drupal / Core / Condition / ConditionPluginBase.php
1 <?php
2
3 namespace Drupal\Core\Condition;
4
5 use Drupal\Core\Executable\ExecutableManagerInterface;
6 use Drupal\Core\Executable\ExecutablePluginBase;
7 use Drupal\Core\Form\FormStateInterface;
8 use Drupal\Core\Form\SubformStateInterface;
9 use Drupal\Core\Plugin\ContextAwarePluginAssignmentTrait;
10
11 /**
12  * Provides a basis for fulfilling contexts for condition plugins.
13  *
14  * @see \Drupal\Core\Condition\Annotation\Condition
15  * @see \Drupal\Core\Condition\ConditionInterface
16  * @see \Drupal\Core\Condition\ConditionManager
17  *
18  * @ingroup plugin_api
19  */
20 abstract class ConditionPluginBase extends ExecutablePluginBase implements ConditionInterface {
21
22   use ContextAwarePluginAssignmentTrait;
23
24   /**
25    * The condition manager to proxy execute calls through.
26    *
27    * @var \Drupal\Core\Executable\ExecutableInterface
28    */
29   protected $executableManager;
30
31   /**
32    * {@inheritdoc}
33    */
34   public function __construct(array $configuration, $plugin_id, $plugin_definition) {
35     parent::__construct($configuration, $plugin_id, $plugin_definition);
36
37     $this->setConfiguration($configuration);
38   }
39
40   /**
41    * {@inheritdoc}
42    */
43   public function isNegated() {
44     return !empty($this->configuration['negate']);
45   }
46
47   /**
48    * {@inheritdoc}
49    */
50   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
51     if ($form_state instanceof SubformStateInterface) {
52       $form_state = $form_state->getCompleteFormState();
53     }
54     $contexts = $form_state->getTemporaryValue('gathered_contexts') ?: [];
55     $form['context_mapping'] = $this->addContextAssignmentElement($this, $contexts);
56     $form['negate'] = [
57       '#type' => 'checkbox',
58       '#title' => $this->t('Negate the condition'),
59       '#default_value' => $this->configuration['negate'],
60     ];
61     return $form;
62   }
63
64   /**
65    * {@inheritdoc}
66    */
67   public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
68   }
69
70   /**
71    * {@inheritdoc}
72    */
73   public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
74     $this->configuration['negate'] = $form_state->getValue('negate');
75     if ($form_state->hasValue('context_mapping')) {
76       $this->setContextMapping($form_state->getValue('context_mapping'));
77     }
78   }
79
80   /**
81    * {@inheritdoc}
82    */
83   public function execute() {
84     return $this->executableManager->execute($this);
85   }
86
87   /**
88    * {@inheritdoc}
89    */
90   public function getConfiguration() {
91     return [
92       'id' => $this->getPluginId(),
93     ] + $this->configuration;
94   }
95
96   /**
97    * {@inheritdoc}
98    */
99   public function setConfiguration(array $configuration) {
100     $this->configuration = $configuration + $this->defaultConfiguration();
101     return $this;
102   }
103
104   /**
105    * {@inheritdoc}
106    */
107   public function defaultConfiguration() {
108     return [
109       'negate' => FALSE,
110     ];
111   }
112
113   /**
114    * {@inheritdoc}
115    */
116   public function calculateDependencies() {
117     return [];
118   }
119
120   /**
121    * {@inheritdoc}
122    */
123   public function setExecutableManager(ExecutableManagerInterface $executableManager) {
124     $this->executableManager = $executableManager;
125     return $this;
126   }
127
128 }