public function getMediasByContent(AbstractClassContent $content, MediaFolder $mediafolder) { $query = $this->createQueryBuilder('m')->leftJoin('m._media_folder', 'mf')->where('m._content = :content')->andWhere('mf._root = :root')->andWhere('mf._leftnode >= :leftnode')->andWhere('mf._rightnode <= :rightnode')->orderBy('m._modified', 'desc')->setParameters(['content' => $content, 'root' => $mediafolder->getRoot(), 'leftnode' => $mediafolder->getLeftnode(), 'rightnode' => $mediafolder->getRightnode()])->getQuery(); return new Paginator($query, false); }
private function patchSiblingAndParentOperation(MediaFolder $mediaFolder, &$operations) { $sibling_operation = null; $parent_operation = null; foreach ($operations as $key => $operation) { $op = array('key' => $key, 'op' => $operation); if ('/sibling_uid' === $operation['path']) { $sibling_operation = $op; } elseif ('/parent_uid' === $operation['path']) { $parent_operation = $op; } } if (null !== $sibling_operation || null !== $parent_operation) { if ($mediaFolder->isRoot()) { throw new BadRequestHttpException('Cannot move root node of a site.'); } try { if (null !== $sibling_operation) { unset($operations[$sibling_operation['key']]); $sibling = $this->getMediaFolderByUid($sibling_operation['op']['value']); $this->getMediaFolderRepository()->moveAsPrevSiblingOf($mediaFolder, $sibling); } elseif (null !== $parent_operation) { unset($operations[$parent_operation['key']]); $parent = $this->getMediaFolderByUid($parent_operation['op']['value']); $this->getMediaFolderRepository()->moveAsLastChildOf($mediaFolder, $parent); } } catch (InvalidArgumentException $e) { throw new BadRequestHttpException(sprintf('Invalid node move action: %s', $e->getMessage())); } } }
public function getMediasByFolder(MediaFolder $mediafolder) { $q = $this->createQueryBuilder('m')->leftJoin('m._media_folder', 'mf')->leftJoin('m._content', 'mc')->andWhere('mf._root = :root')->andWhere('mf._leftnode >= :leftnode')->andWhere('mf._rightnode <= :rightnode')->setParameters(['root' => $mediafolder->getRoot(), 'leftnode' => $mediafolder->getLeftnode(), 'rightnode' => $mediafolder->getRightnode()]); return $q->getQuery()->getResult(); }
/** * @covers BackBee\NestedNode\MediaFolder::getUrl * @covers BackBee\NestedNode\MediaFolder::setUrl */ public function testGetAndSetUrl() { $this->assertEquals($this->folder, $this->folder->setUrl('new url')); $this->assertEquals('new url', $this->folder->getUrl()); }