*/ class SiteStore { public function __construct( protected NavigationRepositoryQuery $navigationRepositoryQuery, protected SiteRequest $siteRequest ) { } public function getNavigations(): array { return $this->navigationRepositoryQuery->create() ->orderBy('.sortOrder') ->find() ; } public function getNavigation(string $code): ?Navigation { return $this->navigationRepositoryQuery->create() ->where('.code = :code') ->setParameter(':code', $code) ->findOne() ; } public function isActiveNode(Node $node, $deep = false): bool { $siteRequestNode = $this->siteRequest->getNode(); if (!$siteRequestNode) { return false; } if ($node->getRouteName() === $siteRequestNode->getRouteName()) { return true; } if ($deep) { foreach ($node->getAllChildren() as $child) { if ($child->getRouteName() === $siteRequestNode->getRouteName()) { return true; } } } return false; } }