Chris@0: routeMatch = $route_match; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getRuntimeContexts(array $unqualified_context_ids) { Chris@0: $result = []; Chris@17: $context_definition = EntityContextDefinition::create('node')->setRequired(FALSE); Chris@0: $value = NULL; Chris@0: if (($route_object = $this->routeMatch->getRouteObject()) && ($route_contexts = $route_object->getOption('parameters')) && isset($route_contexts['node'])) { Chris@0: if ($node = $this->routeMatch->getParameter('node')) { Chris@0: $value = $node; Chris@0: } Chris@0: } Chris@0: elseif ($this->routeMatch->getRouteName() == 'node.add') { Chris@0: $node_type = $this->routeMatch->getParameter('node_type'); Chris@0: $value = Node::create(['type' => $node_type->id()]); Chris@0: } Chris@0: Chris@0: $cacheability = new CacheableMetadata(); Chris@0: $cacheability->setCacheContexts(['route']); Chris@0: Chris@0: $context = new Context($context_definition, $value); Chris@0: $context->addCacheableDependency($cacheability); Chris@0: $result['node'] = $context; Chris@0: Chris@0: return $result; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getAvailableContexts() { Chris@17: $context = EntityContext::fromEntityTypeId('node', $this->t('Node from URL')); Chris@0: return ['node' => $context]; Chris@0: } Chris@0: Chris@0: }