at the moment,

pear install Date
pear install DB_DataObject
pear install HTML_Template_Flexy
pear install http://docs.akbkhome.com/HTML_FlexyFramework-0.1.tgz
pear install http://docs.akbkhome.com/HTML_FlexyFramework_CMS-0.1.tgz

will give you most of the code -assuming you've got the pear installer 
working.
unfortunatly, it's quite a slog to get it up and running from there. - 
it depends on a config file
ConfigData/default.ini , somewhere in your include path
and index.php looks something like this...
<?
/* bootstrap - loader */
ini_set("include_path","/mnt/d/alan/Projects/akbkhome");

require_once 'HTML/FlexyFramework.php';
HTML_FlexyFramework::staticStart($_SERVER['REQUEST_URI']);
?>




General Setup Instructions:
Modifying PHP, (this is based on 4.2.3 , if you use 4.3-dev, I think you 
can just put allow_weddav_methods = TRUE in php.ini)

about line 307 of php4/main/SAPI.c
change this line

   if (SG(request_info).request_method  && 
(!strcmp(SG(request_info).request_method, "POST"))
to this.
         if (SG(request_info).request_method
           && ((!strcmp(SG(request_info).request_method, "POST")
               || (!strcmp(SG(request_info).request_method, "PUT")) ))) {
           
enable  mod_headers in apache and add this line to the host.

Header add DAV "1,2,<http://apache.org/dav/propset/fs/1>"

Modify the blobs table, and add
alter table blobs add column sizex int(11) not null default 0;
alter table blobs add column sizey int(11) not null default 0;
alter table blobs add column sizebytes int(11) not null default 0;
alter table topics add column view int(11) not null default 0;

** these are not that neccesary but the code has been writen to depend 
on this data, otherwise it prints errors everywhere.



it does require creating a few controller classes, that extend the 
default HTML_FlexyFramework_CMS_Pages_index &  
HTML_FlexyFramework_CMS_Pages_webdav etc.
and DataObjects that extend HTML_FlexyFramework_CMS_DataObjects_*

unfortunatly at present - the reset is a bit of guesswork - which needs 
alot of work either documenting or automating..

Regards
Alan









Maarten Stolte wrote:

>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]
>
>
>
>
>  
>
>------------------------------------------------------------------------
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>




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

Reply via email to