ZopeMag's mascot the ZOPE fish


Article Finder
People
Issue 8 - Revision 8  /   September 26, 2004 


 
  ZopeMag Links:
Latest Issue
About the Fish
Issue 10
Issue 09
Issue 08
Issue 07
Issue 06
Issue 05
Issue 04
Issue 03
Issue 02
Issue 01
 
 
Downloads
     
  Letter from the Editor:
   Issue 8

Interviews:
Each issue we interview important people in the Zope world.

  Stéfane Fermigier

Articles:
Throughout the quarter we cover topics of interest to Zope developers, designers, and users.

  Fine Grained Permissions

  Archetypes Part III

  Intro to Silva

  Profiling Zope

  Intro to CPS

Product Review:
Too many Products, too little time? ZopeMag keeps you up-to-date which Zope Products are worthwhile checking out.

  DocFinderTab
  mxODBC DA


Guides:
This quarter we bring you a new SuperGuide. Our miniGuides and SuperGuides give you the background knowledge you need to mastering Zope.

  miniGuide to Zope Hosting
  SuperGuide - Zope for Newbies (Part II)
 
 
Downloads
     
  URLs / Download
Products we talk about in this issues Articles and Reviews

     


Introduction to CPS
- Collaborative Portal Server
- - - - - - - - - - - -

By Kristoph Kirchner  | September 5, 2004

print

Introduction

The Collaborative Portal Server (CPS) by Nuxeo is a Content Management System built on top of the Content Management Framework (CMF).

The biggest problem when working with CPS is probably the lack of English documentation. At times this makes the simplest activities difficult, since one has to puzzle out how to work with the program. Since Nuxeo is a French company, almost all the documentation is in French. There is practically no English documentation, although there has been an effort to translate the documentation into Spanish and Italian. In addition, there is a mailing list for English speakers. However, internationalization allows CPS sites to be shown in English.

As with CMF and Plone, a CPS site allows anyone to join. New members have their own member area where they can add new content to the site. A site administrator can add new sections and members can submit their content to be published in these sections. The latest version of CPS (v3.1.4) comes with a great number of content types already installed, e.g. Flexible Document, Forum, FAQ and Event, and the user can create customized content types as well.

Figure 1: The CPS homepage

From outside the member areas (CPS calls them "workspaces"), a site administrator can only add objects of the following types:

  • Workspace
  • Chat
  • Form

From within a member area / workspace, the list of available objects types is much longer:

  • Workspace: - A folder to create content
  • Book: - A folder that displays the documents it contains as pages
  • Calendar
  • Chapter: - A flexible document displayed as a chapter in a book
  • Chat:
  • Event: - An event such as a meeting, a conference
  • FAQ (Frequently Asked Questions): - Set of Frequently Asked Questions
  • FAQ item: - Question / Answer
  • File: - Indexed attached file
  • Flexible document: - A document which can be put together out of components
  • Forum: - Holds threaded discussions
  • Glossary: - Set of definitions grouped alphabetically
  • Glossary Entry: - Term definition (for glossaries)
  • Image:
  • Image Gallery: - Set of pictures
  • Information collector: Form-based
  • Link: A URL
  • News:
  • Page: A flexible document displayed as a page in a book
  • Quiz: A form-based information collector for creating quizzes

A member can only add objects to his own workspace. As mentioned above, a member can submit objects to be published in one of the Website's sections, provided he has the correct permissions to submit content to that section. A reviewer must then decide whether to accept or reject this submission. If the submission is accepted, a copy of the object is transferred to the chosen section – the original remains in the member's workspace. The member may later check out an accepted version so that he can make changes and resubmit the changed version for approval, or he may make changes to his original object inside his workspace and then submit the changed object.

If several members want to work together on one or more objects, a new workspace must be created for them. The workspace can be created inside the root of workspaces. After assigning the group, e.g Section_Members, the local role Workspace Member for the newly created workspace, all members of this group may add and edit objects inside this workspace.

Creating New Sections

To create the structure for your public Website and to allow your members to publish content in different places throughout the Website, you need to create sections. Sections are more or less just folders that appear in the navigation; you can have as many sections and subsections as you want. You can decide for each section whether it will appear in the navigation are not.

To create a section you have to be logged in as administrator. First, click on the 'Root of Sections' tab. There, click on the link 'New' under "Object Actions" and create the section by choosing "Section" in the following form and then giving it a name.

However, creating sections is not enough. You need to give users or groups specific local roles for each section in order for them to be able to submit objects to these sections. Being able to define local roles either for users or entire groups, allows for a very fine-grained security policy.

Our first step now is to create a group so that we don't have to set the local role for each user of the group separately. Groups are created in the "Groups" directory, which you can find by clicking on the link Directories on the left-hand side under Portal Actions. This lists the following three directories: Groups, Members, and Roles. Click on Groups and then on the link "Create the new entry" on the right-hand side under "Object actions". Now create a group with the name Section_Members and choose the members of the Website shown automatically in the "Members" selection list that are to be in this group.

Figure 2: Creating a new group

After you have created the group, you can go to a section you want to create a local role for. When you click on the link "local roles", you see a search form which you can use to look for a user name, a group name, or an e-mail address. Search for the group Section_Members and assign it the local role "Section reader".

Figure 3: Search form for assigning local roles

In the following figure, you see the assigned local role for the group.

Figure 4: The local role "Section reader" has been assigned to the group Section_Members

Remember, members will not be able to submit an object unless you have created sections and defined the security for these sections. If you do not want to assign local roles for the various sections, you can assign them at the topmost level in the root of sections. Due to Zope's acquisition, local roles apply to the sections they are assigned to as well as all their subsections, unless you break the acquisition hierarchy by assigning different local roles directly in the subsections.

Creating New Boxes

Another nice feature of CPS is the box management which you get to by clicking the link "Root boxes management". The overview lists all boxes categorized by placement, e.g. Slot: Top or Slot: Left, and provides links for either editing or deleting a box.

Figure 5: Management Overview of CPS Boxes

To create your own boxes, use the link "Create box" at the upper right hand corner of the list. For example, let's create a tree box that shows the objects inside the workspace "Our Workspace"' in a tree format. After clicking on the link, you have to decide the type of box you want to create, which depends on the function it is going to serve. The following types are offered :

  • Flash Box: A box for displaying Macromedia™ Flash™ movies
  • Internal links box: Display a custom list of documents
  • Base box: Generic box for a menu, logo, search..
  • Content box: Display folder contents or search results.
  • Text box: A simple text or HTML box
  • Event Calendar Box: Display a calendar containing links to events
  • Image box: A generic box with an image, logo, folder, header.
  • Tree box: Display list of folders in a tree-like format
  • Action box: List actions by categories.
  • RSS box: Display an RSS feed: you will see a form showing a lot of different options.

Once you've chosen the type of box you want, you come to the management screen "Box edition", where you first decide where you want to place the box (e.g., left slot or right slot) and what you want it to look like. There are a few skins for boxes you can choose from: let's use the frame box as a box skin. Use the title "Workspace", choose left slot and order 1 (which defines the placement of the box in the left slot) and the type nuxeo-default.

Figure 6: Edit page of the box "Our Workspace"

In the second half of the form, you define the parameters for the tree box. It is necessary, of course, to give the root of the tree. In this case, the root is '/workspaces/our_workspace/'. Then there are some more options for the tree, such as how many levels are displayed or whether icons are to be shown.

Once you have made your choices, click "Save Changes" and you will see a box that looks like this:

Figure 7: New box showing the tree of the workspace "Our Workspace"

Due to the number of box types and options for each type, the possibilities for defining new boxes are massive.

CPSSkins

CPSSkins is a Zope product which enables you to easily create new CPS skins. It also comes with additional skins for CPS, such as the Autumn theme shown below. Once installed, your CPSSite will have a link "Portal Themes" in the category "Portal Actions". By the way, there's the CPSSkins book at http://www.medic.chalmers.se/~jmo/CPS/, which is the homepage of CPSSkins and it's in English.

Figure 8: The Autumn theme in the WYSIWYG mode of the CPSSkins editor

The editor starts out in WYSIWYG mode. In this mode, you can move parts of the skin around by simply clicking and dragging them to where you want them. Compare Figures 8 and 9.

Figure 9: Moving parts around in WYSIWYG mode

However, instead of moving parts around, which would change the default structure of Autumn Theme, you should go to the Themes Manager and create your own skin. In the Themes Manager, you can define what you want as the default theme, add new themes, delete themes and choose the theme renderer.

The Layout mode allows you to easily define the skin's layout, i.e. how many columns there should be and how wide they should be, as you can see in the figure below.

Figure 10: Layout mode

The Mixed mode, obviously, is a mix between Layout mode and WYSIWIG mode.

When creating your own skins, you will probably have to create your own styles. Styles are used to define various parts of a skin, such as the shape and color of a box or a font. Once you've created these styles, you can then choose them when defining parts like the left slot or the navigation box.

Although getting started with CPSSkins is a bit tedious, it is definitely a nice product since you don't have to fiddle around with HTML.

If you're using Plone and are interested in CPSSkins, there is a HowTo on the CPS project homepage which shows how to work with CPSSkins. This HowTo is a movie with comments in Italian but it can be followed even if you do not speak the language.

See: http://www.cps-project.org/Public/documentation/howtos/cpsskins_plone_howto/view

Note from ZopeMag: Did you like this Introduction to CPS? We would love to publish more articles on CPS and help make it more popular world-wide by providing quality (english language) documentation. We can't to this without more CPS article proposals. If you are interested please see our Writer's Guidelines. Thanks!

Resources

Download CPS
http://www.nuxeo.org/cps

CPS Community Site
http://www.cps-project.org

CPS How-to's
http://www.cps-project.org/Public/documentation/howtos/howto_to_translate_c/view


Kristoph Kirchner: was born in Berlin in 1977 and finished school in 1996. After completing a degree in Commercial Correspondence, Kirchner went on to study Computer Sciences at the Technical University of Berlin. Since then Kirchner has been working for beehive writing e-books on Zope and documentation for projects of beehive's customers. Kirchner also co-authored the first German Zope book "Zope: Content Management and Web Application Server", the book "Zope: Web Application Construction Kit" and the book "Zope: How to Build and Deliver Web Applications".


shim
shim  ZopeMag is committed to bringing you the best in Zope Documentation. shim
shim


Home   Subscribe   FAQ   Contact   Write for us   Privacy Policy   Weekly News   PyZine   opensourcexperts.com  

Reproduction of material from any of ZopeMag's pages without prior written permission is strictly prohibited. Copyright 2003 - 2005 ZopeMag Zope/Plone hosting by Nidelven IT