Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
CRAP | |
0.00% |
0 / 19 |
ConditionPluginCollection | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
42 | |
0.00% |
0 / 19 |
get | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getConfiguration | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 12 |
|||
addContext | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
getConditionContexts | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Core\Condition\ConditionPluginCollection. | |
*/ | |
namespace Drupal\Core\Condition; | |
use Drupal\Component\Plugin\Context\ContextInterface; | |
use Drupal\Core\Plugin\DefaultLazyPluginCollection; | |
/** | |
* Provides a collection of condition plugins. | |
*/ | |
class ConditionPluginCollection extends DefaultLazyPluginCollection { | |
/** | |
* An array of collected contexts for conditions. | |
* | |
* @var \Drupal\Component\Plugin\Context\ContextInterface[] | |
*/ | |
protected $conditionContexts = array(); | |
/** | |
* {@inheritdoc} | |
* | |
* @return \Drupal\Core\Condition\ConditionInterface | |
*/ | |
public function &get($instance_id) { | |
return parent::get($instance_id); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getConfiguration() { | |
$configuration = parent::getConfiguration(); | |
// Remove configuration if it matches the defaults. | |
foreach ($configuration as $instance_id => $instance_config) { | |
$default_config = array(); | |
$default_config['id'] = $instance_id; | |
$default_config += $this->get($instance_id)->defaultConfiguration(); | |
// In order to determine if a plugin is configured, we must compare it to | |
// its default configuration. The default configuration of a plugin does | |
// not contain context_mapping and it is not used when the plugin is not | |
// configured, so remove the context_mapping from the instance config to | |
// compare the remaining values. | |
unset($instance_config['context_mapping']); | |
if ($default_config === $instance_config) { | |
unset($configuration[$instance_id]); | |
} | |
} | |
return $configuration; | |
} | |
/** | |
* Sets the condition context for a given name. | |
* | |
* @param string $name | |
* The name of the context. | |
* @param \Drupal\Component\Plugin\Context\ContextInterface $context | |
* The context to add. | |
* | |
* @return $this | |
*/ | |
public function addContext($name, ContextInterface $context) { | |
$this->conditionContexts[$name] = $context; | |
return $this; | |
} | |
/** | |
* Gets the values for all defined contexts. | |
* | |
* @return \Drupal\Component\Plugin\Context\ContextInterface[] | |
* An array of set contexts, keyed by context name. | |
*/ | |
public function getConditionContexts() { | |
return $this->conditionContexts; | |
} | |
} |