Zope Tutorial Notes
Zope Tutorial
General Principles
- Example oriented -- Every section should include an example. You should work along in Zope as you read the tutorial.
- Availability from Zope -- when you start Zope the tutorial should be available, and in fact should be the first thing you see.
- Experimentation oriented -- Sections should teach by showing how to modify existing examples and should encourage learning by experimentation.
- Simple -- The tutorial should not assume any experience on the part of the reader, and should not burden the user with lots of conceptual overhead.
- Bite sized -- Each section should be quick to complete.
- Results oriented -- The reader should be rewarded with interesting results immediately. Every section should provide the reader with a tangible reward.
- Demo first -- The explanations should follow the demonstration. Show a working app, then explain how it works by editing and changing it.
Goals
The tutorial should focus on basic Zope topics so that by the end of the tutorial the reader understands the main features of basic Zope objects and how to put them together to form a simple web application.
Additionally the management interface should be taught, and the user should know where to go to find out more about Zope.
Topics
Here is a list of topics that should be covered.
Using Zope
- How to navigate between objects in the management interface and edit an object.
- How to use the on-line help system.
- You can always undo.
- Understanding Zope errors.
Zen (this stuff should be mostly implicit)
- How you arrange your web objects matters.
- All objects have URLs corresponding to their location.
- Everything in Zope is dynamic.
- Objects live in context of parents and the web request.
Building things with Zope
- Use DTML Documents for web pages.
- Use DTML Methods for templates.
- Use Image for pictures.
- Use Files for files.
- Use properties for small pieces of (typed) content.
- Use Folders to group collections of objects.
- How to factor out common content and services.
DTML (this should be covered in the service of building simple apps, not as a topic in its own right.)
- How to insert variables with dtml-var.
- How to iterate over lists with dtml-in.
- How to test for conditions with dtml-if.
Administration (should this be included?)
? How to start and stop Zope
? How to install new products
? How to upgrade Zope
? How to back up Zope
Security (should this be included?)
? How to define new users
? How to define permissions
Simple tasks
- How to process forms
- How to send mail
- How to do site personalization
? How to create a site search
? How to access a relational database
Zope Resources
- Where to find free downloadable Products.
- Where to find Zope mailing lists.
- Where to find How-Tos.
Delivery
The tutorial can be delivered as a Python Product that simply includes help topics. Installation will be easy and this provides a simply updatable and usable database.
As for examples, I'm not sure where they should live. I imagine that the tutorial goes on in the help window and the user works in the main management screen. This implies that the tutorial examples need to be loaded into the database somewhere. The user should be able to play with the examples and modify them as they like, however they should not get the way of their existing web site Additionally modifying the examples shouldn't mess up the tutorial permanently.
Possible answer: The tutorial examples are installed in a Folder in the root with an id that includes the userid. As part of the install process, build a gadfly database that also includes the userid.
Later the tutorial examples can be re-installed.