public function EntityExtraField::hasConditionsBeenMet in Entity Extra Field 2.0.x
Same name and namespace in other branches
- 8 src/Entity/EntityExtraField.php \Drupal\entity_extra_field\Entity\EntityExtraField::hasConditionsBeenMet()
Has extra field conditions been met.
Parameters
array $contexts: An array of context values.
bool $all_must_pass: Determine if all conditions must pass.
Return value
bool Return TRUE if the extra field conditions have been met; otherwise FALSE.
Throws
\Drupal\Component\Plugin\Exception\PluginException
Overrides EntityExtraFieldInterface::hasConditionsBeenMet
File
- src/
Entity/ EntityExtraField.php, line 376
Class
- EntityExtraField
- Define entity extra field.
Namespace
Drupal\entity_extra_field\EntityCode
public function hasConditionsBeenMet(array $contexts, bool $all_must_pass = FALSE) : bool {
$conditions = $this
->getActiveFieldTypeConditions();
if (empty($conditions)) {
return TRUE;
}
$verdicts = [];
foreach ($conditions as $plugin_id => $configuration) {
/** @var \Drupal\Core\Condition\ConditionPluginBase $condition */
$condition = $this
->conditionPluginManager()
->createInstance($plugin_id, $configuration);
if ($condition instanceof ContextAwarePluginInterface) {
try {
$this
->applyPluginRuntimeContexts($condition, [
'entity_extra_field' => EntityContext::fromEntity($this),
] + $contexts);
} catch (\Exception $exception) {
return FALSE;
}
}
$verdict = $condition
->evaluate();
if ($verdict && !$all_must_pass) {
return TRUE;
}
$verdicts[] = $verdict;
}
$verdicts = array_unique($verdicts);
return count($verdicts) === 1 && current($verdicts) === TRUE;
}