Quote from: romdg at Aug 15, 2006, 10:27 AM
Hey Jason,
Thanks for weighing in on versioning, as the approach you suggests most definitely looks promising. I think I was unclear in what versions I was talking about. From a subversion/cvs standpoint your statements are 100% right on. But I was referring to the actual content in the CMS. The (templates, TV’s, chunks, snippets, plugins, etc) build a structure for our data, but I am interested in maintaining versions of the content itself as seen on 37 Signals Writeboard. As the *content* tables house the actual document the themplates, snippets, and plugins provide tools to format, arrange, and display the data. I am conjuring up a solution to provide copy versions and in turn a approval mechanism on what is published to the live site. Chunks house flat data and would benefit from content version control as well. Sorry if I was unclear, but you are absolutely right that there is a need to define version control in the tool itself.
Cheers,
Gregg
I am not talking about CVS or Subversion, though the implementation is certainly based on some concepts from these tools; I am talking about the content in the CMS. And this structure will be able to allow creating of writeboard-like functionality, wiki-like versioning features for any content, custom translation management, and even custom publishing workflow. Draft revisions would be part of this approval mechanism, and rolling back content to any version would be possible. It would even be possible, with some management interface work, to merge various revision points together.
I think what makes this confusing is that in this future architecture I am describing, there is no content stored in the site_content table any longer. And the default [*content*] becomes just another TV-like element with the name ’content’. So, in a sense, a document in MODx is really no less than the sum of it’s parts, not just a single [*content*] item stuck in a template, so, in my perspective, you manage the content where it actually exists, in the components that produce it. This increases the freedom of expression you have when working with the default content of a document, as well as promotes content re-use throughout the framework.