CMSSurveyReportPlone

Report of Plone

Person(s) reviewing it: Ryan (this is a draft by Clopy)

Official Information: Main Website - Products - Documentation

Software version(s): Plone 2.5.1. Major versions come out roughly avery 6 months. Plone 3 is scheduled for March 2007

Status of the report: DRAFT

Status of test implementation: former members of imc-athens and other ppl are building a new site based on plone. A beta will be out in the next days

What We Want

Based on the original list: CMSWhatWeWant.

NameDescription
User LoginsUser logins are available out of the box. How much of the site is accessible anonymously is entirely based on the administrators of each site. We are certainly able to configure the system to allow anonymous access to stories, including posting new media/stories and leaving comments.
User Logins (network wide)This Plone product, "is a user folder replacement for Zope that authenticates Zope users against LDAP." So network wide logins would be available to other IMC sites using Plone or any other cms that supports ldap user logins
Access ControlsPlone has a very powerful role and permissions system. Combined with workflows, we have freedom to do whatever we like.
Notify Moderator ButtonDon’t know if it’s already there, but this is easy to implement
User Moderation - Open EditingAs said, we can do anything we want with plone workflows/roles. We can enforce group permissions, and different workflows for any item (article, media, etc)
User ProfilesAlready in the core but needs some configuration to be indy specific
Podcasting/VodcastingThere are stuff in development, but I haven’t tried them, so I can’t say if they are as good as they should http://plone.org/products/plodcasting/releases/0.0.13 Vodcasting is definetly up to scratch http://plone.org/products/plone-rss2 - and_
Redundancy (DB content storage) 
Version Controlversioning - yes. Plone has many, and very powerful versioning tools
User NotificationsYes
Customizable skins by usersAnonymous and registered users can be given permission to choose between skins if multiple skins are registered within Plone.
AccessibilityPlone has one of the best accessibility support out there. It is Section 508 compliant.
GISLots of geospatial products http://plone.org/products/by-category/geospatial Including a GIS: http://plone.org/products/primagis
Photo Galleriesyes
Licensing OptionsYes http://plone.org/products/contentlicensing
Image ManipulationYes
P2P IntegrationTorrent files can be automatically generated for video uploads and I'd therefore assume anything else - see http://engagemedia.org and http://plone.org/products/atvideo. Some work has been done towards integration with gnutella also http://plone.org/events/sprints/past-sprints/snow-sprint3/p2p
Social Networking - Filtering systemsA lot of stuff (like weblogs, groups etc.) are already there
WYSIWYG EditorKupu by default, FCK Editor and others available.
Taggingvery powerful tagging system. Anything can be tagged. Related stuff can be displayed, tag cloud is available and much more
Anti-bot Systemscaptchas http://plone.org/products/plonecaptcha and other stuff are there.
Easy installationRequires a (one time) installation of Zope, Plone and apache on the server. After that, installation of a new website is a matter of a few clicks away.
Cross Site SearchNothing ready I’m afraid, but there is this http://plone.org/products/plonesearchbox Perhaps it can be easily configured to search all indymedia websites through google instead of the entire www
Hiding commentsWe have already implemented a workflow mechanism about hiding stuff. Plone workflows gives us much more potential
In-site content administrationIt's there.
APIsyes
VoIPWell, there is this http://plone.org/products/plone-skype but I don't know if we want to use Skype
Multi-node???
Multi-language supportYes, again one of the strong points of plone (we're discussing of implementing an ability for a user to select more than one languages at the same time and be able to view all the content in these languages)

What We Have

Based on the original list: CMSWhatWeHave.

NameDescription
Anonymous open publishingYes
Easy mirroring capabilityI think this is fairly easy. Also there is Cache-Fu (a caching mechanism) that is very powerful, thus reducing the need for mirroring (the European Social Forum website could hold the days of the event without major problems – the peak was at 71.000 page hits, a lot of them on the online schedule, a pretty heavy page. The machine was an Athlon64 3000+ with 2GB RAM)]].
Syndication -out/inYes
SearchYes, very good search engine. Includes live search. Just head to http://plone.org and give it a shot on the top right.
The ability to create multiple instancesThat's the default way of doing things in Plone
Multimedia handlingYes. There are also features like large file handling, automatic transcoding, and flash video player under development (plus the automatic torrent generation I linked earlier)
CategoriesYes
Good performance on affordable hardwareYes and no. Plone requires a relatively modern server (read the specs above for the ESF website) to run effectiveley, but has the advantage of scaling pretty well.
CustomizabilityYes
InternationalizationYes. As said, one of the strong points of plone. It includes support for bi-directional text
TranslationUses .po files. The core is already fully translated in more than 35 languages.
CommentsYes, included in core. Also there are products that expand the use of comments in many ways (like linking a forum thread with the comments of an article automatically, and other
Anti-abuse measuresYes
Easy moderationYes
CalendarYes. A very nice one is included in the core
FeaturesYes. We can display anything we want in the front page (or in any page) through the use of "smart folders". You will however need to create a custom template to show the features in the middle and newswire on the right hand side.
DocumentationExtensive
User moderation - open editingYes

Other Plone features that interest us

  • Static deployment: http://plone.org/products/cmfdeployment
  • customizability: You can customize anything you want without worrying about backups of the files you're changing. There's even an undo feature on zope, that can revert the previous steps, so there's no worry of whether you mess up something while customizing
  • updating articles. Beyond the "more information" and comments that can be added to an article, we can use CMFEditions for versioning of the articles including diff functionality.
  • Open- editing. We don't have necessarily to use ZWiki to implement wiki functionality. We can implement this funcionality anywher, using CMFEditions
  • Workflow system: This is one of the best features of plone. Any object (article, comment, media, etc) has a state inside a workflow that we define. For example we are testing a new way to moderate articles. When a new article is posted the article has a state of "published". When a moderator goes to moderate it, he/she has three options. Either turning it into "accepted", or "ambiguous" or "hidden". "accepted" and "ambiguous" don't make any difference to the site users, but only to the moderators. All the ambiguous articles are displayed in a separate box for the moderators, in order to help moderation. The trick is, that any moderator can only move an article one step in the workflow. So, if the article is "accepted" by the 1st moderator that sees it, the 2nd moderator can't hide it, he/she can only move it to "ambiguous" state. It requires another moderator to move it from "ambiguous" to "hidden". Anyway, this is all still in testing, and we aren't sure if we'll use it, but it's an example of how we can use workflows.
  • Security: Plone is one of the most secure cms out there. Unlike most php based cms, it rarely has security issues, while the permissions/ roles sytem is very well designed.

Drawbacks

  • Hardware: Zope/ Plone requires modern hardware and could not be used e.g. with a P2 computer. It scales well though after that.
  • Developers: Most devs know php / mysql but don't know plone / zope/ python. So if we choose plone, fewer people will be able to contribute straight from the begging. The good news though is that Zope / Plone has very high development productivity, meaning that even 4 or 5 people can maintain a superb software.

I hope it's ok to comment these technical reports... If not, I'd suggest to disable anonymous editing ;)

I've got some years of experience with Zope and Plone, including the development of custom modules. If you want to use Plone as the CMS solution for a large project, I'd suggest to plan the SQL DBMS integration right now (i.e. how to make Plone read/write its contents on MySQL/PostgreSQL, using a normalized and human-readable SQL schema). Just consider it as a requirement and see how long it will take to satisfy it. Please don't use ZODB for storing all the data, because it may seem quick and easy, but sooner or later you will need to do some low-level manipulation of your records (imports/exports/statistics/mass updates/whatever) and it will be a royal pain in the ass: ZODB lacks all the tools of a decent DBMS. Moreover, there's no clear separation between code and data on ZODB (objects are usually dumped as Python pickles), so when you'll need to upgrade something (e.g. the whole Plone or one of its modules), and the objects/contents you've saved have been refactored in the new version, then you'll need to run through a clunky "migration" procedure that may fail and/or blow up your DB, expecially if your site is large, complicated or heavily customized. A simple security upgrade may become a nightmare.

When your data is in a safe place (i.e. on a real SQL DBMS, well separated from code changes) then Zope/Plone are very nice tools. If you stay on ZODB, you may be able to build a very nice portal with a few clicks, but you will regret your choice as quickly as your site grows.

Oh, I'd also suggesto to save downloadable files on the "bare" filesystem instead of ZODB, for the same reasons above, and also because of performance issues.