Hi,

where is the code atm?

Maarten


-----Original Message-----
From:   Alan Knowles [mailto:[EMAIL PROTECTED]]
Sent:   Sun 9/22/2002 3:37 AM
To:     [EMAIL PROTECTED]
Cc:     
Subject:        Re: [midgard-user] Open Source WYSIWYG editors
>
>
>>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]




<<winmail.dat>>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to