コード例 #1
0
ファイル: MediaRepository.php プロジェクト: gobjila/BackBee
 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);
 }
コード例 #2
0
 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()));
         }
     }
 }
コード例 #3
0
 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();
 }
コード例 #4
0
 /**
  * @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());
 }