Personal tools
You are here: Home Documentation Tutorials b-org: Creating content types the Plone 2.5 way Overview of b-org
Support

Get Help

Join our chat rooms or support forums if you have more specific questions.

Plone Training
Learn how to design, build, and deploy a website in Plone through one of the numerous Plone training sessions around the world.
Find Plone training…
 
Document Actions

Overview of b-org

The big picture

Martin Aspeli

Plone 2.5 brings us closer to the promised land of Zope 3. Zope 3 brings us a new way of working. This tutorial will show how to marry the old and the new, to make Plone products that are more extensible, better tested and easier to maintain.
Page 3 of 15.

To the user, b-org presents itself as three content types:

Department
A container for employees, and a source of groups. That is, each department becomes a group, and the employees within that department become group members.
Employee
Information about employees, and a source of users. That is, each active employee object becomes a user who can log in and interact with the portal.
Project
A project workspace - a folder where employees can collaborate on content. Content inside the project folder has a custom workflow, and employees who are related to the project (by reference) have elevated permissions over this content.
Out of the box, these are not terribly interesting, because they have only the minimum of metadata required to function. The task of providing actual schema fields, view templates, content type names (if Department, Employee and Project are not appropriate) and other application-specific facets is left up to simpler third-party products that plug into b-org. One example of such a product is included, which models a hypothetical charity use case and is called charity.

This seemingly innocuous orchestration of functionality is achieved by a variety of means:
Archetypes
Used to build the actual content types and their schemata.
The Zope 3 Component Architecture
Is used to make all this exensibility possible - you will see lots of examples of interfaces, adapters and utilities.
Membrane
The content types are registered with membrane to be able to act as groups and users
PAS and PlonePAS
The Pluggable Authentication Service is used by membrane to actually provide user sources. A custom PAS plug-in is also used to manage local roles for members and managers within projects and departments.
GenericSetup
The next-generation set-up and installation framework is used to install and configure b-org. charity demonstrates how GenericSetup XML profiles can be used directly, without depending on the actual GenericSetup import mechanism.
Zope 3 events
Zope 3's event dispatch mechanism is used to ensure employee users actually own their own Employee objects, among other things.
Zope 3 views
The charity demo uses views for its display templates.
Annotations
Employees' passwords are hashed and stored in an annotation
Placeful workflow
To let content inside projects have a different workflow to that of the rest of the site, each project uses a CMFPlacefulWorkflow policy.

On the following pages, you will learn about each of these components and how it fits together. Meanwhile, you can follow along the code by looking in the subversion repository, or getting b-org from its product page.

 
by Martin Aspeli last modified December 1, 2006 - 15:48 All content is copyright Plone Foundation and the individual contributors.

For any issues with the web site functionality, please file a ticket.

Please consult the policy on plone.org content if you want your content published on this site.

Servers and hosting by