1. Evaluation of Plone
This is an evaluation of Plone against GnomeWeb/CmsRequirements . Please add your feedback here.
1.1. Test
Only testers going through the whole GnomeWeb/CmsRequirements/CmsTest can add their points. You can add your comments on the evaluations made.
Ranks: 0 Not supported - 1 Partially possible - 2 Possible but complex - 3 Possible and easy
Task |
Greg |
Jeff |
Joachim |
Quim |
Ramon |
? |
? |
Comments |
Publish static pages |
|
|
3, after I found the link |
|
3 |
|
|
Ramon: You can decide which day this page should be published and which day removed |
Publish news |
|
|
1 - news was posted in the wrong place |
|
3 |
|
|
We have SmartFolder to collect all News in the site, so News could be stored in anywhere (i.e user's folder), and We also have chance to custom this: store(move) News into a static dicrectory (i.e /newsitem/) when it be publised. keep in mind that zope/plone has a filesytem-like storage structure, we should define some rule for adding new content (i.e Please add News item in the /newsitem folder). YangHong |
Define friendly URL of a page, including subdirectories |
|
|
0 |
|
3 |
|
|
Ramon: You can decide to create alias, use uid numbers or decide all uri names You needed to enable "Allow editing of Short Names"(default is disabled) in preferences->Personal preferences, or URL will generated automaticly accord to the content Title. YangHong |
Publish images in a page |
|
|
3 |
|
3 |
|
|
Ramon: You can use Image object to publish an Image and put in on all the pages using FCKEditor or kupu ( REST and HTML ). You can also use PloneArticle that is a product to create templates using images and attached files to generate the page. |
Publish attached files in a page |
|
|
|
|
3 |
|
|
Ramon : see above |
Publish podcasts / screencasts |
|
|
|
|
3 |
|
|
Ramon: You need to enable flash on plone to publish screencasts on flash and you can use ATAudio, Podcasting, FlashVideo products to enable multimedia |
Integrate aggregated feeds in a page |
|
|
|
|
1 |
|
|
Ramon: with ploneSin |
Pre-publish a page making it available only to users with editing permissions |
|
|
|
|
3 |
|
|
Ramon: Using workflows you can create all this kind of situations. On basic plone instalation you have private state, visible but not public and public. You can decide that visible but not public, that is using for editing, is non-visible. |
Customization of forms for different content types (i.e. case studies) |
|
|
|
|
3 |
|
|
Ramon: You can create custom all templates. By default you have the basic form that can be modified. You can also create forms using PloneFormMailer to create a form that is mailed |
Set feeds for new content |
|
|
|
|
3 |
|
|
Ramon: All objects on plone have the option of disscussion allow for members. It's also possible to enable anonymous. |
Track and diff of all changes made |
|
|
|
|
3 |
|
|
Ramon: When an object is published you can see the history and the changes |
Notify that a page has been updated |
|
|
|
|
|
|
|
|
Revert changes |
|
|
|
|
3 |
|
|
Ramon: there is the history of the object/content |
Display when a page was last updated |
|
|
|
|
3 |
|
|
Ramon : By default |
Create localizations in the GNOME supported languages |
|
|
|
|
3 |
|
|
Ramon : Using linguaplone you can decide to which languages you want your content. There is an utility to see two languages at the same time to translating. |
Get language settings from browser |
|
|
|
|
3 |
|
|
Ramon : By default |
Edit interface strings in all languages |
|
|
|
|
3 |
|
|
Ramon : PloneTranslations |
Content as PO files or at least XML import/export |
|
|
|
|
|
|
|
|
Set links between different versions of the same page |
|
|
|
|
|
|
|
|
Control version system to detect outdated pages |
|
|
|
|
2 |
|
|
Ramon: You can create an inteligent folder with all outdated pages |
Visualization of status of translations |
|
|
|
|
|
|
|
|
Create and edit menus and submenus |
|
|
|
|
|
|
|
|
Assign pages to menu entires |
|
|
|
|
|
|
|
|
Stablish relations between pages |
|
|
|
|
3 |
|
|
Ramon: you can say that one page is related to another |
Create an automatic sitemap |
|
|
|
|
3 |
|
|
Ramon: by default |
Assign keywords to pages |
|
|
|
|
3 |
|
|
Ramon: by default |
Customize homepage to make it look like the mockups |
|
|
|
|
|
|
|
|
Customize theme to make it look like the mockups |
|
|
|
|
|
|
|
|
Set different templates for different sections |
|
|
|
|
|
|
|
|
Search performance (probably to be tested in a big website) |
|
|
|
|
3 |
|
|
Ramon: search engine is really powerfull and fast. It's also with some ajax to get livesearch |
Search results per type of content |
|
|
|
|
3 |
|
|
Ramon: you can create inteligent folders or do an advanced search based on types, contents, how old, text, author, workflow state or keywords |
Index content in the server not produced by the CMS |
|
|
|
|
|
|
|
|
Create new accounts and assign permissions |
|
|
|
|
3 |
|
|
Ramon: you can use LDAP or not and you decide creatings groups and assigning roles to diferent groups |
Set permissions policies |
|
|
|
|
|
|
|
|
Set permissions at a page/section level |
|
|
|
|
|
|
|
|
Check documentation for help |
|
|
|
|
|
|
|
|
Activate caching system |
|
|
|
|
3 |
|
|
Ramon: with cache-fu it's really easy to tunning cache system, based on autentication, http-headers. Actually works with squid. |
Check statistics |
|
|
|
|
|
|
|
|
Backup database |
|
|
|
|
|
|
|
|
Upgrade new version |
|
|
|
|
2 |
|
|
Ramon: each version of plone and products have a system to migrate content |
Additional comments:
- Explain here anything relevant not covered by the table above.
1.2. CMS Platform
- Version: Plone2.5
- Platform: Python2.4.3
- Backends:
- ZODB
- SQL Database (users, groups and content)
- LDAP (users and groups)
- Architecture:
- Zope-2.9.4 application server that has some protocol implementation
- HTTP (HTTPS with apache)
- FTP
- WEBDAV
- ICP
- XML-RPC
- Good integration with Apache and Squid
- Native caching system - CacheFU
- Zope-2.9.4 application server that has some protocol implementation
1.3. Security
robust against attack attempts some features protected by authentication option to communicate over a secure channel (SSL) upstream is active releasing security updates
Plone, and the Zope application server on which it is based, has an outstanding security record. Plone/Zope is sandboxed from the filesystem, so even if the CMS security were somehow compromised, your server/network would not be at risk. The Plone Community does not know of a documented successful attack against a Plone/Zope server.
Zope has 15 entries in the CVE dictionary, and 3 entries since January 1, 2005. Plone has 1 CVE entry ever. PHP has 1258 total entries, and Drupal has 22, all found in 2005 & 2006. Python has 17 entries so far (3 since 2005). See for yourself at http://cve.mitre.org/cve.
Plone and Zope have a strong track record of responding very quickly to security issues that are discovered, and these are announced and released at http://plone.org/products/plone and/or http://www.zope.org/Products/Zope/hotfixes.
More general background on Plone site security can be found at: http://www.jazkarta.com/technology/plone/tutorials/security
Sections of a Plone site can be run through an SSL connection.
This is documented at: http://plone.org/documentation/how-to/apache-ssl
Plone has a robust, highly granular role-based security framework that can support both simple and complex rules for limiting access to site features.
There is an outstanding tutorial on this by Martin Aspeli, one of Plone's core developers, at: http://plone.org/documentation/tutorial/understanding-permissions
1.4. URLs
Simple URLs
Eg:-
Plone automatically generates friendly URLs -- no mod_rewrite needed.
1.5. I18N
ways to translate standard CMS strings
The whole UI is translated via po files. For the content it is managed inside the DB, but there is support for XLIFF export. The list of currently available translations is here: http://plone.org/development/teams/i18n/existing-translations
ways to translate content
There is also a module called LinguaPlone. MarcAndreLureau LinguaPlone is a tool to manage and maintain multilingual content that integrates seamlessly with Plone.
- How far is Plone from using/importing/exporting PO files for publishing content in several languages?
LinguaPlone imports and exports using theXLIFFstandard. Not sure about its support for PO files, but I believe that PO can be transformed into XLIFF and vice-versa. JonStahl .
* preferably show translators what changed and what needs updating
* This is a must for me. Translation is impossible without it, and out-of-date translations are worse than no translations. For others, translation via .po files might be a must. MurrayCumming
LinguaPlone uses the notion of Canonical versions, so you can do things with workflow, like invalidate all translations of a document when the master copy has changed.
- How far is Plone from having a revision control system showing to translators what changed in the original English pages and what needs updating in the translations?
Plone has a very solid revision control system, CMFEditions, that works well with LinguaPlone. I'm not certain what kind of summary views across the site it can offer, but I would imagine these wouldn't be too hard to code. . preferably get language settings from browser (Accept-Language) and session (cookies) Done by default Plone
have URLs to translated pages, so they can be directly referenced
Oxfam uses Plone and provides referencable links to show articles in a certain language.
1.6. Authoring
a comfortable framework for editing content * can be wiki style, but does not have to
Plone ships with Kupu, a strong graphical HTML editor. It also supports several other graphical editors including FCKEditor. Users can also choose to use ReStructuredText (REST), Plain Text or raw HTML if they choose.
"draft" content, which is already managed in the system, but not yet published * translators can do their job before content appears to the public
Plone has a robust, easy-to-customize workflow engine that can allow content go through almost any drafting and approval process that Gnome.org requires. The workflow system is extensively documented. One good starting point is at:
http://plone.org/documentation/tutorial/creating-workflows-in-plone.
* pre-edit text to be published at a specific date and time ** perhaps automatically publish on a specific date and time
You can specify dates to publish and retract the content for every object
track who has rights to edit a page
Plone uses a role based permission system. You create users and groupes. Roles can be asigned to both globaly (Plone configuration) or for single objects/trees ("sharing"-tab for the object). Plone can get user from other sources (DB, LDAP)
track who did edit a page * I think we should default to anyone being able to edit a page. Logging in is already an obstacle. MurrayCumming. track exactly what was changed. For instance, like a diff.
This can be achieved using CMFEditions.
can display when a page was last updated
yes
perhaps change management, so older version of a page can be recalled
- This can be achieved using CMFEditions
Plone supports content versioning via the CMFEditions add-on product -- http://plone.org/products/cmfeditions. Content can be rolled back to previous states, and diffed.
copyright and licensing information can be displayed on the pages
There product PloneCreativeCommons does this for cc licenses.
1.7. Markup
the served html should be accessible * with a wide range of browsers (desktop and mobile)
Plone comes with a stylesheet for mobile devices.
* for people with disabilities
Plone is highly accessible and complies with US Gov't Section 508 and W3C accessibility standards. Plone's markup is valid XHTML and CSS. More information on Plone's accessiblity features is at: http://plone.org/accessibility-info
the markup should primarily capture content structure not representation * (i.e. "heading" versus "big bold font")
STX, REST and other wiki-like languages produce only structure. Kupu, the wysiwyg-html-editor, focus on keeping a consistent look of the website. It provides only structural elements ootb. You can add tag/css-class combinations to kupus format-menu (like "p discreete" -> <p class="discreete">). It can filter any tag/attribute combination you want. There's a "transformation" that can filter potentialy bad tags (js, object,...). You can write custom transformations easily and put them into a transformation-chain.
1.8. Navigation
support hierarchical URLs (subdirs) support hierarchical navigation (submenus)
Plone has hierarchical URLs and navigation elements, and a built-in breadcrumb navigation element.
preferably have a site map
Plone has a built-in site map.
1.9. Feeds
Plone has "simple" feed aggregation available via the CMFSin add-on Product (http://plone.org/products/cmfsin). The PloneRSS add-on product (http://plone.org/products/plonerss) provides even more power, transforming aggregated content in to first-class Plone content objects that can be workflowed, edited, etc.
1.10. Theming
Plone is highly themeable, and strongly separates logic from presentation. There are several useful products and tutorials that help make theme creation easy.
One good starting point, from Plone co-founder Alexander Limi, is at: http://plone.org/documentation/tutorial/creating-plone-themes
Note: Alexander was recently hired by Google's user experience team!
1.11. Expertise
There should be enough expertise in our community to: * select (know the CMS enough to assert it meets our reqs) * install (the whole stack, includng RDBMS) * manage (keep updated and secure, without breaking it) * fix (add missing features or critical updates not yet released by upstream)
I believe there are a number of Plone users in GNOME community who can 'select', 'install', 'manage' and 'fix' things. Should we start a volunteer count here? BaijuMuthukadan, RudaPorto, YangHong
1.12. Search
- Integrated full text search with ranking support
- All content are indexed
- Fine control of what fields should be indexed
- Smart folders to easy creation of complex content search
- Support keywords as standart metadata
- Clean XHTML templates to best Google index
- Easy control of what show in the Site Map
An add-on to the google sitemap system: http://plone.org/products/qplonegooglesitemaps
1.13. Backup
- reposo.py script comes with Zope to easy backup/restore ZODB, on-line, full or incremental
- can do clustering and distribute the zope aplication server load with ZEO (one DB backend (ZEO) with some Zope front ends)
1.14. Issues - Comments
See the users of Plone here: http://plone.org/about/sites . http://www.fsf.org is also plone! just visit FSF site and see how they manage their sites, feeds, news, blogs etc. also visit http://gplv3.fsf.org/ ( GPL 3 sub-site)
There's also a very nice Nautilus plugin.
Plone is well documented, a good number of printed books are also available.
Plone powered Gnome Chinese portal by YangHong