> > >>I'm still working through the webdav object apis (which are modeled >>around midgard objects), so producing a midgard webdav server from it >>should not be that complex. >> >> > >...which is a very interesting project. I got your >development files but didn't yet find the time to >dig through them thoroughly enough to understand >the design of the implementation. >
mmh, yeah, documentation is not high on the priority list at present :) Principle: URL=>class mapping. (eg. similar concept midgard host/pages.) HTML_FlexyFramework is called from index.php with the $_SERVER['REQUEST'] variable, it takes the variable, and maps it to a php class: eg. index.php/info maps to MybaseController_info, index.php/info/xxxx/yyy can map to MybaseController_info_xxx, (since _xxx_yyy does not exist) and yyy is sent to the start method of that class. The Controller classes, normally extend the HTML_FlexyFramework_Page class, which does a) has a default start method that relays GET/POST/PUT requests etc. to get/post/put methods inside the class. b) has a output() method that uses HTML_Template_Flexy to map the controller objects variables onto a HTML/XML template. c) has hooks for page authentication: getAuth(), caching getCache( d) and some common variables, like $this->baseURL ... The webdav controller class extends the base Page controller class, and provides methods for all the get/put/move/copy methods. - The latest version, now has a configurable 'base data class', eg. topic. This class provides a number of webdav related methods. most of these methods are provided by the topic,article and blobs objects webdavGetByPath($request) :: topic only which maps a url to a topic or article or blob and returns the object. webdavGetChildren() which gets an array of subfile/folders of an object webdavSetData() which sets an objects webdav variables - like path, modification date etc. ready for output by the template. webdavPut($data) takes a put request and saves data. webdavMoveTo($object,$name) moves the current object ($this), to a new parent ($object) with a new name $name. webdavToHTML() Converts an object - eg. article to a HTML page, I found after alot of work that making a HTML page with abstract/content etc. was alot easier than dealing with multiple 'sudo' files for each object - eg. article.html, article.abstract.html cause alot of problems when dealing with move/copy etc. > >Before a generic Midgard WebDAV server is available,I'd >love to make a more limited experiment of the thing in >implementing WebDAV support in DocStore. Would you >like to provide pointers for this? > DocStore - just a wrapper around a file based storage - with a little database authentication etc. The key bit was that I wanted to move 3 sites away from midgard into the new framework, so they all share and test the same codebase - but currently it does not have an editing interface.. - so thats where the 'need' is comming from.. Although I can see lots of other real life uses for it.. - imagine an architects/engineering office, where you only had webdav as a file server. - you could stick a rcs backend on it, ensure that people only uploaded files with 'a standard naming structure' to the system. Had to annotate them after they where uploaded (eg. what it's purpose was...), and it was possible to easily retreieve old versions of documents/drawings......, and allow consultants 'controlled access' to only approved drawings..... > > >>Alan >> >> > >/Bergie > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
