"Great course, well presented.  Really like how the content was customised to our requirements.  The remote delivery (Skype/VNC) worked well."

Nathan Friend - Web Systems Developer, Canterbury College, UK

"You did excellent on the conceptual foundations, just the right level of detail. The environment setup too using virtual machines was well done."

Dr. Mathias Fonkam, School of Information Technology & Communications, American University of Nigeria

We have successfully performed on-line training in Plone, with a simple yet powerful setup, that demands very little from the course participant's computer, yet gives a full learning experience.

On-line training can be a cost-efficient and time-efficient solution. You do not need to leave your workplace or lose time in travel and lodging. The training will be one-on-one and you can pick and chose from our curriculum or field your own requirements.

We will set up two screen sharing servers on our side, one where the teacher can demo, and one where the course participant works, that the teacher can see and give feedback on.

The setup

We have field tested a solution that works well. All you need on your side is a:

  • VNC viewer
  • Skype or other phone system

VNC is a standard for screen sharing that is available on all platforms and there is a plethora of clients you can use. Besides VNC and Skype, nothing needs to be installed on your side.

After the course

After the course in order to view and run the work you have been doing during the course, you need to install VirtualBox, which is also free and available on all major platforms. It will contain a complete functioning development and server environment, with your work.

Course material

We have a 100-page course documentation that we usually follow when we teach, which you would get as a PDF file.

Course contents

Feel free to pick and choose from the below items or add some of your own


An introductory look at  Plone

  • Documents
  • Users
  • Collections
  • Portlets
  • Workflows
  • Rules
  • Keywords
  • Folder sharing

Plone is built on Zope and CMF

  • Introduction to Zope
  • The ZMI (Zope Management Interface)
  • The acquisition machinery
  • Interfaces and adapters
  • Users and Permissions


Development and deployment overview

  • Eggs
  • Buildout
  • Subversion

Plone in the ZMI

  • Tabs in the ZMI
  • Tools in the ZMI
  • Introduction to some important tools
    • portal_catalog
    • portal_actions
    • portal_workflow
    • portal_setup
    • portal_types

Users and permissions in Zope

  • Permissions
  • New roles
  • Local roles

Users and permissions in Plone

  • Users
  • Local assignment of roles
  • Groups
  • It's all in the workflow in plone

Changing the look and feel of Plone

ZPT - Zope Page templates
    • TAL
      • A namespace of its own
      • tal:replace
      • tal:content
      • tal:repeat
      • tal:define
      • tal:condition
    • TALES
      • path expressions
      • python expressions
      • string expressions
    • METAL
      • macros
      • slots
      • How to define and use macros
      • How to use and define slots
      • Make a master page
      • Make portlets or "blurbs"
      • Plone 3  and 4 portlets
    • Providers instead of macros


    • Where they are
    • What they do
    • Precedence
    • Which template to change
    • Other things than layout in portal_skins
      • Code
      • Properties


  • Views
    • Viewlets
    • Portlets



  • How to write a document type for Plone with Archetypes
    • Use ZopeSkel or a subversion based skeleton
    • Different kinds of fields and widgets
    • Get information into fields automatically
    • References
    • Make folderish objects
    • Introduction to buildout
    • Introduction to subversion

Specific examples

  • How to write a tool
  • How to write a new rule
  • How to use Google search instead of Plone's search


  • Customize a workflow in the ZMI
  • Add a workflow through a Product

Adapters, Rules and Events

  • Event handlers
  • Content rules
  • An additional place for page templates and customisations
  • Three new roles
  • Working with adapters

Make Plone go faster

  • ZEO setup
  • Load balancing
  • Upgrading to Plone 4
  • Caching
    • In Plone
    • Varnish


  • How to skin with Diazo
  • Setting up a Diazo WSGI server
  • Using Nginx and XSLT instead of a Diazo server