diff --git a/src/IslandoraContextManager.php b/src/IslandoraContextManager.php index 9fd93fbc..ed6f74af 100644 --- a/src/IslandoraContextManager.php +++ b/src/IslandoraContextManager.php @@ -37,7 +37,7 @@ class IslandoraContextManager extends ContextManager { } /** @var \Drupal\context\ContextInterface $context */ foreach ($this->getContexts() as $context) { - if ($this->evaluateContextConditions($context, $provided) && !$context->disabled()) { + if (!$context->disabled() && $this->evaluateContextConditions($context, $provided)) { $this->activeContexts[$context->id()] = $context; } } diff --git a/src/Plugin/Condition/NodeHasParent.php b/src/Plugin/Condition/NodeHasParent.php index f9ef0cbf..813fd00b 100644 --- a/src/Plugin/Condition/NodeHasParent.php +++ b/src/Plugin/Condition/NodeHasParent.php @@ -137,9 +137,11 @@ class NodeHasParent extends ConditionPluginBase implements ContainerFactoryPlugi * TRUE if entity references the specified parent. */ protected function evaluateEntity(EntityInterface $entity) { + $parent_reference_field = $this->configuration['parent_reference_field']; foreach ($entity->referencedEntities() as $referenced_entity) { - if ($entity->getEntityTypeID() == 'node' && $referenced_entity->getEntityTypeId() == 'node') { - $parent_reference_field = $this->configuration['parent_reference_field']; + // Check whether the entity and the referenced entity are nodes. + // Also make sure that the field exists. + if ($entity->getEntityTypeID() == 'node' && $entity->hasField($parent_reference_field) && $referenced_entity->getEntityTypeId() == 'node') { $field = $entity->get($parent_reference_field); if (!$field->isEmpty()) { $nids = $field->getValue();