Plone

From Organic Design

Plone is a free and open source content management system built on top of the Zope application server. In principle, Plone can be used for any kind of website, including blogs, internet sites, webshops and intranets. It is also well positioned to be used as a document publishing system and groupware collaboration tool. The strengths of Plone are its flexible and adaptable workflow, very good security, extensibility, high usability and flexibility.

Plone is released under the GNU General Public License (GPL) and is designed to be extensible. Major development is conducted periodically during special meetings called Plone Sprints. Additional functionality is added to Plone with Products, which may be distributed through the Plone website or otherwise. The Plone Foundation owns and protects all copyrights and trademarks. Plone also has legal backing from the council of the Software Freedom Law Center.

MediaWiki's "Monobook" layout is based partially on the Plone style sheets.

Installation

Plone is a lot bigger (36M) than most of the PHP based CMS's probably because it contains Zope and it's own version of Python. Plone is not for noobs to setup, it's a fully featured site administration system for managing multiple instances. After installation I was told that everything had been installed successfully, nothing was running and no indication was given as to what needed to be done next. Their installation documentation didn't give me any clues and in the end I went to their IRC channel where some helpful people quickly gave me instructions on what to do next.

I ran through the installation setting it up as standalone with all default options. By default the installer configures Plone to run on port 8080 if port 80 is already in use. The Plone daemon must then be activated, which is done as follows if default paths were used for the installation:

/usr/local/Plone/zinstance/bin/plonectl start

Plone in the cloud

Plone uses ZODB for its storage which can be plugged in to any storage model. This makes it an attractive candidate for moving in to the cloud or even in to P2P space by using a DHT for persistent object storage.

Zope 3

Zope 3 is a ground-up rewrite, and although it borrows a lot of experience from Zope 2, it is an entirely separate product. This does not mean Zope 2 is irrelevant or outdated.

Right now, there's a lot of innovation going on in Zope 2 all the time. It's just that lots of that innovation is now shared with Zope 3 - Zope 2 and Zope 3 technologies are converging. This convergence will take many years to be "complete". Zope 3 is a testing ground for a lot of new technologies that may or may not end up being used, and the later versions of Zope 2 have bridging interfaces (called "Five" — two plus three, get it?) that allow you to use both technologies at the same time.

So, besides using Zope 3 directly, you could write your application in a modern version of Zope 2, such as Zope 2.10, and use the Zope 3 technology in it (a large part of Zope 3 is included, and a bridge module called Five is there to make integration possible). It allows you to evolve your application more gradually. It also allows your application more easy portability to Zope 3 if you should need to later, as you're already using the technology.

Plone 2.5 allows us to achieve better separation of concerns between content storage, business logic and view logic, due to the added spices of Zope 3.

Plone 2.5 ships with both Zope 2 and Zope 3, and has started to make use of Zope 3 technology. Plone 3.0 and 3.5 continue this trend, adopting more and more Zope 3-style development and components, but continuing to be firmly rooted in the latest releases of Zope 2. (For example, Plone 3 targets Zope 2.10 at the time of writing.)

For more detailed information, see the to archetype or not to archetype and Zope 3 and Plone articles by the Plone documentation team.

See also