protected function getCollectionMembers( $path, $depth = ezcWebdavRequest::DEPTH_INFINITY )
    {
        $properties = $this->handledLiveProperties;
        $fullPath = $path;
        $collection = $this->splitFirstPathElement( $fullPath, $currentSite );

        if ( !$currentSite )
        {
            // Display the root which contains a list of sites
            $entries = $this->fetchSiteListContent( $fullPath, $depth, $properties );
        }
        else
        {
            $entries = $this->getVirtualFolderCollection( $currentSite, $collection, $fullPath, $depth, $properties );
        }

        $contents = array();

        foreach ( $entries as $entry )
        {
            // prevent infinite recursion
            if ( $path === $entry['href'] )
            {
                continue;
            }

            if ( $entry['mimetype'] === self::DIRECTORY_MIMETYPE )
            {
                // Add collection without any children
                $contents[] = new ezcWebdavCollection( $entry['href'], $this->getAllProperties( $path ) );
            }
            else
            {
                // If this is not a collection, don't leave a trailing '/'
                // on the href. If you do, Goliath gets confused.
                $entry['href'] = rtrim( $entry['href'], '/' );

                // Add files without content
                $contents[] = new ezcWebdavResource( $entry['href'], $this->getAllProperties( $path ) );
            }
        }

        return $contents;
    }