|
|
@ -13,6 +13,14 @@ use Drupal\Component\Plugin\Exception\ContextException; |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
class IslandoraContextManager extends ContextManager { |
|
|
|
class IslandoraContextManager extends ContextManager { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Allow the contexts to be reset before evaluation. |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
protected function resetContextEvaluation() { |
|
|
|
|
|
|
|
$this->contexts = []; |
|
|
|
|
|
|
|
$this->contextConditionsEvaluated = FALSE; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Evaluate all context conditions. |
|
|
|
* Evaluate all context conditions. |
|
|
|
* |
|
|
|
* |
|
|
@ -22,7 +30,11 @@ class IslandoraContextManager extends ContextManager { |
|
|
|
public function evaluateContexts(array $provided = []) { |
|
|
|
public function evaluateContexts(array $provided = []) { |
|
|
|
|
|
|
|
|
|
|
|
$this->activeContexts = []; |
|
|
|
$this->activeContexts = []; |
|
|
|
|
|
|
|
// XXX: Ensure that no earlier executed contexts in the request are still |
|
|
|
|
|
|
|
// present when being triggered via Islandora's ContextProviders. |
|
|
|
|
|
|
|
if (!empty($provided)) { |
|
|
|
|
|
|
|
$this->resetContextEvaluation(); |
|
|
|
|
|
|
|
} |
|
|
|
/** @var \Drupal\context\ContextInterface $context */ |
|
|
|
/** @var \Drupal\context\ContextInterface $context */ |
|
|
|
foreach ($this->getContexts() as $context) { |
|
|
|
foreach ($this->getContexts() as $context) { |
|
|
|
if ($this->evaluateContextConditions($context, $provided) && !$context->disabled()) { |
|
|
|
if ($this->evaluateContextConditions($context, $provided) && !$context->disabled()) { |
|
|
|