- STAFF PICKS
- GIFTS + GIFT CARDS
- SELL BOOKS
- FIND A STORE
Used Trade Paper
Ships in 1 to 3 days
Other titles in the Developer's Library series:
Zope Developer's Handbookby Stephan Richter
Synopses & Reviews
Be the first in line when the green flag for Zope 3 goes down with the help of the Zope Developer's Handbook. This collection of cookbook recipes provides easy-to-follow solutions to common problems you may face as a Zope or Python developer when beginning to implement the Zope 3 open-source application server. Utilize the book's solutions-oriented, task-based structure, as well as the supporting website for code used in each recipe, to help build your Zope components. Stay at the front of the line with the Zope Developer's Handbook.
Book News Annotation:
For software developers well acquainted with the object-oriented scripting language Python, Richter (physics, Tufts U.) explains the open-source platform for building Web-based content management systems. He refers to Zope 3, which uses many of the latest development patterns and technologies, but also reuses some parts developed for previous versions of Zope.
Annotation ©2006 Book News, Inc., Portland, OR (booknews.com)
Book News Annotation:
For software developers well acquainted with the object-oriented scripting language Python, Richter (physics, Tufts U.) explains the open-source platform for building Web-based content management systems. He refers to Zope 3, which uses many of the latest development patterns and technologies, but also reuses some parts developed for previous versions of Zope. Annotation Â©2006 Book News, Inc., Portland, OR (booknews.com)
About the Author
Zope 3 Developer's Handbook#LINK
Stephan Richter is a doctoral student in physics at Tufts University in Somerville, Massachusetts. He has been part of the Zope community since the summer of 1999. He has been involved in many community activities, such as documentation and organizing the first EuroZope conference. Stephan has also consulted with many Zope solution providers, developed many add-on products, and published two community-written books on Zope. Since attending the first public Zope 3 sprint early in 2002, Stephan has been actively involved in developing Zope 3, and he has taken command of several subprojects, such as internationalization and documentation.
© Copyright Pearson Education. All rights reserved.
Table of Contents
In the Beginning There Was…
Zope 3 Components
The Goals of This Book
I. ZOPE 3 FROM A USER’S POINT OF VIEW.
1. Installing Zope 3.
Zope 3 Installation Requirements
Installing Zope from SVN
Installing the Source Distribution
Installing the Binary Distribution of Zope
sUnpacking the Package
Creating a Zope Instance
Installing the Source Distribution in Windows Without Using make
2. The New Web-Based Zope User Interface.
Getting Comfortable with the ZMI
Help and Documentation
The Scripter’s World
The Content Space Versus the Software Space
The Content Space
The Software Space
3. Installing New Zope Packages.
Step 1: Determining the Installation Directory
Step 2: Fetching the Wiki Application from SVN
Step 3: Registering the Package
Step 4: Confirming the Installation
Step 5: Adding a Sample Wiki Instance
4. Setting Up Virtual Hosting.
II. THE TEN-THOUSAND-FOOT VIEW.
5. The Zope 3 Development Process.
From Idea to Implementation
Implementing New Components
Zope 3 Naming Rules
Directory Hierarchy Conventions
Python Naming and Formatting Conventions
ZCML Naming and Formatting Conventions
Page Template Naming and Formatting Conventions
Test Writing Conventions
The Importance of Having and Following Conventions
6. An Introduction to Interfaces.
Advanced Usages of Interfaces
7. The Component Architecture: An Introduction.
Factories (Object Classes/Prototypes)
Presentation Components: Views, Resources, Skins, and Layers
Global Versus Local Components
8. Zope Schemas and Forms.
Schemas Versus Interfaces
The Core Schema Fields
Autogenerated Forms Using the forms Package
9. Introduction to the Zope Configuration Markup Language (ZCML).
The configure tag
The context Variable
10. Introduction to Zope’s I18n and L10n Support.
Diving into I18n and L10n
Messages and Message Catalogs
Internationalizing Message Strings
Extracting Message Strings
11. Metadata and the Dublin Core.
The Dublin Core
The Dublin Core Elements
12. Porting Applications from Zope 2 to Zope 3.
Porting an Application by Redesign
Porting Using Compatibility Layers and Scripts
III. CONTENT COMPONENTS–THE BASICS.
13. Writing New Content Objects.
Step 1: Preparing to Write the Content Object
Step 2: Creating the Initial Design
Step 3: Writing the Interfaces
Step 4: Writing Unit Tests
Step 5: Implementing Content Components
Step 6: Running Unit Tests Against the Implementation
Step 7: Registering the Content Components
Step 8: Configuring Some Basic Views
Step 9: Registering the Message Board with Zope
Step 10: Testing the Content Component
14. Adding Views for Content Objects.
Step 1: Creating the Message Details View
Creating the Page Template
Creating the Python-Based View Class
Registering the View
Testing the View
Step 2: Specifying the Default View
Step 3: Adding the Threaded Subtree View
The Main Thread Page Template
The Thread Python View Class
The Subthread Page Template
Registering the Thread View
The Message Board Default View
Step 4: Adding Icons
Step 5: Final Testing
15. Custom Schema Fields and Form Widgets.
Step 1: Creating a Field
The Interface of the Field
Implementation of the Field
Unit Tests for the Field
Step 2: Creating a Widget
Implementation of the HTML Source Widget
Unit Tests for the Widget
Step 3: Using the HTML Field
Registering the Widget
Adjusting the IMessage Interface
16. Securing Components.
Step 1: Declaring Permissions
Step 2: Using the Permissions
Step 3: Declaring Roles
Step 4: Assigning Roles to Principals
17. Changing Size Information.
Step 1: Implementing the Adapter
Step 2: Writing and Running Unit Tests
Step 3: Registering the Adapter
18. Internationalizing Packages.
Step 1: Internationalizing Python Code
Step 2: Internationalizing Page Templates
Step 3: Internationalizing ZCML
Step 4: Creating Language Directories
Step 5: Extracting Translatable Strings
Step 6: Translating Message Strings
Step 7: Compiling and Registering Message Catalogs
Step 8: Trying the Translations
Step 9: Updating Translations on-the-Fly
IV. CONTENT COMPONENTS–ADVANCED TECHNIQUES.
19. Events and Subscribers.
Step 1: Developing the Mail Subscription Interface
Step 2: Implementing the Mail Subscription Adapter
Step 3: Testing the Adapter
Step 4: Providing a View for the Mail Subscription
Step 5: Writing an Event Subscriber
Step 6: Testing the Message Mailer
Step 7: Using the New Mail Subscription System
The Theory Behind Events
20. Approval Workflow for Messages.
Step 1: Making a Message Workflow-Aware
Step 2: Creating a Workflow and Its Supporting Components via a Browser
Step 3: Assigning a Workflow
Step 4: Testing the Workflow
Step 5: Creating a Review Messages View for Message Boards
Step 6: Adjusting a Message Thread
Step 7: Automating the Creation of Workflow and Friends
The Theory Behind Workflows
21. Providing Online Help Screens.
Creating Help Files
Registering the Online Help Topics
22. Object-to-Filesystem Mapping, Using FTP as an Example.
Step 1: IPlainText Adapters
The IPlainText Interface
The Plain-Text Adapter Implementation
The Configuration of the Adapters
Step 2: The Virtual Contents File Adapter
The Virtual Contents File Interface
The Tests for the VirtualContentsFile Class
The Configuration of the VirtualContentsFile Class
Step 3: The IReadDirectory Implementation
The Directory Implementation
The Directory Tests
The Directory Configuration
Step 4: Putting the Icing on the Cake: A Special Directory Factory
23. Availability of Content via XML-RPC.
Step 1: Creating Methods: XML-RPC Presentation Components
Step 2: Testing the XML-RPC Views
Step 3: Configuring the New Views
Step 4: Testing XML-RPC Features in Action
24. Developing New Skins.
Step 1: Preparing for a New Skin
Step 2: Creating a New Skin
Step 3: Customizing the Base Templates
Step 4: Adding a Message Board Intro Screen
Step 5: Viewing a List of All Message Board Posts
Step 6: Adding a Post to the Message Board
Step 7: Reviewing Pending Messages
Step 8: Viewing Message Details
Step 9: Replying to Messages
V. OTHER COMPONENTS.
25.Building and Storing Annotations.
Implementing an Alternative Annotations Mechanism
Step 1: Developing the Interfaces
Step 2: Implementing the KeeperAnnotations Adapter
Step 3: Writing and Performing Unit Tests
Step 4: Configuring the KeeperAnnotations Component
Step 5: Writing Functional Tests and Configuration
26. New Principal-Source Plug-ins.
Step 1: Defining the Interface
Step 2: Writing the Tests
Step 3: Implementing the Plug-in
Step 4: Registering the Principal Source and Creating Basic Views
Step 5: Taking the Plug-in for a Test Run
27. Principal Annotations.
Step 1: Creating the Principal Information Interface
Step 2: Creating the Information Adapter
Step 3: Registering the Components
Step 4: Testing the Adapter
Step 5: Playing with the New Feature
28. Creating New Browser Resources.
Creating a Resource File
The DirectoryResource Object
29. Registries with Global Utilities.
Step 1: Defining the Interfaces
Step 2: Implementing the Utility
Step 3: Writing Tests
Step 4: Providing a User-Friendly UI
Step 5: Implementing ZCML Directives
Declaring the Directive Schemas
Implementing ZCML Directive Handlers
Writing the Meta-ZCML Directives
Testing the Directives
Step 6: Setting Up Some Smiley Themes
Step 7: Integrating Smiley Themes into the Message Board
The Smiley Theme Selection Adapter
Using the Smiley Theme
30. Local Utilities.
Step 1: Defining the Interfaces
Step 2: Implementing a Smiley
Step 3: Registering the Themes
Step 4: Providing Views
Step 5: Working with the Local Smiley Theme
Step 6: Writing Tests
31. Vocabularies and Related Fields/Widgets.
Step 1: The Vocabulary and Its Terms
Step 2: Testing the Vocabulary
Step 3: The Default Item Folder
32. Exception Views.
Step 1: Creating an Exception
Step 2: Providing an Exception View
Step 3: Testing the Exception View
VI. ADVANCED TOPICS.
33. Writing New ZCML Directives.
Step 1: Developing the Directive Schema
Step 2: Implementing the Directive Handler
Step 3: Writing the meta Configuration
Step 4: Testing the Directive
34. Implementing TALES Namespaces.
Step 1: Defining the Namespace Interface
Step 2: Implementing the Namespace
Step 3: Testing the Namespace
Step 4: Wiring the format Namespace into Zope 3
Step 5: Trying the format Namespace
35. Changing Traversal Behavior.
Step 1: Creating a Non-Case-Sensitive Folder
Step 2: Creating the Traverser
Step 3: Creating and Running Unit Tests
Step 4: Creating and Running Functional Tests
36. Registering New WebDAV Namespaces.
Step 1: Creating the Namespace Schema
Step 2: Implementing the IPhoto to IImage Adapter
Step 3: Unit-Testing and Configuring the Adapter
Step 4: Registering the WebDAV Schema
Step 5: Creating and Running Functional Tests
37. Using TALES Outside Page Templates.
The TALES Filesystem Runner
Trying Out the New TALES Runner
38. Developing New TALES Expressions.
An Overview of TALES Expressions
Step 1: Implementing the SQL Expression
Step 2: Preparing and Implementing the Tests
Step 3: Trying Your New Expression in Zope
39. The Life of a Request.
What Is a Request?
Finding the Origin of a Request
The Request and the Publisher
VII. WRITING TESTS.
Part 40: Writing Basic Unit Tests
Part 41: Doc Tests: Example-Driven Unit Tests
Part 42: Writing Functional Tests
Part 43: Creating Functional Doc Tests
Part 44: Writing Tests Against Interfaces
40. Writing Basic Unit Tests.
Implementing the Sample Class
Writing Unit Tests
Running the Tests
41. Doc Tests: Example-Driven Unit Tests.
Integrating a Doc Test
Doc Tests in a File
Shortcomings of Doc Tests
42. Writing Functional Tests.
The Browser Test Case
Testing ZPT Page Views
Running Functional Tests
43. Creating Functional Doc Tests.
Setting Up the Zope 3 Environment
Setting Up TCPWatch
Recording a Session
Creating and Running the Test
44. Writing Tests Against Interfaces.
The ISample Interface
The ISample Interface Tests
Implementations of the ISample Interface
Writing Tests for the Implementations
Running the Tests
Appendix A. Attribution-NonCommercial-NoDerivs License 2.0.
Appendix B. Zope Public License (ZPL) Version 2.1.
What Our Readers Are Saying
Other books you might like