DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:webdav

WebDAV Plugin

Compatible with DokuWiki

  • 2024-02-06 "Kaos" unknown
  • 2023-04-04 "Jack Jackrum" yes
  • 2022-07-31 "Igor" yes
  • 2020-07-29 "Hogfather" yes

plugin WebDAV server for DokuWiki

Last updated on
2021-01-10
Provides
CSS/JS-only
Repository
Source

Tagged with !experimental, odt, share, tag, webdav

:!: Experimental Plugin

This plugin adds WebDAV server support for DokuWiki using Sabre DAV plugin (https://sabre.io/dav/).

Special thanks to Andi for the idea and code (webdav).

With this plugin it's possible to explore, modify and add elements (pages 1) and media files) in DokuWiki using a WebDAV client (such as Dolphin, Nautilus, Explorer, etc.).

By default WebDAV plugin expose this virtual directory:

pages DokuWiki pages
media Media files
odt DokuWiki pages in ODT format (require odt plugin)
tags All tagged pages (require tag plugin)

Installation

Download and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.

Features

URL

This is the default location of WebDAV server end-point:

https://[dokuwiki-server]/lib/plugins/webdav/server.php/

You can enable show_button configuration setting to display a popup with all WebDAV URL for the famous WebDAV clients (KDE Dolphin, Nautilus, Windows Explorer, etc.).

Enabled plugins and collections

Collections

Collection Read Edit Create Delete Rename Note
pages yes yes yes yes no DokuWiki pages
media yes yes yes yes no Media files
odt yes no no no no DokuWiki pages in ODT format (require odt plugin)
tags yes no no no no All tagged pages (require tag plugin)

Plugins

  • Browser
  • Mount
  • Locks
  • TemporaryFileFilter
  • DokuWiki (expose extra properties, see below)

Events

WebDAV plugin add additional DokuWiki events for add extra plugins or collections 2).

Event Description
PLUGIN_WEBDAV_WIKI_COLLECTIONS Add new Wiki collection
PLUGIN_WEBDAV_PLUGINS Add new plugin

Pages collection

Client Create Edit Delete Rename
Dolphin yes yes yes no
Nautilus yes yes yes no
DAVFS2 yes yes yes no
Cadaver yes yes yes no
Windows yes yes yes no

:!: WebDAV plugin follow the pagename naming convention for directory (namespace) and files (page).

Windows users may experience problems with files and directories containing spaces and uppercase / lowercase in the name.

Media collection

Client Create Edit Delete Rename
Dolphin yes yes yes no
Nautilus yes yes yes no
DAVFS2 yes yes yes no
Cadaver yes yes yes no
Windows yes yes yes no

WebDAV plugin preserve the original file and directory name (space and upper/lower case). In media manager all files are viewed in standard DokuWiki format.

Custom properties

WebDAV plugin expose additional DAV properties:

Property Note
dw:id Page ID
dw:title Page Title
dw:description Page description/summary
dw:tag tag plugin tags

It's possible to view this properties using PROPFIND method:

PROPFIND http://dokuwiki.example.org/lib/plugin/webdav/server.php/wiki/pages/wiki/syntax.txt
<?xml version="1.0" encoding="utf-8" ?>
<d:propfind xmlns:d="DAV:">
   <d:prop xmlns:dw="http://dokuwiki.org/ns">
     <d:getlastmodified/>
     <d:getcontentlength/>
     <d:getcontenttype/>
     <d:resourcetype/>
     <d:getetag/>
     <d:displayname/>
     <dw:id/>
     <dw:title/>
     <dw:description/>
     <dw:tag/>
   </d:prop>
 </d:propfind>
<?xml version="1.0"?>
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:dw="http://dokuwiki.org/ns">
    <d:response>
        <d:href>
            /wiki/lib/plugins/webdav/server.php/wiki/pages/wiki/syntax.txt
        </d:href>
        <d:propstat>
            <d:prop>
                <d:getlastmodified>
                    Sun, 20 May 2018 22:27:43 GMT
                </d:getlastmodified>
                <d:getcontentlength>
                    22597
                </d:getcontentlength>
                <d:getcontenttype>
                    text/plain
                </d:getcontenttype>
                <d:resourcetype/>
                <d:getetag>
                    &quot;2fd28b7174c545bdb35da008a8208611b92663f3&quot;
                </d:getetag>
                <d:displayname>
                    Formatting Syntax
                </d:displayname>
                <dw:id>
                    wiki:syntax
                </dw:id>
                <dw:title>
                    Formatting Syntax
                </dw:title>
                <dw:description>
                    Formatting Syntax
 
DokuWiki supports some simple markup language, which tries to make the datafiles to be as readable as possible. This page contains all possible syntax you may use when editing the pages. Simply have a look at the source of this page by pressing
                </dw:description>
                <dw:tag>
                </dw:tag>
            </d:prop>
            <d:status>
                HTTP/1.1 200 OK
            </d:status>
        </d:propstat>
    </d:response>
</d:multistatus>

Configuration and Settings

Config Default Description
remote 1 Allow remote access to WebDAV
remoteuser !!not set!! See remoteuser config
fix_msoffice_lockroot 0
show_button 0 Show WebDAV button in Page Tools with WebDAV URL
browser_plugin 0 Enable SabreDAV Browser Plugin

Known Bugs and Issues

:!: In pages collection, Windows users may experience problems with files and directories containing spaces and uppercase / lowercase in the name.

:!: MSOffice user may experience errors when save media file (lock problem)

ToDo/Wish List

  1. Add “rename” support
  2. Increase stability for Windows Explorer client
  3. Add support for MSOffice “online” editing
  4. Add support for UPPER/lower case directory in media collection
  5. Add support for namespace template (new collection ?)

FAQ

Discussion

Development

Build Status

ChangeLog

Main branch
Develop branch

Bugs / Feature Requests

Please report bugs or feature requests at the Bug tracker.

1)
normal DokuWiki page file
2)
see action.php and server.php
plugin/webdav.txt · Last modified: 2024-03-01 00:28 by 113.149.197.49

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki