public static function findAllChild($folderId, $depth = 0, $currentPosition = 0)
    {
        $result = array();

        if (\is_array($folderId)) {
            foreach ($folderId as $folderSingleId) {
                $result = array_merge($result, (array) self::findAllChild($folderSingleId, $depth, $currentPosition));
            }
        } else {
            $currentPosition++;

            if ($depth == $currentPosition && $depth != 0) {
                return[];
            }

            $categories = self::create()
                ->filterByParent($folderId)
                ->find();

            foreach ($categories as $folder) {
                array_push($result, $folder);
                $result = array_merge($result, (array) self::findAllChild($folder->getId(), $depth, $currentPosition));
            }
        }

        return $result;
    }
public static function findAllChild($folderId, $depth = 0, $currentPosition = 0)
    {
        $result = array();

        if (\is_array($folderId)) {
            foreach ($folderId as $folderSingleId) {
                $result = array_merge($result, (array) self::findAllChild($folderSingleId, $depth, $currentPosition));
            }
        } else {
            $currentPosition++;

            if ($depth == $currentPosition && $depth != 0) {
                return[];
            }

            $categories = self::create()
                ->filterByParent($folderId)
                ->find();

            foreach ($categories as $folder) {
                array_push($result, $folder);
                $result = array_merge($result, (array) self::findAllChild($folder->getId(), $depth, $currentPosition));
            }
        }

        return $result;
    }
public static function findAllChild ( $ folderId , $ depth = 0 , $ currentPosition = 0 ) { $ result = array ( ) ; if ( \ is_array ( $ folderId ) ) { foreach ( $ folderId as $ folderSingleId ) { $ result = array_merge ( $ result , ( array ) self :: findAllChild ( $ folderSingleId , $ depth , $ currentPosition ) ) ; } } else { $ currentPosition ++ ; if ( $ depth == $ currentPosition && $ depth != 0 ) { return [ ] ; } $ categories = self :: create ( ) -> filterByParent ( $ folderId ) -> find ( ) ; foreach ( $ categories as $ folder ) { array_push ( $ result , $ folder ) ; $ result = array_merge ( $ result , ( array ) self :: findAllChild ( $ folder -> getId ( ) , $ depth , $ currentPosition ) ) ; } } return $ result ; }
find all contents for a given folder.

@param  int $folderId the folder id or an array of id
@param  int                    $depth           max depth you want to search
@param  int                    $currentPosition don't change this param, it is used for recursion
@return \Thelia\Model\Folder[]
find all contents for a given folder .