[34]Content versioning for Joomla!

User avatar
willebil
Joomla! Guru
Joomla! Guru
Posts: 762
Joined: Thu Aug 18, 2005 12:06 pm
Location: Netherlands

[34]Content versioning for Joomla!

Post by willebil » Sat Feb 16, 2008 10:48 pm

1. INTRODUCTION

Current content component lacks support for content versioning. Content versioning implements the possibility to revert to a previous version (or previous versions) of an article.

2. SCOPE

* When saving an article, create a new content record.
* Offer the possibility to check on previous content versions
* Offer the possibiltiy to revert to a previous content version (actually creating a new version).


3. TECHNICAL IMPLEMENTATION

Determine if content records get a version tag and only the latest version will be used, or store previous versions in a separate table.

4. IMPACTS

Awaiting community comment on scope.

5. DEPENDENCIES

Backward compatiability with a lot of extensions will probably break when versions are stored in the content table. Further more the content table can grow pretty fast in size on active sites.

6. REFERENCES

A good implementation of content versioning, including a possible interface can be found in Google Documents.

Cergorach
Joomla! Apprentice
Joomla! Apprentice
Posts: 16
Joined: Fri Aug 19, 2005 8:16 pm
Location: Zeewolde, the Netherlands

Re: Content versioning for Joomla!

Post by Cergorach » Sun Feb 17, 2008 1:34 am

Versioning is something i'm very interested in for Joomla!

Some additional input:
1.) The option to set any version as the default content item. This way a new content item that has been submitted doesn't go live immediately, allowing for additional eding (by other users).
2.) Add roles (functioning with the new and improved ACL) that have view/creation/edit/publishing rights for the content items. Maybe even add an option that certain right may not add certain plugins, use html, or any combination of these things. For example a role that only allows the creation of plain text (writer) and a role that only allows the addition to layout html/table/plugin functions, but not the actual editing of teh submited text (layout artist).
3.) Add stages to the content (as in submitter => editor facts => editor style => publisher), but I think that would be to much too soon. A website could greatly benefit if the right people where allowed the correct things with a new content item. Think of writing a piece of documentation for Joomla, the writer submits his work, but someone with good knoledge of the code needs to check if it's correct, someone needs to check if the writing style conforms with the rest of the documentation, someone needs to do check the gramar, and someone else (or a groep) needs to aprove the content item before it goes life. The option to 'send' the content item back to a previous stage. Connect stages to roles.
4.) It would be nice if the versioning would allow branches. If multiple writers would want to change the same text it would be interesting if these could be worked on beside each other instead of after each other. Notation would be along the lines of 1.0 => 1.1 => 1.2 => 1.2a/1.3b => 1.3a/1.3b => 1.3a/1.3b/1.4c It would also be nice if there could be some sort of visual tree so changes could be better tracked if it branched.
5.) Some sort of compair option, so it would be possible to see what was changed. Maybe this could work in different views. One view that only shows the differences, one view that shows all the test with the changes highlighted, one view that shows all the text with the changes highlighted and the old text crossed out.
6.) Option to add notes to certain parts of the text that are not actually part of the content, but rather usefull for the next guy/gal that edits the page.
Supporter of *, the CMS formerly known as Mambo

User avatar
pointri
Joomla! Explorer
Joomla! Explorer
Posts: 283
Joined: Wed Aug 24, 2005 2:02 pm
Location: Rhode Island, USA

Re: Content versioning for Joomla!

Post by pointri » Sun Feb 17, 2008 3:48 am

Add stages to the content (as in submitter => editor facts => editor style => publisher), but I think that would be to much too soon. A website could greatly benefit if the right people where allowed the correct things with a new content item.
Development stages could probably be extrapolated on in the current content table as a new article parameter. This make me wonder if this would be simple enough to implement as creating new administrator form views within com_content, with any enhanced ACL that comes along determining which view a user sees and which corresponding controller commands are accessible. With form clusters wrapped up in templates as they are in some of the core component administrator views, it should be pretty attainable.

I'd definitely advocate a structure that allows branching, a diff-like syntax (rather than whole copies) that represents article modifications (therein lies a challenge: how would modification points be represented or stored in the HTML string, or would they?), and a new table for versions to keep the current content table unencumbered when being queried by front-end components and modules.

stacy_w_decker
Joomla! Apprentice
Joomla! Apprentice
Posts: 20
Joined: Mon Nov 06, 2006 11:27 pm

Re: Content versioning for Joomla!

Post by stacy_w_decker » Sun Feb 17, 2008 6:12 am

I'd like to thank you for putting this in. This is an important factor that is missing from the current Joomla release. There are two extensions available for 1.0 with neither of them available for 1.5 at this time.

In thinking about this and seeing the need for Article version management, I also see the need to manage Section, Category and Menu content. I have users that will modify the descriptions of a Section or Category and expect it to be tracked.

Stacy

User avatar
epleste
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 182
Joined: Mon Dec 03, 2007 3:23 am
Location: Australia
Contact:

Article history

Post by epleste » Thu Feb 21, 2008 2:31 am

Please find in the following post a white paper outlining the addition of an article history to Joomla! 1.6.

Please note that the only time I have looked into the backend of Joomla was while writing this proposal so if the technical details in the paper are wrong tell me where I'm wrong (in a nicely worded post) and I'll rectify.

Enjoy
Last edited by epleste on Thu Feb 21, 2008 11:13 pm, edited 1 time in total.
You only get out what you put in!

User avatar
epleste
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 182
Joined: Mon Dec 03, 2007 3:23 am
Location: Australia
Contact:

Re: Article history

Post by epleste » Thu Feb 21, 2008 5:22 am

White paper for the addition of article history
Summary

On a large site with numerous editors the ability to track the edit history of an article is required for a number of reasons. These reasons include but are not limited to the following examples.

Government example
Concerns were raised over the amount of public consultation about a proposed transport corridor involving land resumptions. Providing the content of the project website during the consultation helped prove that sufficient consultation was done.

Sales example
A company receives a complaint from a customer that they were charged more than the advertised price for a product on their website. The company pulls up the web page with the price on it from the day the customer ordered the product and adjusts the price they charge according, gaining not only return business but improved good will.

Community website example
The administration team notice that a webpage has been changed and incorrect information has been posted (assume the worst and let say it’s a case of one community member intentionally changing content someone they don’t like has written). The last edit shown was done by the article author (they noticed a spelling mistake in their article but did not go far enough into it to see the abusive text further down) who would not normally abuse themselves. Having the full history of this article allows the site admin to find out who made left the ‘bad words’ and send them a stern email saying do it again and we’ll ban you.

Scope
To create a complete record of an article a similar system would have to be developed and implemented for things that can be included in articles such as attachments and images. This is considered out of scope for this paper.

Requirements/Assumptions
This paper assumes the acceptance of and the inclusion in the Core Code of the proposal put forward in paper http://forum.joomla.org/viewtopic.php?f=500&t=266296 - Save triggers for core components.

Overview of functional requirements
The following requirements are necessary to fully enable the history of an article to be retrieved through an example life cycle:
  • article is created - date, time, by who
  • article is edited - date, time, by who, what changed and why
  • article is published - date, time, by who
  • article is updated (edited after publishing) - date, time, by who, what changed
  • article is republished - date, time, by who
  • article is archived - date, time, by who and why
Some of these things area already available, who created an article, when it was published, when it was archived, what is missing is the edits, the republishes, and a big thing - why the article was changed.

Technical requirements

Core requirements
Building on the metadata already stored about an article (creation date, publish date, author) the only real piece of new info that is required is the why. Some of metadata about an article may need relocating which could make upgrading an issue.

Basic outline
Keeping the history of updates should be fairly simple. Articles and authors already have unique id's.

The following information is currently stored in the jos_content table:
  • created_by – author Id
  • created_by_alias – author id
  • modified – date/time
  • modified_by - author id
  • version – version # of article
In the ideal solution these fields would be moved to a new table (referred to as jos_content_history in this paper). The proposed structure is as follows:
  • article id – id from jos_article table
  • date/time stamp
  • version – version # of article that represents the lifecycle up to and including publish
  • author id
  • state change identifier
  • reason for change in state (not required by default).
A key generated by combining the article id and date/time stamp would be used to uniquely identify records in this table

A supporting table storing state change id and their meanings for querying purposes would be as follows (referred to as jos_state_chage in this paper):
  • state change id
  • state change meaning.
jos_state_change.jpg
jos_content_history.jpg
Jos_article_history can be queried to provide a full history of an article.

Possible issues
  • The relocation of the fields from the table jos_content to jos_content_history could cause some issues during migration to newer versions of Joomla!.
  • The extra time taken to query another table to generate an article in the browser may also be an issue.
Possible work around
One way around this would be to leave the identified fields in the jos_content table and update them with the most recent values for each article. Although not ideal from a database management perspective this would alleviate both of the above issues.

Development process
The development process for this 'should' be pretty short. The following sections are completed assuming the table structures and work around above are approved.

Database
As stated above, this can be achieved without any changes to the existing tables. The addition of the two extra tables, jos_content_history and jos_state_change, would allow this addition to be completed. Backward compatibility should not be an issue.

Coding
Additional modules/coding would be required to complete the following tasks:
  • Create the table jos_article_history at the time of database creation and database migration (migration may need to be a separate project)
  • Create and populate the table jos_state_change at the time of database creation and database migration (migration may need to be a separate project)
  • Update the jos_article_history every time an article changes state.
  • Verify, and update if required, that the jos_content table contains the most up to date data from the jos_article_history for each article.
Benefits of this update to Joomla!

Core benefits
  • Content owners and site administrators can get a complete history of changes to each article on their site.
  • Users would be able to query and see the entire history of any article within a site.
Side benefits
The following benefits could also be realised either by the core development team or by component/plug-in developers utilising the extra data stored in the jos_content_history table.
  • Administrators/Users would be able to track # of articles written/edited/published/archived by each user.
  • Administrators would be able to auto-advance users ‘through the ranks’ based on the number of articles written/edited/published, using a system similar to forums where the number of posts you write ups your user status.
For example, write 10 articles, get them published with a user rating of three or better and you are upgraded to an editor. Edit 10 and have their star rating increase afterwards and you are upgraded to a publisher.

--- --- --- --- ---

Advanced feature

Summary
Building on top of the above proposal would be the tracking of what exactly changed in an article whether it is a complete rewrite of the article content or the fixing of a spelling mistake.

I would consider this an advanced feature useful for large community or business sites as opposed to individual blog sites. This is because enabling this feature has the potential to blow out the size of a database very quickly when multiple updates are stored.

Scope
As stated in the original summary above, to ensure a complete record of each article is created a system of archiving items that can be included in documents would need to be developed. This is also outside the scope of this ‘advanced feature’.

Overview of functional requirements
Some way of tracking changes from one version of an article to another would need to be incorporated. The three options are:
1. Complete backup of the article created at each version point.
2. List of changes from the original version of the document.
3. List of changes from the last version of the document.

Technical requirements
The requirements of this ‘advanced feature’ would depend on the option listed above implemented.

As a minimum the following is suggested:
  • New table to keep the size of jos_content_history down to keep response times at an appropriate level. This table will be referred to as jos_version_history for the rest of this paper.
  • Code to accomplish the following:
    • Create the table jos_version_history
    • Update jos_version_history each time the article changes version
    • Query jos_version_history to return:
    • Content at each version number
    • Content changed between version numbers.
Benefits

Core benefits
The core benefits of this ‘advanced feature’ include the ability to see what has changed in an article over time.

Side benefits
The core development team or a component/plug-in developer could use the data contained in this table to improve the publishing workflow within Joomla!.

For example,
  • A publisher receives a message saying ‘article_134’ has been sent to them for publishing.
  • From the initial proposal of this paper the publisher can see that editor ‘user 5’ has made changes to the tense of a paragraph.
  • The publisher clicks a button and the content from jos_version_history is used to compare the last published version of the article to the edited article they are looking at.
  • Any changes are highlighted, meaning the publisher does not have to scroll through the document trying to compare it with the currently published version of a page in another window.
You do not have the required permissions to view the files attached to this post.
Last edited by epleste on Sun Feb 24, 2008 10:38 pm, edited 2 times in total.
You only get out what you put in!

Stian
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 247
Joined: Sat May 20, 2006 7:58 am
Location: Norway

Re: Article history

Post by Stian » Thu Feb 21, 2008 2:41 pm

Please post your paper directly in the forum as a new post. Easier to discuss it then...

S

pasamio
Joomla! Ace
Joomla! Ace
Posts: 1318
Joined: Thu Aug 18, 2005 9:27 am
Location: San Jose, CA, USA
Contact:

Re: Article history

Post by pasamio » Fri Feb 22, 2008 3:18 am

Implementing my white paper (http://forum.joomla.org/viewtopic.php?f=500&t=266296) would provide you with the ability to track all of this using a plugin and third party plugin. The only thing I could see that you would miss is the reason why it was changed because that would require an edit to com_content's form.
Sam Moffatt
Updater, Installer and Authentication Systems
JoomlaCode Backend Systems
Pie.

User avatar
epleste
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 182
Joined: Mon Dec 03, 2007 3:23 am
Location: Australia
Contact:

Re: Article history

Post by epleste » Fri Feb 22, 2008 4:08 am

I agree. I have added a section (requirements/assumptions) into my paper identifying your proposal as a prerequisite for mine.

Thanks
Last edited by epleste on Sun Feb 24, 2008 10:40 pm, edited 1 time in total.
You only get out what you put in!

df23
Joomla! Intern
Joomla! Intern
Posts: 59
Joined: Thu Sep 15, 2005 5:52 pm

Re: Article history

Post by df23 » Sat Feb 23, 2008 11:20 pm

Excellent proposal idea and very well documented. I would be interested in seeing this implemented to provide an audit trail. It would provide the ability to show what was in a site's content at any specific point in time. Personally i would not have a need for site visitors to see the history of articles. The simplest solution in your advanced would be to place a copy of the version of the article being updated into the jos_version_history table leaving the existing jos_content table contents and logic for updating unaffected by this improvement. I see the "reason for change" and version comparisons as nice to haves.

The core requirements for me are:
a) the ability to recreate an article at any point in time
b) the ability to see the pre and post change versions of an article together with an audit trail of who changed it and when

well done with the white paper :)

VanCrey
Joomla! Apprentice
Joomla! Apprentice
Posts: 22
Joined: Mon Dec 17, 2007 10:57 pm

Re: Content versioning for Joomla!

Post by VanCrey » Sun Feb 24, 2008 12:27 pm

Hello,

I already had the same ideas and thats definitely something that is neccessary for a CMS System! But I have some more comments for this request

1. Situation

It must be possible to use a versioning system for Articles, which brings together all the "same" articles in different versions. At the same time It must be also possible to bring together Articles in different languages!

As also already requested, the ACL will be neccessary as replacement for the "access" check. It must be possible to assign Read, Write, Change and Delete rights to individual users or User Groups.

2. Result

On the webpage we see only the active article version dependend on the current requested language. This mean, that all articles on the webpage will change automaticly its langauge version or fall back to the default language.


3. Realization

To encapsulate the problem and to come closer to the Object Orientated aspect, it will be nice to provide a Class "ContentManager", which handles all requests to an article. This class can then easily handle all access to articles dependend on ACL rights, version and language.

Returns a single of Article:

ContentManager.getArticle($article_key, $locale = [default], $version = [if null the active version], $cached = [default]);

Returns a list of Article headers excluding the content (Improves the performance for the table view):

ContentManager.getArticleHeaders($category = [null == all], $locale = [null == all], $sort_field = [null == no sort]);

On method call, there are following events fired

onContentRequest


Shoudl give plugins the appility to modify the request, block it because of ACL restrictions or return a single article from a third party content system. If no content is provided over the plugin, the default handling will be executed

onContentResult

Some possible plugin handling for the result list

onContentsRequest

Shoudl give plugins the appility to modify the request, block it because of ACL restrictions or/and return articles from a third party content system.

onContentsResult

Some possible plugin handling for the result list

User avatar
epleste
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 182
Joined: Mon Dec 03, 2007 3:23 am
Location: Australia
Contact:

Re: Article history

Post by epleste » Sun Feb 24, 2008 10:47 pm

I agree df23, 'reason for change' and version comparisons (advanced feature) would only be required by a large complex site with a lot of authors, editors and publishers.

The 'reason for change' also gives authors and editors the ability to communicate with publishers to let them know whether there have been major changes or slight ones and (with an approval workflow implemented as well) give publishers an avenue of communications to editors and authors for rejected content.

Thanks for the suggested location of the article history. I'll add that into the paper.

Do you see a requirement to have the images and other attachments available when you recreate an article?
You only get out what you put in!

User avatar
epleste
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 182
Joined: Mon Dec 03, 2007 3:23 am
Location: Australia
Contact:

Re: Content versioning for Joomla!

Post by epleste » Sun Feb 24, 2008 11:03 pm

willebil & VanCrey

Can you check out my paper on this, I think we should combine them - http://forum.joomla.org/viewtopic.php?f=500&t=267518

thanks
You only get out what you put in!

pasamio
Joomla! Ace
Joomla! Ace
Posts: 1318
Joined: Thu Aug 18, 2005 9:27 am
Location: San Jose, CA, USA
Contact:

Re: Article history

Post by pasamio » Sun Feb 24, 2008 11:35 pm

In some legislative scenarios it would be required to have the images at the given moment, and there are CMS's that do this by basically versioning images as well. For example a diagram of a structure could be inaccurate and could mislead someone. The updated image doesn't help however because it might be correct and that is the bone of contention. So versioning needs to extend to any referenced resource.
Sam Moffatt
Updater, Installer and Authentication Systems
JoomlaCode Backend Systems
Pie.

User avatar
epleste
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 182
Joined: Mon Dec 03, 2007 3:23 am
Location: Australia
Contact:

Re: Article history

Post by epleste » Sun Feb 24, 2008 11:46 pm

mmm, I agree. think this would be better left to a separate paper/proposal as this would require some serious work being done on the media manager.
You only get out what you put in!

yourmanstan
Joomla! Apprentice
Joomla! Apprentice
Posts: 34
Joined: Sat Dec 17, 2005 4:54 am
Contact:

Re: Content versioning for Joomla!

Post by yourmanstan » Sun Feb 24, 2008 11:55 pm

very good recommendation!

User avatar
pointri
Joomla! Explorer
Joomla! Explorer
Posts: 283
Joined: Wed Aug 24, 2005 2:02 pm
Location: Rhode Island, USA

Re: Content versioning for Joomla!

Post by pointri » Mon Feb 25, 2008 12:40 am

I agree, just because versioning/history is such a critical feature, and we now have at least three papers that address either the concept, the conventions or the implementation, but not all three. And pasamio's comment in epleste's proposal is really something to consider as well.

VanCrey
Joomla! Apprentice
Joomla! Apprentice
Posts: 22
Joined: Mon Dec 17, 2007 10:57 pm

Re: Content versioning for Joomla!

Post by VanCrey » Mon Feb 25, 2008 12:45 am

Thats really good, but probably we should also consider following question: Who's using the Joomla?

This question probably defines the requirements for the features, which are needed. Some people need only a simple content management, some other a little bit more and professionals a extrem powerful tool. The professional edition is probably too complex for the "normal" / non-professional homepage owner. In this case we should consider to encapsulate the content access in thinking more Object Orientated. Thats really a issue, because I always have to describe colleagues how they can use Joomla!

What we need is a CMS Data Interface, which provides all joomla elements access to the "CMS" content. This interface implemented in different ways and as example replaced by plugins.

The interface must only be able to delivery a list of available articles and a single article content for key & language. One article can probably exist in several versions, languages and whatever, but this is only visible in the edition of the CMS implementation. The interface needs also a methods to cover the existing features like search operations, content hits, ... .

Least but not last, we have to implement all the nice ideas, which you all have definied here!

Actually thats not a completely sophisticated concept, but a good start to find the right way!

User avatar
Beat
Joomla! Guru
Joomla! Guru
Posts: 844
Joined: Thu Aug 18, 2005 8:53 am
Location: Switzerland
Contact:

Re: Content versioning for Joomla!

Post by Beat » Tue Feb 26, 2008 10:28 am

Just a thought....Content versioning could also be linked together for the whole website, not only content or only database... :P

How about viewing on your own website how it (your website) looked one year back ?

A simple beginner's approach which might have a very simple interface: a module with a date to pick, like template-changer ;)
Beat 8)
www.joomlapolis.com <= Community Builder + CBSubs Joomla membership payment system - team
hosting.joomlapolis.com <= Joomla! Hosting, by the CB Team

User avatar
Hackwar
Joomla! Virtuoso
Joomla! Virtuoso
Posts: 3788
Joined: Fri Sep 16, 2005 8:41 pm
Location: NRW - Germany
Contact:

Re: Content versioning for Joomla!

Post by Hackwar » Tue Feb 26, 2008 5:07 pm

Beat wrote:How about viewing on your own website how it (your website) looked one year back ?
How about the way-back-machine on archive.org? ;)
god doesn't play dice with the universe. not after that drunken night with the devil where he lost classical mechanics in a game of craps.

Since the creation of the Internet, the Earth's rotation has been fueled, primarily, by the collective spinning of English teachers in their graves.

User avatar
Beat
Joomla! Guru
Joomla! Guru
Posts: 844
Joined: Thu Aug 18, 2005 8:53 am
Location: Switzerland
Contact:

Re: Content versioning for Joomla!

Post by Beat » Wed Feb 27, 2008 11:13 am

Hackwar wrote:
Beat wrote:How about viewing on your own website how it (your website) looked one year back ?
How about the way-back-machine on archive.org? ;)
Yes, i'm aware of this external service. ;)
Just wanted to illustrate with a simple example (could give way more) the powerfulness of having a generic versioning system for everything, not just content. ;)
Beat 8)
www.joomlapolis.com <= Community Builder + CBSubs Joomla membership payment system - team
hosting.joomlapolis.com <= Joomla! Hosting, by the CB Team

User avatar
micheas
Joomla! Explorer
Joomla! Explorer
Posts: 323
Joined: Sat Sep 03, 2005 10:54 am
Location: San Francisco, CA
Contact:

Re: Content versioning for Joomla!

Post by micheas » Wed Feb 27, 2008 2:56 pm

I think that this is a long way from a white paper.

I would think that the proposal should have at lest a sketch of how this should work.

Look at plone (which uses zopes), drupal, and mediawiki, for three very different ways of doing version control

Personally, I think that the mediawiki model of storing diffs would be reasonable.

The Drupal version has serious problems with databases filling up with the log file.

Personally I am in favor of content editors having an undo button and a diff table that the editor uses.

This is not secure, but it has A huge usability plus and might be doable without the monster performance hit of the media wiki system.

I may get to writing this up but I think that lightweight version control with being upfront that if you want something auditable you need to look at something like plone instead of Joomla! and that is already the case.

I suspect that this request is about people making mistakes, not about needing to verify who made what change.

Just some thoughts off the top of my head.

stacy_w_decker
Joomla! Apprentice
Joomla! Apprentice
Posts: 20
Joined: Mon Nov 06, 2006 11:27 pm

Re: Content versioning for Joomla!

Post by stacy_w_decker » Thu Feb 28, 2008 11:07 pm

I think that the initial post is very close to what the definition of a White Paper is and the addition of picture would only solidify the basic concept of being able to recover/view original Article content.

There are two Joomla 1.0 extensions that perform content versioning. Version Control and Egxact Revision Manager. Version Control is/was a lightweight Article version manager that stored the changes to a history table. Each version was accessable with the capability of recovery to a specific version. Egxact is a more robust Article version manager.

Neither are available for 1.5 at this time and either could be upgraded/incorperated into 1.6 to satisify the original description of this white paper. I'm working on changes for Version Control to try and shoe horn it into the stable 1.5 release to satisfy my companies simple need to review/recover older version of the same article.

If you'd like I can post links to the two extensions that were referred to me for future reference.

Stacy

User avatar
mcsmom
Joomla! Exemplar
Joomla! Exemplar
Posts: 7897
Joined: Thu Aug 18, 2005 8:43 pm
Location: New York
Contact:

Re: Content versioning for Joomla!

Post by mcsmom » Sun Mar 02, 2008 10:04 am

@Micheas,

The invitation for whitepapers clearly stated that they did not have to be done by developers. They need to be more than a simple feature request (which this clearly is), but do not need implementation plans.

I do really agree with you though, that we need to understand what the point of version control is. I think it is about more than making mistakes, but not about making an auditable record either. It also has to do with how people use the archive feature. For example, today if you want to do a new about us page but you don't want to lose your old copy would make a totally new about us page and when it is ready you would either
1. Go in and overwrite the existing page thus preserving all of your menu links and internal links or
2. Unpublish (and maybe archive) the old page, publish the new page and redo all the links. (How often do people even forget to do the unpublish step leaving their out of date content accessible to anyone with a bookmark?)

Either way, that creates a lot of rows in the table that probably contain a lot of the same content and finding old versions is hit or miss.

I don't really know what the requirements for an auditable record would be, but it sounds to me like something that might make more sense as an extension. I'm sure it can be done without going to Plone, though of course Plone is a fantastic application. :)
So we must fix our vision not merely on the negative expulsion of war, but upon the positive affirmation of peace. MLK 1964.
http://officialjoomlabook.com Get it at http://www.joomla.org/joomla-press-official-books.html Buy a book, support Joomla!.

User avatar
micheas
Joomla! Explorer
Joomla! Explorer
Posts: 323
Joined: Sat Sep 03, 2005 10:54 am
Location: San Francisco, CA
Contact:

Re: Content versioning for Joomla!

Post by micheas » Sun Mar 02, 2008 6:18 pm

mcsmom wrote:@Micheas,

The invitation for whitepapers clearly stated that they did not have to be done by developers. They need to be more than a simple feature request (which this clearly is), but do not need implementation plans.
I do really agree with you though, that we need to understand what the point of version control is. I think it is about more than making mistakes, but not about making an auditable record either. It also has to do with how people use the archive feature. For example, today if you want to do a new about us page but you don't want to lose your old copy would make a totally new about us page and when it is ready you would either
1. Go in and overwrite the existing page thus preserving all of your menu links and internal links or
2. Unpublish (and maybe archive) the old page, publish the new page and redo all the links. (How often do people even forget to do the unpublish step leaving their out of date content accessible to anyone with a bookmark?)
This seems like a second feature beyond undo. The ability to have versions 1 and 2 and edit each of them.
Programmatically allowing versioning of content should be pretty simple, just an extra column in the content table.

I agree this would be a neat feature, but what I have run into is people wanting the ability to save changes look at the site and then undo the changes if they don't like them.

What I cannot really picture is how the user interface should look if this feature is to be independent of the editors.
mcsmom wrote: Either way, that creates a lot of rows in the table that probably contain a lot of the same content and finding old versions is hit or miss.

I don't really know what the requirements for an auditable record would be, but it sounds to me like something that might make more sense as an extension.
If you want auditability you need to keep track of who logged in when and where. Think of a keylogger with annotated notes.
mcsmom wrote: I'm sure it can be done without going to Plone, though of course Plone is a fantastic application. :)

User avatar
epleste
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 182
Joined: Mon Dec 03, 2007 3:23 am
Location: Australia
Contact:

Re: Content versioning for Joomla!

Post by epleste » Mon Mar 03, 2008 12:22 am

For me, content versioning IS keeping a completely accurate (or almost completely) record of what was on a page/article at a specific time. Even if mistakes are made they should be recorded. Content versioning, IMHO, is also not a snapshot of a website at a specific point in time either.

This said, content versioning is not for everyone, a blogger won't care as much as a company will so VanCrew's questions about who uses Joomla is very important when addressing how much support for content versioning is built into the core product. If it's deemed that keeping a record of a page every time updates is a fairly standard feature that everyone will use then there should be more support in the core. If it is something that 'is nice to have' for the larger clients then maybe only the extra triggers suggested by VanCrew and Pasamio (http://forum.joomla.org/viewtopic.php?f=500&t=266296) would be enough.
mcsmom wrote: Either way, that creates a lot of rows in the table that probably contain a lot of the same content and finding old versions is hit or miss.
Versioning should not be hit and miss. If a new version id is attached to a article id (in a separate table as suggested in this post http://forum.joomla.org/viewtopic.php?f=500&t=267518) every time an article goes through a cycle (create/edit, publish) then you are going to get an exact (and easy to query) version history of a page.
mcsmom wrote: I don't really know what the requirements for an auditable record would be, but it sounds to me like something that might make more sense as an extension.
Linking article versioning with better user tracking would result in this. There are already a few posts suggesting better/extended access control. It's going to be dependent on how these improvements are tackled by the dev team.
You only get out what you put in!

rockarena
Joomla! Apprentice
Joomla! Apprentice
Posts: 45
Joined: Fri Aug 17, 2007 2:28 pm

Re: Content versioning for Joomla!

Post by rockarena » Sun Mar 16, 2008 8:43 pm

Great! I've been waiting for this to be in Joomla and I've done some thinking about this myself on how to implement it. I came up with the idea of having a versioncontainer class and a versionclass. The versioncontainer would then collect all the versions. I don't have my notes with me at the time of writing but I'd be happy to write them down here if anyone is interested in it. I came up with a simple technical description and some UML.

square87
Joomla! Fledgling
Joomla! Fledgling
Posts: 4
Joined: Mon Mar 03, 2008 7:27 am

Extension: Last Edits

Post by square87 » Wed Mar 19, 2008 3:22 pm

i'd like to have in joomla 1.6 an admin extensions that allow to list last edits articles.

Why?
When you have an huge site, where there are various editors (or above) you cannot check everyday all articles to see if someone has changed one of them.

Where?
The extension should be shown on the right in Panel Control so you can easily check: who edits what and when.

Configuration
There should be the possibility to set:
* how many edited articles should be listed.
* if we want to list different times an article edited different times, or if we want to list only the last edit for article.

-----------------------------
That's should be all :-)
Sorry for my English.
Thanks for attention, Bye :-)
Square87

rockarena
Joomla! Apprentice
Joomla! Apprentice
Posts: 45
Joined: Fri Aug 17, 2007 2:28 pm

Re: Extension: Last Edits

Post by rockarena » Tue Apr 01, 2008 8:55 am

square87 wrote:i'd like to have in joomla 1.6 an admin extensions that allow to list last edits articles.

Why?
When you have an huge site, where there are various editors (or above) you cannot check everyday all articles to see if someone has changed one of them.

Where?
The extension should be shown on the right in Panel Control so you can easily check: who edits what and when.

Configuration
There should be the possibility to set:
* how many edited articles should be listed.
* if we want to list different times an article edited different times, or if we want to list only the last edit for article.

-----------------------------
That's should be all :-)
Sorry for my English.
Thanks for attention, Bye :-)
Square87
Not really a white paper but a good request nevertheless. I'll start working on this admin module tonight to have it in Joomla1.5.

sgladstone
Joomla! Fledgling
Joomla! Fledgling
Posts: 4
Joined: Tue Jan 29, 2008 5:25 pm

Re: [34]Content versioning for Joomla!

Post by sgladstone » Wed Apr 02, 2008 4:35 am

I think versioning of articles is a must-have enhancement for Joomla. From the end-users point of view, Joomla must make it very easy to create a draft of an article and later publish it. A program which does this well ( as far as usability design is concerned) is "Adobe Contribute". A user can start editing a page, then click either "Save for Later" or "Publish" button. If the user clicks "Save for Later" a draft is created behind the scenes. The next time they edit that page, they pick up where they left off in the draft. What I like is that a non-technical user with minimal training can understand the system. They are not presented with too many choices or forced to deal with a "Draft Manger" . They just pick up editing where they left off.

I currently have a project where I am trying to convert to Joomla a website created with DreamWeaver and maintained by a totally non-techincal person who uses Adobe Contribute. The template I created matches the old layout 100%. Everything is working. But the non-technical person who currently uses Contribute hates it because of the missing "Save for Later" button.

As a work around in Joomla, I created a category named "Drafts" and showed her how to create articles there, then later publish them to a different category. Her response: To much extra work. For each page that she wants to create a draft she would have to do the following steps:

1) Create a new article in the drafts category.
2) Copy content from the existing published article to the draft article.
3) Work on editing the draft
4) Publish the draft
5) Change the category of the draft to the real category.
6) Unpublish or delete the old version of the article.

That is six steps in Joomla that would replace 1 step in Contribute.


Locked

Return to “Under Review - Archived”