On this page
WebDAV API for Drupal
Student: Fabiano Sant'Ana, http://www.wundo.net
Mentor: James Walker
Synopis:
The WebDAV API module will be an interface to Drupal. It will allow the users to access the Drupal database(contents and configs) from an WebDAV interface. Each Drupal Module will need a hook to work with the WebDAV API, this can be done inside the module or outside using an "complement" module (like in blog and blogapi modules).
What the Drupal earns with this? (Benefits to the Drupal Community)
Freedom.
An backup method, if I'm a Drupal Admin I could copy all the configs and information that are in my site direct from my Windows Explorer (or whatever you use to navigate in folders) to an local folder.
Usability.
A better user interface, 'cause sincerely it's too much better way just open my text editor and write my post then just save this in my Mapped Drupal WebDav directory than write it in my editor then copy and past into Drupal page.
Elegance.
It's very elegant to control the content from my site like if it is a local folder. And I don't need to code, see html tags, or whatever that a dummy don't know how to do. But if you want you can see anyway. :)
Uncountable uses.
My proposal is to do an API (not just it), I really don't know all the things that can be done with this.
Deliverables:
The WebDAV API module.
And Example module, "UploadWebDAV" hook. (The API interface for the upload module)
Project Details:
My proposal is to implement an interface to Drupal using the WebDAV protocol, what allows the users a more friendly way to manage/publish the contents of the system. Based in the RFC 2518 (HTTP Extensions for Distributed Authoring - WebDAV (http://www.ietf.org/rfc/rfc2518.txt)) the module will authenticate using the Drupal Database. The root WebDAV folder will have collections(collections is the name of WebDAV folders) and each collection is a hook to another module.
WebDAV will make the low level things and transmit it to the "hook module". The "hook module" will make the interaction between the "real" module and all the logic work.
For example:
The root folder has a collection named "uploads", when the user try to access it the DAV module will call the "hook module" asking if the user can access it, and if yes, what DAV should show to the user there.
Suppose that there is an file "bio.txt" in the user files, and the user delete it, the DAV module will call the delete procedure in hook module, and the hook module will remove it from the system.
Also I'll make a module to show how to work with the API (What matter if we have a API but no one uses/knows how to use it? ;) ). This module will be a hook to the upload module, and will be the same as it.
Project Schedule:
Until 06/19 - Structure the basics of API.
Until 07/02 - Implement the first WebDAV Request Methods (GET, PUT, POST, MKCOL, etc).
Until 07/16 - Implement the extended WebDAV Methods (PROPFIND, PROPPATCH)
Until 07/30 - Implement Locking related WebDAV Methods (LOCK, UNLOCK)
Until 08/13 - Debug/Implement the Sample Module (uploads WebDAV module)
Until 08/20 - Finish the Sample Module
Until 08/27 - Final Tests/Debug
COMMENTS ON THIS PROPOSAL
This could be huge.
Zach Harkey - September 7, 2005 - 09:08
A better user interface, 'cause sincerely it's too much better way just open my text editor and write my post then just save this in my Mapped Drupal WebDav directory than write it in my editor then copy and past into Drupal page.
At the moment, one of my biggest frustrations with Drupal, or any CMS really, is having to edit complicated HTML/PHP/etc. directly in a web browser. Administering text in a textarea through a web browser is fine for simple blog-style text entries. But there are many of us who want to trick out every page with some pretty advanced HTML/CSS. We have our text editors tricked out so hard that we can markup a heavily structured page in seconds using quick keys and scripted routines.
Sure I can use my preferred text editor(BBEdit) then copy/paste the result into the browser form but that is so busch-league, if for no other reason that I am then maintaining two separate versions of the same file, and every time I want to preview the result in context, I have to shuffle around copy and pasting.
This is such a pain in the ass that instead of trying to maintain many of my more complicated nodes through such a limited web browser interface, I have resorted to setting the input for my node to PHP and replacing the body with an include statement like...
include config_init().'nodes/123.php'
I then use WebDAV to mount my remote 'nodes' directory and easily edit my more complicated files with my preferred text editor without having to constantly copy/paste through the browser.
For the most part this works, but it is such a kludge.
It will allow the users to access the Drupal database(contents and configs) from an WebDAV interface.
Are you saying that this would allow us to use WebDAV to access and maintain individual nodes in the database like flat files? Meaning I could even mount my database with WebDAV to my local file system and edit the markup in my nodes, and save them, as though they were text documents? If so, this would be the answer to a year long quest.
What is the status of this development? Is there a place where we can check in on it?
======================================================
======================================================
Re: This could be huge.
wundo - December 16, 2005 - 09:32
Are you saying that this would allow us to use WebDAV to access and maintain individual nodes in the database like flat files? Meaning I could even mount my database with WebDAV to my local file system and edit the markup in my nodes, and save them, as though they were text documents? If so, this would be the answer to a year long quest.
Yes, I am. ;)
What is the status of this development? Is there a place where we can check in on it?
Now I'm working in the webdav upload module, my next step is implement an "webdav node module"....
You can find more information about the project in my website...
======================================================
======================================================
WebDav implementation
ulhume - January 24, 2006 - 19:14
I made a very small (but usefull for half a day of work) implementation of this using Pear WebDav server.
At the moment it is only usable to view/modifiy an existing node. You have :
* User authentication binded to "edit own blog" access (same as blogapi).
* Browse avalaible resources from http://URL/. Only "nodes" folder appears for now.
* Browse avalaible nodes from http://URL/nodes.
* Download (GET) specific node from http://URL/nodes/nid.php
* Upload (PUT) specific node to http://URL/nodes/nid.php
That's it for now. Retrevied data is retreived as html/utf8 but perhaps can be clever to change this to a nice XML structure. Don't know.
It still need a lot of polish and a module packaging. I don't have a clue of how to do that and if it is even possible (it's same problem that xmlrpc, needs its own php file).
Anyway, if someone is interested, you can have the first release here :
http://artisan.karma-lab.net/node/49
======================================================
======================================================
Services
Rob Loach - June 13, 2007 - 11:33
It would be neat if the WebDAV API was implemented using the Services module? Then you could access the WebDAV functionality from Drupal's XMLRPC, AMFPHP, etc.
======================================================
======================================================
Help improve this page
You can:
- Log in, click Edit, and edit this page
- Log in, click Discuss, update the Page status value, and suggest an improvement
- Log in and create a Documentation issue with your suggestion