public function __construct(Cursus $cursus) { $details = []; $details['id'] = $cursus->getId(); $details['title'] = $cursus->getTitle(); $details['code'] = $cursus->getCode(); $details['blocking'] = $cursus->isBlocking(); $details['details'] = $cursus->getDetails(); $details['root'] = $cursus->getRoot(); $details['lvl'] = $cursus->getLvl(); $details['lft'] = $cursus->getLft(); $details['rgt'] = $cursus->getRgt(); $parent = $cursus->getParent(); $course = $cursus->getCourse(); $workspace = $cursus->getWorkspace(); if (!is_null($parent)) { $details['parentId'] = $parent->getId(); $details['parentTitle'] = $parent->getTitle(); $details['parentCode'] = $parent->getCode(); } if (!is_null($course)) { $details['courseId'] = $course->getId(); $details['courseTitle'] = $course->getTitle(); $details['courseCode'] = $course->getCode(); } if (!is_null($workspace)) { $details['workspaceId'] = $workspace->getId(); $details['workspaceName'] = $workspace->getName(); $details['workspaceCode'] = $workspace->getCode(); $details['workspaceGuid'] = $workspace->getGuid(); } parent::__construct(self::ACTION, $details); }
public function findDescendantSearchedCoursesByCursus(Cursus $cursus, $search = '', $orderedBy = 'title', $order = 'ASC', $executeQuery = true) { $dql = "\n SELECT c\n FROM Claroline\\CursusBundle\\Entity\\Course c\n WHERE (\n UPPER(c.title) LIKE :search\n OR UPPER(c.code) LIKE :search\n )\n AND EXISTS (\n SELECT cc\n FROM Claroline\\CursusBundle\\Entity\\Cursus cc\n WHERE cc.course = c\n AND cc.root = :root\n AND cc.lft >= :left\n AND cc.rgt <= :right\n )\n ORDER BY c.{$orderedBy} {$order}\n "; $query = $this->_em->createQuery($dql); $query->setParameter('root', $cursus->getRoot()); $query->setParameter('left', $cursus->getLft()); $query->setParameter('right', $cursus->getRgt()); $upperSearch = strtoupper($search); $query->setParameter('search', "%{$upperSearch}%"); return $executeQuery ? $query->getResult() : $query; }
public function findDescendantHierarchyByCursus(Cursus $cursus, $orderedBy = 'cursusOrder', $order = 'ASC', $executeQuery = true) { $dql = "\n SELECT DISTINCT c\n FROM Claroline\\CursusBundle\\Entity\\Cursus c\n WHERE c.root = :root\n AND c.lft >= :left\n AND c.rgt <= :right\n ORDER BY c.{$orderedBy} {$order}\n "; $query = $this->_em->createQuery($dql); $query->setParameter('root', $cursus->getRoot()); $query->setParameter('left', $cursus->getLft()); $query->setParameter('right', $cursus->getRgt()); return $executeQuery ? $query->getResult() : $query; }
public function deleteCursus(Cursus $cursus) { $details = []; $details['id'] = $cursus->getId(); $details['title'] = $cursus->getTitle(); $details['code'] = $cursus->getCode(); $details['blocking'] = $cursus->isBlocking(); $details['details'] = $cursus->getDetails(); $details['root'] = $cursus->getRoot(); $details['lvl'] = $cursus->getLvl(); $details['lft'] = $cursus->getLft(); $details['rgt'] = $cursus->getRgt(); $parent = $cursus->getParent(); $course = $cursus->getCourse(); $workspace = $cursus->getWorkspace(); if (!is_null($parent)) { $details['parentId'] = $parent->getId(); $details['parentTitle'] = $parent->getTitle(); $details['parentCode'] = $parent->getCode(); } if (!is_null($course)) { $details['courseId'] = $course->getId(); $details['courseTitle'] = $course->getTitle(); $details['courseCode'] = $course->getCode(); } if (!is_null($workspace)) { $details['workspaceId'] = $workspace->getId(); $details['workspaceName'] = $workspace->getName(); $details['workspaceCode'] = $workspace->getCode(); $details['workspaceGuid'] = $workspace->getGuid(); } $this->om->remove($cursus); $this->om->flush(); $event = new LogCursusDeleteEvent($details); $this->eventDispatcher->dispatch('log', $event); }