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]