[Zope] Q: KM|News, Squishdot or roll your own Zclasses (and future compatibility)

Kevin Dangoor kid@kendermedia.com
Tue, 17 Aug 1999 11:19:49 -0400


-----Original Message-----
From: Samu Mielonen <ex@uiah.fi>
To: Zope@Zope. Org <zope@zope.org>
Date: Tuesday, August 17, 1999 4:35 AM
Subject: [Zope] Q: KM|News, Squishdot or roll your own Zclasses (and future
compatibility)


>I'm trying to build a distributed content editing and publishing
>site, to which content writers can log in, write in their
>stories and have editors edit/approve them for publication.
>
>Now, I'm thinking that my data is basically mostly flat-file or
>object-based (i.e. non-relational), thus I have chosen to abandon
>SQL-databases as my storage. This means using the Zope object
>storage to store everything.

This is the way I decided to go with my code.

>NOw, there are a couple of promising alpha products out there
>(Squishdot and KM|News) that both do some of the things I want to.
>
>I'm afraid I'm not so adept at Python as to start combining them
>myself, so I have to choose either or for my task. The third
>possibility would do it all by DTML and roll my own Zclasses to
>represent different article classes (this *looks* straightforward
>enough).

Another possibility is modifying KM|Net News. KMNN is all ZClass based, and
the release is completely editable. I guess one thing that I am not clear on
is what exactly is missing that you're looking for. KMNN allows people to
write stories that are lumped into "categories" and subject to editor
approval.

It doesn't have a "login" at this point for the writers. That is actually
something I would like to do, but I don't plan to do that until the
Membership System part of the ZPT comes out. However, it would not be
difficult to make it so that people have to login to write and submit an
article. (Let me know if this is desirable...)

>My question is: if I choose either of the products, how do they
>store their articles, how do they keep references to those
>articles and if I (at a later date) decide to change the
>product I use, can I still keep accessing those old articles
>with my new product?

Articles in KMNN are stored in a fairly simple hierarchy (that you can
browse through the standard Zope management interface). They are stored like
this: ArticleStore/Year/Month/timestamp where timestamp is an instance of
the KMArticle ZClass. KMArticle is folderish, so any pictures, etc. that go
with the article are stored within the KMArticle object. The author, text,
summary/teaser text are all stored as properties of the KMArticle object.

If you want to switch later, you'll most likely need to convert the articles
to a new format. I am actually doing this right now in switching the
articles on byproducts.com from Folder objects to KMArticle objects. It is
not very difficult, once you've got a handle on Zope and ZClasses.

Another way to possibly convert things, if desired: you can export to XML
and then try using simple text replacement to set up your new format.

> ?. What about if I originally chose KM|News, how do I access them?

As I said above, rather than "hooking in" to the old system, I'd probably
convert the articles to the new system. Since KMNN just stores the articles
as ZClass instances with properties, the conversion is probably not very
difficult. If you're just going from one ZClass to another, all you really
need to do is create the new objects and copy the properties over from the
old ones.

>I know the above questions probably already contain some fundamental
>misunderstandings of Zope, but I'm afraid this is as far as I've
>been able to get by myself. To be quite honest, the whole idea
>of how Zope stores, references, deletes, fetches and searches
>objects is extremely vague to me.

If you're really curious, I can add some comments to my conversion code that
converts my Folder objects to my newer KMArticle objects...

Kevin