Hello Stephen,
we've just finished implementing versioning throughout our cms -
it works fairly well but there are a few things to be aware of.
As far as making changes to versions, this is how we do it:
we have a "content portal", where all existing content can be
viewed, and new obejcts created. Whenever a new object is
created or an existing object edited, the versioning kicks in
out wizards are passed the version object to work on. When the
wizard finishes, the new version is passed to the workflow
system to be used as the artifact.
When an obejct is finally approved in the workflow, the
publishing system then rolls the versions over and all is good.
The version store itself is just another codb - versions are
pretty much normal objects - it's all handled therough the
objecthistory property of your original objects.
The main gotchas are making sure you reference the correct
datasources when working with your objects, and a couple of
other interesting undocmented bits and pieces.
I've written a doc on one issue - using versioning tags in
create handlers, I don't think this list supports attachments so
if you want it just give me a yell.
The other big issue that held us up for a while was metadata.
In our wizards, several obejcts require metadata to be assigned
- naturally we do the metadata assignment to the version object
as we do't want to affect something already in publication until
the workflow is approved. The problem is when you use the
version rollback tag to make your working version the current
version, it removes the stKeywords property.
Inside the version rollback tag, it uses contentObjectData to
save over the original object. ContentObjectdata can use three
modes - passing individual properties through
cfa_contentObjectProperty - passing a structure of properties to
overwrite into the stProperties attribute, or passing an entire
object into the stObject attribute.
If you use stProperties, it will fail if the structure you pass in has any
system-only
attributes (IE objectID, stKeywords etc). And because the
objectid etc within a version is DIFFERENT to the original
object, we don't want to be overwriting these properties. so
naturally the tag uses the stProperties method to ensure
nothing vital is overwritten. It works like this:
get the version object from the version datastore
remove any non-user properties so as not to overwrite
the original ones
save the remaining properties over the contents of the
original object.
Obviously this means stKeywords gets removed as well, so if you
were assigning metadata to your versions, all is lost.
We got around this by retrieving the version ourselves
and retaining a copy of the stKeywords structure immediately
before calling the versionrollback tag. Then once the rollback
is complete, we save the stKeywords to the original object.
Works fine.
Hope that helps, and if you need any more help, feel free to give me a yell
Cheers,
Toby
Thursday, January 17, 2002, 9:29:40 AM, you wrote:
SR> Hey all,
SR> I have just started setting up some versioning on a site I am developing and
SR> have some questions. First off, any suggestions as to which is the best
SR> resource out there for information on content object versions with Spectra
SR> 1.5.1? I am finding that the Allaire docs are a little, er, thin.
SR> Also, does anyone know what the structure of the version DB is? For the time
SR> being I am just using my normal CODB datasource as the version DB
SR> datasource. Is this recommended? Where can I actually see the information
SR> stored in WDDX. Do versioning setup new tables or rely on the existing
SR> objects table?
SR> Finally, is one able to make changes to verisions that are not the active
SR> version? It seems there are no cfa tags to support this, but I have no
SR> problem writing my own, is there a recommended methodology for this or is
SR> this an atypical procedure?
SR> Thanks in advance for any help,
SR> Cheers,
SR> Stephen
SR>
______________________________________________________________________
Macromedia ColdFusion 5 Training from the Source
Step by Step ColdFusion
http://www.amazon.com/exec/obidos/ASIN/0201758474/houseoffusion
------------------------------------------------------------------------------
To Unsubscribe visit
http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/spectra_talk or send a
message to [EMAIL PROTECTED] with 'unsubscribe' in the body.