I know true workflow is slated for implementation in version 1.0, but I am looking for some advice to a major oversight on my part when implementing MODx for a large-scale site.
I am currently redesigning our university’s site using MODx. It’s great, everyone who has had training loves it, it makes me happy and my job easier, for the most part. The one issue that we have to deal with is content approval. Our current workaround involves the following: authors make a duplicate of the document, stick it in an unpublished Need Approval folder, notify the approvers, and the approvers publish the changes. However, my major oversight was that if a document was also a container, then all of the children get duplicated as well. So, I had a school author make a change to her homepage. She duplicated the homepage and in turn, duplicated all of the pages under it, including the department sites, thus doubling the number of documents in the database and essentially making a duplicate of the site. How I missed this when I did testing and evaluation I have no clue.
Technically I know we can have authors just make direct edits to the pages and then notify the approvers. However, the approvers don’t have a way of seeing what changes were made unless the author explicitly tells them "I changed this to this" and so forth. While I trust the authors enough to update and maintain the sites on their own, others do not and feel they need oversight, thus complicating what is a great system for us. Can anyone offer me some advice on a possible workaround or what they might do?
While I am not as proficient in PHP as I would like, my boss is and he is looking into creating a snippet, plug in, or module that would either create a rollback version or something to at least act as a workaround for the time being. But we don’t want to create something completely custom if the 1.0 code base is going to change dramatically.
Any ideas or thoughts would be greatly appreciated. We love the system and if we could get rid of the approvers, none of these problems would exist.
Thanks!
Amberly
-
MODX Staff
- 10,725 Posts
If it is as simple as versioning the page content, it might be best to create a front-end page for submitting changes for approval that you could store in a separate table. Then, simply have a module in the manager that admins can then use to promote those changes into the appropriate site_content row. Another approach might be using the OnBeforeDocFormSave event to intercept and redirect the changes to a separate table, also in conjunction with a module for promotion from the custom table back to site_content. Either way should be fairly forward-compatible for a while (though many components may require some migration efforts), and there will be ways to migrate forward with it once bigger changes start appearing around the planned 1.0 releases (i.e. significant changes to the database structures).
Thanks for the ideas. I saw your response in the Wishlist forum regarding rollback, versioning, and mounting (June 8th) and I was wracking my brain to see if there were current add-ons that might do the rollback or versioning.