kernel/private/classes/webdav/ezwebdavcontentbackend.php
protected function moveVirtualFolder( $sourceSite, $destinationSite,
                                $source, $destination,
                                $fullSource, $fullDestination )
    {
        $this->setCurrentSite( $sourceSite );

        $source = $this->splitFirstPathElement( $source, $sourceVFolder );
        $destination = $this->splitFirstPathElement( $destination, $destinationVFolder );

        if ( !$source or
             !$destination )
        {
            // We have reached the end of the path for source or destination
            // We do not allow 'move' operations for the virtual folder (from or to)
            return false; // @as self::FAILED_FORBIDDEN;
        }

        if ( ( $sourceVFolder === self::virtualContentFolderName() or
               $sourceVFolder === self::virtualMediaFolderName() ) and
             ( $destinationVFolder === self::virtualContentFolderName() or
               $destinationVFolder === self::virtualMediaFolderName() ) )
        {
            return $this->moveContent( $sourceSite, $destinationSite,
                                       $sourceVFolder, $destinationVFolder,
                                       $source, $destination,
                                       $fullSource, $fullDestination );
        }

        return false; // @as self::FAILED_FORBIDDEN;
    }
protected function moveVirtualFolder( $sourceSite, $destinationSite,
                                $source, $destination,
                                $fullSource, $fullDestination )
    {
        $this->setCurrentSite( $sourceSite );

        $source = $this->splitFirstPathElement( $source, $sourceVFolder );
        $destination = $this->splitFirstPathElement( $destination, $destinationVFolder );

        if ( !$source or
             !$destination )
        {
            // We have reached the end of the path for source or destination
            // We do not allow 'move' operations for the virtual folder (from or to)
            return false; // @as self::FAILED_FORBIDDEN;
        }

        if ( ( $sourceVFolder === self::virtualContentFolderName() or
               $sourceVFolder === self::virtualMediaFolderName() ) and
             ( $destinationVFolder === self::virtualContentFolderName() or
               $destinationVFolder === self::virtualMediaFolderName() ) )
        {
            return $this->moveContent( $sourceSite, $destinationSite,
                                       $sourceVFolder, $destinationVFolder,
                                       $source, $destination,
                                       $fullSource, $fullDestination );
        }

        return false; // @as self::FAILED_FORBIDDEN;
    }
protected function moveVirtualFolder ( $ sourceSite , $ destinationSite , $ source , $ destination , $ fullSource , $ fullDestination ) { $ this -> setCurrentSite ( $ sourceSite ) ; $ source = $ this -> splitFirstPathElement ( $ source , $ sourceVFolder ) ; $ destination = $ this -> splitFirstPathElement ( $ destination , $ destinationVFolder ) ; if ( ! $ source or ! $ destination ) { // We have reached the end of the path for source or destination // We do not allow 'move' operations for the virtual folder (from or to) return false ; // @as self::FAILED_FORBIDDEN; } if ( ( $ sourceVFolder === self :: virtualContentFolderName ( ) or $ sourceVFolder === self :: virtualMediaFolderName ( ) ) and ( $ destinationVFolder === self :: virtualContentFolderName ( ) or $ destinationVFolder === self :: virtualMediaFolderName ( ) ) ) { return $ this -> moveContent ( $ sourceSite , $ destinationSite , $ sourceVFolder , $ destinationVFolder , $ source , $ destination , $ fullSource , $ fullDestination ) ; } return false ; // @as self::FAILED_FORBIDDEN; }
Handles moving on the virtual folder level.

It will check if the target is below a content folder in which it
calls moveContent().

@param string $sourceSite Eg. 'plain_site_user'
@param string $destinationSite Eg. 'plain_site_user'
@param string $source Eg. 'Content/Folder1/file1.txt'
@param string $destination Eg. 'Content/Folder2/file1.txt'
@return bool
Handles moving on the virtual folder level .