Plone is an application built on top of a collection of supporting frameworks. I'm intentionally leaving out details, with the aim of presenting just enough to help a newbie to find their footing with Plone.
I encourage persons to approach Plone in the following way:
- Understand the big picture but focus on the parts that address your immediate need.
- Inform yourself about the other parts so you know where to look once you need to do more (most information is available at http://developer.plone.org).
Understand the big picture
If Plone is a collection of frameworks it makes sense to get a map of the various frameworks and what they do. The map below presents the most important parts (note: Dexterity and Grok are not core but I have them here because they are widely used, there are parts that I've left out as well).
|An incomplete map of some of the major technologies that power Plone|
Dexterity - Content types framework
GenericSetup - Configuration Framework
Zope Component Architecture (ZCA) - A Framework that allows definition of features as loosely coupled parts (called components). Managed using a configuration language called ZCML.
Grok - provides a convention over configuration framework for the ZCA but is not a core package.
DCWorkflow - A Framework for managing permission based states, transitions and permissions
Content Management Framework (CMF) - Provides the underlying infrastructure for building content management systems
Pluggable Authentication Service - Framework for user authentication, makes it possible to add other authentication sources (e.g. Oauth, LDAP) etc..
Z3CForm - A form and widget framework
Buildout is a build system which controls the assembly of a Plone system. Instructions are stored in a buildout.cfg file which buildout uses to assemble the specific required versions of all supporting packages as well other system settings.
For all newbies - Before you go any furtherIt is generally recommended that you learn Buildout properly then become familiar with the mechanics of day to day Plone administration. Spend your first couple days getting a good grasp of Buildout, changing settings and installing add-ons. Then make sure you understand how Plone works from the user and site administrator's perspective. Try to complete the following tasks in building a basic Plone site:
- Add News Items with images
- Create some events for the site
- Create a few custom collections
- Portlets (manage portlets so that different ones show in different sections of the site)
- Permissions and Workflows
|The screenshot highlights two portlets on a Plone site. A portlet is "box" that can be displayed, most often, in a sidebar.|
Customize the LookIf you're interested in changing the look of a Plone site then you'll want to learn Diazo.
Getting started with DevelopmentReady to create your own add-on? Then Dexterity, Grok and GenericSetup will be very useful.
Some time later, once you're ready for a deeper dive you can begin to understand the Zope Component Architecture (ZCA) and the Pluggable Authentication System (PAS) which allows you to customize how site authentication is done.