[NGO] Re: Plone MultiSite?
Duncan Booth
duncan.booth at suttoncourtenay.org.uk
Mon Jul 17 09:13:48 UTC 2006
Shaun Hills wrote:
> I missed Ploneability, but I noticed there was some discussion around
> Plone MultiSite. Having had a bit of a look at the code and docs (ahem
> ;) it seems like it's a product for pushing content from a central
> "editing" instance out to multiple other Plone sites. Is this a fair
> summary? Is there anything else it does that I'm missing?
Yes, that's a fair summary. There is a single Plone site where content is
editable (the CMS) and one or more public sites.
Any content object in the CMS can be subscribed to one or more sites. When
you workflow the object in the CMS the multisite tool can perform one of
three actions for each subscribed site depending on the workflow
transition. The actions are to copy the object onto the site and workflow
it, delete any existing copy from the site, or simply workflow any existing
copy on the site.
The key to using Multisite is therefore to set up appropriate workflows for
both CMS and sites (although site workflows are likely to be one or maybe
two states at most). We have a setup where the CMS fans out to several
sites each with its own skin, but you could also use it for a more
traditional staging setup where different workflow states correspond to
private, on staging, or live.
We make published content uneditable in the CMS, and if somethings needs
updating the workflow lets the user choose between retracting the content
or simply making it editable again while leaving the previous version on
the site.
Some content types (in our case images, files and external links) can be
marked as dependent objects. We don't expect users to workflow any of these
directly, instead workflowing a document which uses any of these will
attempt to apply the same workflow transition to dependent content, but
only in the forward direction (so images could go from private to visible
to pending to published, but are never retracted automatically).
Multisite also has a preview option which will render the page as though it
were published on the site.
One of Oxfam's requirements was that the structure of the CMS and the site
need not be the same. For example the CMS is arranged by team, and a site
might be arranged by country with different teams contributing to each area
of the site. For this reason folders are handled differently than other
content allowing content from many CMS folders to map into a single folder
on the site.
> I have a reason for asking. We at NHS CFH run a fairly large but
> ultimately quite bog-standard Plone site. And we're starting to hit
> two limitations of Plone's out-of-the-box publishing model. Firstly
> content is all "up front" on your site, and live the minute the owner
> hits "save". Risky. So we made a minor customisation to default all
> new content to "Private"; at least then if it's WIP it can't be found
> by users. But this has an unfortunate side-effect when users forget to
> publish their content - they'll create a hyperlink to it which will
> work just fine when they're logged in. But as soon as an anonymous
> user hits the link, they're prompted for a login.
We don't actually stop content being published when it links to unpublished
content (because that way you could never publish content which has
reference loops), but there are various things in multisite which help
prevent this being too much of a problem.
If you just have a link in body text, then on the site you get a broken
link. Since the target content doesn't exist at all on the site, you don't
get a login, just a 404 error. All of the body text links are handled using
Kupu's transform (so they are stored as uids but the end user never sees
the uid). A very minor change to the transform could do something useful
with broken links (such as unlinking them), but that isn't really
satisfactory if the link text is something like 'here' or 'link', so I
never bothered to actually do it.
If the links are generated using an archetypes reference field then the
reference simply won't exist on the public copy. References are
automatically reinstated if you later publish the targetted content. This
means you can easily refer to content which you intend to publish later and
the 'related link' field will become populated only when the link is valid.
Our site structure mostly uses composite pages (CompositePack). When
composite content is missing, the slot is replaced with an error message
and on the public sites the CSS makes the error message invisible. Again
this means you can either delay making content visible in a page, or remove
part of a page without affecting the remainder.
>
> I think we need to get away from the current system and put in some
> kind of staging or editing --> production propagation mechanism. Is
> this the kind of problem MultiSite is intended to solve? Or should I
> be looking at one of the other staging frameworks?
I'll be very happy to talk to you further about this. Give me a call (01865
473454).
More information about the NGO
mailing list