Finds a collection set starting by given ID and depth.
public findCollectionSet ( integer $depth, array $filter = [], Sulu\Bundle\MediaBundle\Entity\CollectionInterface $collection = null, array $sortBy = [], Sulu\Component\Security\Authentication\UserInterface $user = null, integer $permission = null ) : |
||
$depth | integer | |
$filter | array | |
$collection | Sulu\Bundle\MediaBundle\Entity\CollectionInterface | |
$sortBy | array | |
$user | Sulu\Component\Security\Authentication\UserInterface | The user for which the additional access control should be checked |
$permission | integer | The permission mask the user requires, if it is passed for the access control check |
Результат |
/** * {@inheritdoc} */ public function getTree($locale, $offset, $limit, $search, $depth = 0, $sortBy = []) { /** @var Paginator $collectionSet */ $collectionSet = $this->collectionRepository->findCollectionSet($depth, ['offset' => $offset, 'limit' => $limit, 'search' => $search, 'locale' => $locale], null, $sortBy); $collections = []; /** @var CollectionEntity[] $entities */ $entities = iterator_to_array($collectionSet); foreach ($entities as $entity) { if ($entity->getParent() === null) { $collections[] = $this->getApiEntity($entity, $locale, $entities); } } $this->count = $collectionSet->count(); return $collections; }
/** * {@inheritdoc} */ public function getTree($locale, $offset, $limit, $search, $depth = 0, $sortBy = [], $systemCollections = true) { $filter = ['offset' => $offset, 'limit' => $limit, 'search' => $search, 'locale' => $locale, 'systemCollections' => $systemCollections]; /** @var CollectionEntity[] $entities */ $entities = $this->collectionRepository->findCollectionSet($depth, $filter, null, $sortBy, $this->getCurrentUser(), $this->permissions[PermissionTypes::VIEW]); $collections = []; foreach ($entities as $entity) { if ($entity->getParent() === null) { $collections[] = $this->getApiEntity($entity, $locale, $entities); } } unset($filter['limit']); unset($filter['offset']); $this->count = $this->collectionRepository->count($depth, $filter); return $collections; }