Under-the-hood improvements
by
Jon Stahl
—
last modified
Sep 01, 2010 05:06 AM
Plone 4 makes life easier for developers and integrators. We've upgraded our core infrastructure, cleaned up a lot of code and smoothed out lots of rough edges.
Plone is based on Python and Zope. Both have released major new versions since Plone 3 came out, and with Plone 4, we get to enjoy their many benefits.
This list won't make much sense to you unless you're a dyed-in-the-wool Plone developer, so feel free to skip to the next section!
- Starting Plone 4 is roughly 3 times faster than in Plone 3.
- Plone 4 ships with the new, faster jQuery 1.4 release.
- Creating custom emails is easier than ever with the new built-in Mailing Action Variable Substitutions:
- Workflow variables
- Dublin Core variables
- Easier for add-on products to add new substitutions as part of their feature set
- In-page display of the login page, advanced workflow actions, etc. — and a standardized way to do all these things in a consistent manner from your own applications using jQuery Tools.
- It's now easy to create a site without default content.
- The RSS template now sorts by publication date (not modified date) and includes the body text of the content.
- Simplified terminology to match other systems — “Description” is now “Summary,” and “Categories” are now “Tags.” (Don't worry, we haven't renamed "Collections" again. ;-)
- ResourceRegistries now has an “authenticated” flag which can be used instead of an expression for resources that should only be available to any authenticated user. This is faster than evaluating an expression.
- Debug (fg) mode now automatically enables debug mode for the Resource Registries, making it easier to develop JS and CSS. It can of course be put into production mode while the rest of the site is in debug mode, to make page loading faster too.
- The default editor setting has been revamped, and it's now easier to set (or change) a site-wide default editor.
- There's a control panel for configuring predefined image scales.
- KSS is faster and lighter.
- GenericSetup import has been added for Sharing Page Roles.
- Add view support from CMF has been added, this makes it easier to create custom add forms for content types, and simplifies Dexterity integration.
- Action Icons have been deprecated. One less tool to worry about, now you define action icons directly on actions instead using “icon_expr.” The old format will continue working until Plone 5.
- plone.app.upgrade is now the standard way to upgrade a Plone site, as well as add-on products. We “eat our own dog food,” and use GenericSetup upgrade profiles to handle Plone upgrades too.
- Additional Dublin Core properties support makes it easy to expose Dublin Core metadata in rendered HTML.
- Improved display of hidden and blocked portlets.
- Plone now uses Full Names everywhere, i.e. displays the user’s full name instead of username everywhere, including search results & RSS Feeds.
- archetypes.referencebrowserwidget replaces Products.ATRefBrowser, some advantages are:
- Massive performance improvements,
- Easily overridable template,
- Proper test coverage.
- Images will now set IDs based on the Title field. This makes images act more like other types, and gives images more memorable IDs. Instead of “DSC_084308.jpg,” you get a proper, normalized ID. This only applies if you give it an explicit title, so you can still keep filename-as-title by behavior by not supplying a title when adding.
- Plone now uses the Distribute packaging system instead of the languishing Setuptools as its default package handling system.

