Cuic pages (0.1.0)
- Cuic pages download link: http://plone.org/products/cuic-pages/releases
- Homepage of Cuic pages: http://plone.org/products/cuic-pages
- Description source: http://plone.org/products/cuic-pages
Introduction
A "cuic page" is a sort of wiki page. The main difference is that cuic pages are viewed and edited with the same template, i.e., if you are viewing a cuic page, you can edit it right away. You can also follow links; if you are viewing a page, you can insert a link and then click on it and follow it, or, if the target of the link doesn't exist, be led to a blank new cuic page.
Apart from this, cuic pages are versionable (through CMFEditions) and have a mechanism for checking out/in and staging, based loosely on Iterate and implemented as a workflow.
This product is alpha, not more than a proof of concept.
The name is based on the phonetic similariry with wiki and on the fact that cuic pages are quicker to work with.
Technical details
Cuic pages subclass ATDocument and ATOrderedFolder, so they have a rich text field and can contain other cuic pages.
Rendering
the rendering of the pages is based on FCKeditor. The presentation of the page uses FCKeditor's canvas, and this is the reason you can edit it right away. The only hack on top of FCKeditors' canvas is stealing click events (in cuic.js) so that if they happen over an A element, the link is followed.
workflow
Cuic pages by default are created in a private state. In this state, they can only be viewed and edited by the owner, and there is no locking, no checking in or out.
The owner role can publish private pages, and any member can view and edit cuic pages in the published state. In this case, when a member wants to edit a page, she will check it out. This means taking a copy of it to her member folder, in the "working copy" workflow state, and transitioning the original page to the locked state. Locked pages can be viewed by anyone, but only through plone's document_view template; this is, they can be edited by no one. When a member checks in a page, a new version of the original is saved, it is transitioned to the published state (unlocked), and the working copy is deleted.
portal_factory
When a member first visits a published cuic page, he obtains a temporary working copy in the portal factory; and this does not entail locking the original. Thus, many members can edit temp working copies of the same page at the same time. With these copies two things can be done: commit the changes directly to the original, or save your changes as a permanent working copy, in which case the original is locked.
Of course, when a member tries to commit a temporary copy or make it into a permanent working copy, she can find that someone else has already commited changes (and updated the version of the original document) or locked the original; in this case, her temporary working copy wil be made into a private copy in her home folder, with a reference (not an at reference) to the original copy.
linking
You insert links through fckeditor's link dialog. Two kind of links can be inserted: normal links, that point to any resource in the network, or "cuic links", that have the form $portal_url/portal_cuic/$cuic_id. Portal_cuic is a tool, based on the traversal mechanism of portal_factory, that will search the site for a cuic page with id $cuic_id, and if it doesn't find any, will create a blank page in the portal factory as a child of the page that has the link. This of course means that no two cuic pages can have the same id in the same site.
Further documentation can be found in tests/cuic.txt