Did not find a how-to for your problem?

Ask me to write the how-to post by writing to the mailing-list at cps-devel [@] lists [.] nuxeo [.] com or writing to me to joseluisdelarosa+cpshowto [@] gmail [.] com. Note: I'll keep all conversations on the official mailing list.

Monday, June 4, 2007

Some basic concepts for developers

Well, this is the second post, take it up!

This post will put forward the main concepts of the architecture CPS/CMF/Zope which will be of great help when understanding the structure of the code.
These are some of the concepts that you should always keep in mind when developing on CPS:

  • Product: A product is each of the components to extend Zope. It is a Python package stored in the Products folder of the Zope instance. Commonly, the __init__.py module registers the tools, classes and resources of the product that will be directly accesible to Zope.

    Examples of products that can be found in a CPS bundle are: CPSCore, CPSDefault, CPSDocument, etc.

  • Tools are objects of Zope that provide with a large number of functionality. There are tools for cataloguing documents, for RSS syndication, for themes, etc. Actually, tools are instances of classes that are commonly named *Tool.py in the root of the product's folder. See the upcoming post “How to create a new tool”.

  • Profiles are snapshots of the state of a site at a given moment. They store the configuration of the site and they can be exported and imported from a site in XML format. They are also useful to define a new site and use them to install the portal in a production server. Follow this link to take a look at the main profile of CPSDefault product.

  • A Site is a python object in ZODB that grants consistency to all tools, contents, etc. From a user's point of view a CPS's site is what he gets as a result of asking the internet browser to show e.g. www.cps-project.com.

Well, that's all folks! I hope these concepts help you understand the framework in more detail.

No comments: