Personal tools
You are here: Home Documentation Tutorials b-org: Creating content types the Plone 2.5 way
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

b-org: Creating content types the Plone 2.5 way

This Tutorial applies to: Plone 2.5.x
This Tutorial is intended for: Developers

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.

optilude

All content on one page (useful for printing, presentation mode etc.)

  1. Introduction What is b-org, and what will you learn here?
  2. A whirlwind tour of Zope 3 Zope 3 is still fairly new. After reading this tutorial, it should hopefully start to feel a bit more familiar. In this section, we will give a brief overview of what is different in Zope 3 and how it fits into Plone.
  3. Overview of b-org The big picture
  4. To Archetype or not to Archetype Archetypes is still the most complete framework for building content types quickly. With the advent of Zope 3, there is an alternative in Zope 3 schemas. Here's why b-org doesn't use them.
  5. The extension story One of the main drivers behind the componentisation of b-org is that it should be easy to extend and customise for third party developers. We'll take a look at how such customisations may look, before considering how we made it possible.
  6. Filesystem organisation b-org attempts to adhere to modern ideal about how code should be laid out on the filesystem.
  7. Interfaces In Zope 3, everything is connected to an interface in some way. Sure enough, b-org has a slew of them. Getting the interface design right is often more than half the battle, so pay attention to this part.
  8. Test-driven development Testing should come first, not last, when doing development.
  9. Setup using GenericSetup b-org uses GenericSetup to impose itself on your Plone instance. Here's how it works.
  10. Using membrane to provide membership behaviour How b-org uses membrane to let employees be users and departments be groups
  11. Writing a custom PAS plug-in Projects require that members are given particular local roles within a project space. This is achieved using a custom PAS plug-in.
  12. Placeful workflow b-org uses CMFPlacefulWorkflow, which ships with Plone 2.5, to manage the workflow of content objects inside a project.
  13. Sending and handling events Events is undoubtedly one of the most useful things that Zope 3 brings to the Zope 2 world. Here's how b-org uses them.
  14. Annotations Annotations are an elegant solution to the "where do I store this?" problem, and are used in many Zope 3 applications.
  15. Zope 3 Views One of the nicest things that Zope 3 brough us is a way to manage view logic.
 
by optilude — last modified October 30, 2006 - 00:59 All content is copyright Plone Foundation and the individual contributors.

Woah

Posted by miohtama at November 22, 2006 - 22:20
Martin you rock!

This must have been the most comprehensive tutorial about Zope 3/upcoming features. I was rolling my eyes all the time I read through it. Very nice that you have been able to pull together so much useful information.

Wonderful Tutorial

Posted by athomerson at November 29, 2006 - 22:47
Thanks for the great tutorial. I have been using membrane for a while now and this tutorial along with the b-org product has really cleared up a number of issues I have been struggling with.
The section on schema extension still confuses me. If you wanted to have a CharityEmployee and a CharityContributor (both able to log in) would you subclass EmployeeContent and then extend each of the schemas? Would you need to subclass Employee as well or just create two classes that implement IEmployee and adapt either ICharityEmployee or ICharityContributor or am I completely out to lunch?

Annotations

Posted by cabbie at April 11, 2007 - 23:38
We are attempting to utilise your instructions for annotations. However we are having problems when we attempt to cast an object to an IAnnotations the object we are attmpting to cast inherits from ATBTreeFolder and all we ever get is TypeError: ('Could not adapt', <Forum at /plone/bbb>, <InterfaceClass zope.app.annotation.interfaces.IAnnotations>) do you have any idea waht could be going on? We have attempted to use Closeau and mark ATDocument with IAttributeAnnotatable as well and the same thing happens.

Fixed

Posted by cabbie at April 12, 2007 - 00:15
Ok for anyone else following this tutorial the solution as found here http://www.nabble.com/Problem-with-adapting-content-object-providing-IAttributeAnnotatable-to-IAnnotations-t3160442.html
is to add <include package="zope.app.annotation" /> to the configure.zcml

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