kernel/private/classes/webdav/ezwebdavcontentbackend.php
public function propFind( ezcWebdavPropFindRequest $request )
    {
        $ini = eZINI::instance( 'i18n.ini' );
        $dataCharset = $ini->variable( 'CharacterSettings', 'Charset' );
        $xmlCharset = 'utf-8';

        $this->acquireLock( true );
        $return = parent::propFind( $request );
        if ( isset( $return->responses ) && is_array( $return->responses ) )
        {
            foreach ( $return->responses as $response )
            {
                $href = $response->node->path;
                $pathArray = explode( '/', self::recode( $href, $dataCharset, $xmlCharset ) );
                $encodedPath = '/';

                foreach ( $pathArray as $pathElement )
                {
                    if ( $pathElement != '' )
                    {
                        $encodedPath .= rawurlencode( $pathElement );
                        $encodedPath .= '/';
                    }
                }
                $encodedPath = rtrim( $encodedPath, '/' );
                $response->node->path = $encodedPath;
            }
        }
        $this->freeLock();

        return $return;
    }
public function propFind( ezcWebdavPropFindRequest $request )
    {
        $ini = eZINI::instance( 'i18n.ini' );
        $dataCharset = $ini->variable( 'CharacterSettings', 'Charset' );
        $xmlCharset = 'utf-8';

        $this->acquireLock( true );
        $return = parent::propFind( $request );
        if ( isset( $return->responses ) && is_array( $return->responses ) )
        {
            foreach ( $return->responses as $response )
            {
                $href = $response->node->path;
                $pathArray = explode( '/', self::recode( $href, $dataCharset, $xmlCharset ) );
                $encodedPath = '/';

                foreach ( $pathArray as $pathElement )
                {
                    if ( $pathElement != '' )
                    {
                        $encodedPath .= rawurlencode( $pathElement );
                        $encodedPath .= '/';
                    }
                }
                $encodedPath = rtrim( $encodedPath, '/' );
                $response->node->path = $encodedPath;
            }
        }
        $this->freeLock();

        return $return;
    }
public function propFind ( ezcWebdavPropFindRequest $ request ) { $ ini = eZINI :: instance ( 'i18n.ini' ) ; $ dataCharset = $ ini -> variable ( 'CharacterSettings' , 'Charset' ) ; $ xmlCharset = 'utf-8' ; $ this -> acquireLock ( true ) ; $ return = parent :: propFind ( $ request ) ; if ( isset ( $ return -> responses ) && is_array ( $ return -> responses ) ) { foreach ( $ return -> responses as $ response ) { $ href = $ response -> node -> path ; $ pathArray = explode ( '/' , self :: recode ( $ href , $ dataCharset , $ xmlCharset ) ) ; $ encodedPath = '/' ; foreach ( $ pathArray as $ pathElement ) { if ( $ pathElement != '' ) { $ encodedPath .= rawurlencode ( $ pathElement ) ; $ encodedPath .= '/' ; } } $ encodedPath = rtrim ( $ encodedPath , '/' ) ; $ response -> node -> path = $ encodedPath ; } } $ this -> freeLock ( ) ; return $ return ; }
Serves PROPFIND requests.

The method receives a {@link ezcWebdavPropFindRequest} object containing
all relevant information obout the clients request and will either
return an instance of {@link ezcWebdavErrorResponse} to indicate an error
or a {@link ezcWebdavPropFindResponse} on success. If the referenced
resource is a collection or if some properties produced errors, an
instance of {@link ezcWebdavMultistatusResponse} may be returned.

The {@link ezcWebdavPropFindRequest} object contains a definition to
find one or more properties of a given collection or non-collection
resource.

This method acquires the internal lock of the backend, dispatches to
{@link ezcWebdavSimpleBackend} to perform the operation and releases the
lock afterwards.

This method is an overwrite of the propFind method from
ezcWebdavSimpleBackend, a hack necessary to permit correct
output of eZ Publish nodes. The array of ezcWebdavPropFindResponse
objects returned by ezcWebdavSimpleBackend::propFind is iterated and
the paths of the nodes in the ezcWebdavPropFindResponse objects
are encoded properly, in order to be displayed correctly in WebDAV
clients. The encoding is from the ini setting Charset in
[CharacterSettings] in i18n.ini.

@param ezcWebdavPropFindRequest $request
@return ezcWebdavResponse
Serves PROPFIND requests .