parentResourceNode; } public function setParentResourceNode($resourceNode): self { $this->parentResourceNode = $resourceNode; return $this; } public function getParentResourceNode() { return $this->parentResourceNode; } public function hasResourceFile(): bool { return null !== $this->resourceFile; } public function getResourceFile() { return $this->resourceFile; } public function setResourceFile($file) { $this->resourceFile = $file; return $this; } public function setResourceNode(ResourceNode $resourceNode): self { $this->resourceNode = $resourceNode; return $this; } public function hasResourceNode(): bool { return $this->resourceNode instanceof ResourceNode; } public function getResourceNode(): ResourceNode { return $this->resourceNode; } public function getCourseSessionResourceLink(Course $course, Session $session = null): ?ResourceLink { return $this->getFirstResourceLinkFromCourseSession($course, $session); } public function getFirstResourceLink(): ?ResourceLink { $resourceNode = $this->getResourceNode(); if ($resourceNode && $resourceNode->getResourceLinks()) { $result = $resourceNode->getResourceLinks()->first(); if ($result) { return $result; } } return null; } /** * See ResourceLink to see the visibility constants. Example: ResourceLink::VISIBILITY_DELETED. * * @return int */ public function getLinkVisibility(Course $course, Session $session = null) { return $this->getCourseSessionResourceLink($course, $session)->getVisibility(); } public function isVisible(Course $course, Session $session = null): bool { $link = $this->getCourseSessionResourceLink($course, $session); if (null === $link) { return false; } return ResourceLink::VISIBILITY_PUBLISHED === $link->getVisibility(); } public function getFirstResourceLinkFromCourseSession(Course $course, Session $session = null): ?ResourceLink { $criteria = Criteria::create(); $criteria ->where(Criteria::expr()->eq('course', $course)) ->andWhere( Criteria::expr()->eq('session', $session) ); $resourceNode = $this->getResourceNode(); $result = null; if ($resourceNode && $resourceNode->getResourceLinks()->count() > 0) { //var_dump($resourceNode->getResourceLinks()->count()); foreach ($resourceNode->getResourceLinks() as $link) { //var_dump(get_class($link)); } $result = $resourceNode->getResourceLinks()->matching($criteria)->first(); //var_dump($result); if ($result) { return $result; } } return null; } }