Forum OpenACS Q&A: Re: Top Ten Priorities for OpenACS ... what are yours?

Posted by Talli Somekh on
Shawn, we already basically did this for a CMS based on OpenACS 3.2.5. It worked pretty nicely, and you can download the code here

That being said, it's pretty unclear on what you're gaining from this that you wouldn't get from proper use of the CR. No one will really stop you since it would be an interesting project, but this sort of jumped out at me:

Use the database for metadata about the files. Model the object system on the OpenACS object model.

Why not just use the object system in the first place?

Further, since you're calling this a "poor man's webdav" why not just use the webdav code that is being built, which you can read about here?

There are some good ideas, but the project seems to dangerously replicate a lot of previous work...


Posted by Sean Harrison on
Dave and Talli,

I agree that replicating previous work is a bad idea. Not only is it a waste of time, but you end up with a square wheel to ride on.

I didn't mean to imply that I wouldn't use the OpenACS object model. (Talli, is the quote you pulled from my website? I'm afraid I didn't fully edit that -- it originally referred to a possible project that cannot be done in OpenACS. Sorry for the confusion.) I also don't mean to say I wouldn't use the Content Repository. Both of those things are at the core of OACS, and the idea is to build on them. I understand and embrace that.

But what I am after is to have the live version of the content always resident on the file system, arranged to match the file hierarchy that the Content Repository contains.

I think this implies modifying the way Content Repository stores files when it is using the file-system. Rather than putting everything in a single directory, it would use a file hierarchy that mirrors the internal structure of the repository. For example, the root of the content repository could be the www directory, and all the content arranged therein.

Why do that? All kinds of reasons.

The current OpenACS involves a large degree of abstraction between the web environment and the operating system. I would like to explore the ramifications of tying the two systems closer to each other, rather than isolating them from each other.

The idea of a merged static dump from the database is intriguing. If you do that when you publish a file, then change the templates, you'd have to go back through and re-dump the whole CR. Right? That would be useful for periodically mirroring the site onto a static webserver.

Re/CVS: I agree, the Content Repository keeps revisions in the database. Perhaps this can serve as a replacement for CVS? Nevertheless, some types of projects would like to use CVS itself, with its file-system storage.

Why not use webDAV? No reason not to. When it's ready, it'll fit right in.

The existence of the File-Manager and the Version-Control applications in the OpenACS toolkit suggests to me that others have found these capabilities useful as well. I think what I'm really proposing is to find a way to combine these applications with the use of the Content Repository and the OpenACS object model, in order to better integrate with the existing OpenACS system, while at the same time providing a way for OpenACS users to make use of the file system on their site, when they have reason to do so.

I'm also interested in having the Content Repository use the file system only for certain sections of the site. Perhaps the way to do that would be to specify, when creating a new CR "root" directory, whether that hierarchy will be kept in the DB or in the file system.

Okay, time to call it a night (er, morning). Thanks for stimulating further thoughts and for making sure I don't fall into typically traps---I appreciate both of you taking the time. Take care,