Somone replaced the help page with advertisement/spam text, which is actually an interesting situation - it would be useful to empower people to undo changes like that themselves. I would much prefer to get rid of it myself rather than bother Simon.

How can you empower everybody to undo spam/ad stuff? One way would be to give people access to past versions of a page. Then they could at least copy the text from a past version and paste it back in. So if version 1 is fine and version 2 is screwed up, you could see the text from version 1, paste it in, and make version 3 that would look just like version 1. (You don't want to get rid of version 2 - you want to make a new version 3 even if version 2 is junk).

You could actually make a Versions folder underneath the main folder and put pages there with names like HelpPage.1, HelpPage.2, etc. Or you could put a single page there with the name HelpPage, and you could keep appending to it every time the page changed. The single page idea might be the simplest solution. You could even do automatic cleanup by truncating the version page if it hasn't been modified in 30 days or something like that. You might want to use something other than a ZWikiPage - something that doesn't provide an edit interface. A File object would probably do it. This would be more of a history log rather than a page version feature, but the point is to empower people to get rid of spam - and the availability of a history log would do that.

The name of the folder that contained the history log should be something that will not be a WikiName. A name like History.Logs would work.

You could also use this history log feature to allow people to recover from "mistakes" more effectively than their browser's "Back" button allows. The HowDoIEdit? page says use your back button or ask your administrator if you make a mistake and lose good text - it would be best to eliminate the need for administrator intervention. The history log feature does this.

It might be best to add a method to the ZWikiPage object that returns the history log text rather than exposing the underlying implementation directly. This would make it easier to keep the presentation of the history separate from the underlying representation.

The place to make the change would be in the 'ZWikiPage.edit()' method in just before the line that says:

text = self._edit_cleanups(text)
#insert history log stuff just before the above statement

The ZWikiPage object should have getHistoryLogText() and appendTextToHistoryLog() methods

Either standard_wiki_header or standard_wiki_footer should provide a "View History Log" link, which at the very least should invoke a DTML method that returns the raw history log text. The raw text should include visual cues showing date/time/size of appended snapshots.