Sulu\Bundle\MediaBundle\Entity\CollectionInterface::getDepth PHP Method

getDepth() public method

Get depth.
public getDepth ( ) : integer
return integer
    public function getDepth();

Usage Example

示例#1
0
 /**
  * {@inheritdoc}
  */
 public function findCollectionSet($depth = 0, $filter = [], CollectionInterface $collection = null, $sortBy = [])
 {
     try {
         $dql = sprintf('SELECT n, collectionMeta, defaultMeta, collectionType, collectionParent, parentMeta, collectionChildren
              FROM %s AS n
                     LEFT OUTER JOIN n.meta AS collectionMeta
                     LEFT JOIN n.defaultMeta AS defaultMeta
                     LEFT JOIN n.type AS collectionType
                     LEFT JOIN n.parent AS collectionParent
                     LEFT JOIN n.children AS collectionChildren
                     LEFT JOIN collectionParent.meta AS parentMeta
              WHERE (n.depth <= :depth + :maxDepth OR collectionChildren.depth <= :maxDepthPlusOne)', $this->_entityName);
         if ($collection !== null) {
             $dql .= ' AND n.lft BETWEEN :lft AND :rgt AND n.id != :id';
         }
         if (array_key_exists('search', $filter) && $filter['search'] !== null) {
             $dql .= ' AND collectionMeta.title LIKE :search';
         }
         if (array_key_exists('locale', $filter)) {
             $dql .= ' AND (collectionMeta.locale = :locale OR defaultMeta != :locale)';
         }
         if ($sortBy !== null && is_array($sortBy) && sizeof($sortBy) > 0) {
             $orderBy = [];
             foreach ($sortBy as $column => $order) {
                 $orderBy[] = 'collectionMeta.' . $column . ' ' . (strtolower($order) === 'asc' ? 'ASC' : 'DESC');
             }
             $dql .= ' ORDER BY ' . implode(', ', $orderBy);
         }
         $query = new Query($this->_em);
         $query->setDQL($dql);
         $query->setParameter('maxDepth', intval($depth));
         $query->setParameter('maxDepthPlusOne', intval($depth) + 1);
         $query->setParameter('depth', $collection !== null ? $collection->getDepth() : 0);
         if ($collection !== null) {
             $query->setParameter('lft', $collection->getLft());
             $query->setParameter('rgt', $collection->getRgt());
             $query->setParameter('id', $collection->getId());
         }
         if (array_key_exists('search', $filter) && $filter['search'] !== null) {
             $query->setParameter('search', '%' . $filter['search'] . '%');
         }
         if (array_key_exists('limit', $filter)) {
             $query->setMaxResults($filter['limit']);
         }
         if (array_key_exists('offset', $filter)) {
             $query->setFirstResult($filter['offset']);
         }
         if (array_key_exists('locale', $filter)) {
             $query->setParameter('locale', $filter['locale']);
         }
         return new Paginator($query);
     } catch (NoResultException $ex) {
         return [];
     }
 }
All Usage Examples Of Sulu\Bundle\MediaBundle\Entity\CollectionInterface::getDepth