NO STARCH PRESS
"the finest in geek entertainment"™
Home  | Catalog  | Blog  | Planet  | Media  | Buy  | About  | Cart


book main | contents | reviews | updates

Preface
Who Is This Book For?
What Version of Zope Does It Cover?
How to Use This Book
Zope Beginners with HTML Knowledge
Zope Beginners with Both HTML and Python Knowledge
Advanced Zope Users with No Prior Knowledge of Python
Advanced Zope Users With Prior Knowledge of Python
Where Did Zope Come From?
About the Authors

Chapter 1: Zope Fundamentals
   1.1 Web Applications
      1.1.1 The Advantages of Zope for Web Application Programmers
   1.2 Zope As a Web Application Server
      1.2.1 "Content-by-Role"
      1.2.2 SQL = Structured Query Language
      1.2.3 Python
   1.3 Zope as a Content Management Server
      1.3.1 Open Source Software
   1.4 Technical Requirements
      1.4.1 Hardware Requirements
   1.5 Installation
      1.5.1 Windows
      1.5.2 Windows NT
      1.5.3 Linux
   Summary

Chapter 2: QuickStart
   2.1 Preparations
      2.1.1 Creating a User Account
   2.2 Zope's Interface: The Management Screen macs
      2.2.1 The Left Frame of the Management Screen
      2.2.2 The Right Frame of the Management Screen
   2.3 Zope Objects
      2.3.1 Zope and Object-Oriented Programming
      2.3.2 Creating a Folder
      2.3.3 Creating Files
      2.3.4 DTML Documents and Methods
      2.3.5 Creating a DTML Document
      2.3.6 Creating a DTML Method
   2.4 Managing Objects
      2.4.1 Changing an Object ID
      2.4.2 Changing an Object Title
      2.4.3 Copying Objects
      2.4.4 Deleting Objects
      2.4.5 Moving Objects
   2.5 Acquisition and Standard Objects
      2.5.1 Standard Objects
   Summary

Chapter 3: Navigating Zope
   3.1 The Zope Tab Bar
      3.1.1 The Contents Tab
      3.1.2 The Edit Tab and Edit Screen
      3.1.3 The View Tab
      3.1.4 The Ownership Tab
      3.1.5 The History Tab
      3.1.6 The Properties Tab
      3.1.7 The Undo Tab
      3.1.8 The Find Tab
      3.1.9 The Import/Export Tab
   3.2 The Help Button
      3.2.1 Contents
      3.2.2 Search
   3.3 The Control Panel
      3.3.1 Shutdown
      3.3.2 Restart
      3.3.3 The Database Management Screen
      3.3.4 Managing your Zope Database with Pack
      3.3.5 Restoring Your Saved Data.fs File
      3.3.6 Copying Your Database to Another Zope Serve
      3.3.7 Version Management
      3.3.8 Product Management
      3.3.9 Debugging Information
   Summary

Chapter 4: DTML
   4.1 Essentials
      4.1.1 First, Second, and Third Tiers
      4.1.2 Variables
      4.1.3 The DTML Namespace
   4.2 DTML Syntax
      4.2.1 Empty and Non-Empty Tags
      4.2.2 Old DTML Syntax
      4.2.3 Abbreviating Attributes
   4.3 Using DTML Tags, Variables, and Attributes
      4.3.1 The var Tag
      4.3.2 The Namespace Variable
      4.3.3 Client-Server Communication over the Web
      4.3.4 The call Tag
      4.3.5 The if Tag
      4.3.6 The elif Tag
      4.3.7 The unless Tag
      4.3.8 The with Tag
      4.3.9 The let Tag
      4.3.10 The in Tag
      4.3.11 The tree Tag
      4.3.12 The Sendmail Tag
      4.3.13 The MIME Tag and the boundary Tag
      4.3.14 The comment Tag
      4.3.15 The try and the except Tags
      4.3.16 The finally Tag
      4.3.17 The raise Tag
      4.3.18 The return Tag
   Summary

Chapter 5: Working with Zope Versions
   5.1 Creating a Version
   5.2 Joining and Leaving a Version
   5.3 Working in a Version
      5.3.1 Updating Objects
      5.3.2 Saving and Discarding Changes Using the Control Panel
   5.4 Deleting a Version
   5.5 Working with Multiple Versions
   5.6 An Example
   Summary

Chapter 6: Users, Roles, and Security
   6.1 Zope's Security Structure
      6.1.1 User Roles
      6.1.2 Zope Roles: Anonymous, Manager, Owner
      6.1.3 Assigning and Creating Roles
      6.1.4 Assigning Permissions Using Acquisition
      6.1.5 Ownership
   6.2 Managing Users
      6.2.1 Creating Users
      6.2.2 Modifying a User
      6.2.3 Creating New Roles
   6.3 Managing Users in DTML
      6.3.1 Creating Users in DTML
      6.3.2 Problems when Creating Users in DTML
      6.3.3 Changing Users in DTML
      6.3.4 Deleting Users in DTML
      6.3.5 User Folder Methods
   Summary

Chapter 7: Local Roles and Permissions
   7.1 Local Roles
      7.1.1 Example
   7.2 Proxy Roles
   7.3 Permissions
      7.3.1 Permissions for Non-Folderish Objects
      7.3.2 Permissions for Folderish Objects
   Summary

Chapter 8: Some Methods for the Role.py and User.py Modules
   8.1 Calling Methods
   8.2 Methods for the Module Role.py
      8.2.1 Methods for the User.py Module
   8.3 Example: Authentication
      8.3.1 DTML Method login_html
      8.3.2 DTML Document index_html
      8.3.3 The two views of index_html
      8.3.4 Assigning Permissions for login_html
   Summary

Chapter 9: ZClasses
   9.1 Why Use ZClasses?
      9.1.1 Example ZClass Application: Bookstore
   9.2 Classes and Objects
      9.2.1 Creating a ZClass
      9.2.2 Example: CarClass
      9.2.3 Identification Numbers
      9.2.4 Property Sheets
   9.3 Creating a ZClass
      9.3.1 Creating a Product
      9.3.2 Adding a ZClass to the Product
      9.3.3 The Create Constructor Objects Checkbox
      9.3.4 Changing the ZClass Information
      9.3.5 Base Classes and Their Views
      9.3.6 Creating a Property Sheet and Properties
      9.3.7 Creating a Selection or Multiple Selection Property
      9.3.8 Establishing Views
      9.3.9 Creating Help Topics
      9.3.10 Editing Properties
   Summary

Chapter 10: Working with the ZClass
   10.1 Modifying the Constructor Methods
      10.1.1 Modifying DTML Methods
      10.1.2 Creating Objects with ZClasses
      10.1.3 The Book Class Factory
   10.2 Running the Store
   10.3 Two Ways to Edit Your Book Objects
      10.3.1 Working in the Books Folder with the Management Screen
      10.3.2 Working with an Administration Interface
      10.3.3 Admin_html DTML Methods
   10.4 Selling Your Books
      10.4.1 Creating index_html
      10.4.2 Creating the DTML Methods for Ordering Books
      10.4.3 Sending the Order
   10.5 Ideas for Expanding Your Zope Product
      9.3.9 Creating Help Topics
   Summary

Chapter 11: The ZCatalog
   11.1 Creating a ZCatalog
      11.1.1 Choosing a Vocabulary
      11.1.2 Globbing
   11.2 The ZCatalog Screens
      11.2.1 Contents Screen
      11.2.2 The Catalog Screen
      11.2.3 The Find Objects Screen
      11.2.4 Metadata Screen
      11.2.5 Indexes Screen
      11.2.6 Advanced Screen
   11.3 Z Search Interface
      11.3.1 The Search Page
      11.3.2 The Results Page
   11.4 ZCatalog Queries
      11.4.1 Querying ZCatalogs from a Form
      11.4.1 Querying ZCatalogs from a Form
      11.4.2 Catalog Brains
      11.4.3 Querying ZCatalogs Directly
   11.5 The Vocabulary
      11.5.1 The Vocabulary Screen
      11.5.2 Searching the Vocabulary
      11.5.3 Expanding the Vocabulary: The insert() and manage_insert() Methods
      11.5.4 ZCatalog with Special Characters
   Summary

Chapter 12: Zope and MySQL
   12.1 ZODB or External Database?
   12.2 RDMBS
   12.3 The MySQL Database
      12.3.1 Starting MySQL Monitor
      12.3.2 Creating a Database with MySQL Monitor
      12.3.3 Creating the User Data Table with MySQL Monitor
      12.3.4 Installing the Database Adapter ZMySQLDA
      12.3.5 Establishing a Z MySQL Connection in Zope
      12.3.6 Testing SQL Queries to Your Database
   12.4 Filling Tables with User Data Using Zope
      12.4.1 The userAddForm_html Method
      12.4.2 The userAdd_html Method
      12.4.3 The userInsert_sql Method
      12.4.4 Testing Your SQL Methods
   12.5 Querying the Database Using Zope
      12.5.1 Creating SQL Methods for Searching
      12.5.2 The sqltest Tag
      12.5.3 The sqlvar Tag
   12.6 Creating a Search Interface
      12.6.1 Creating an Input Screen for the Search
   Summary

Chapter 13: Programming Zope: Python in a Jiffy
   13.1 Data Types
      13.1.1 Numeric Types
      13.1.2 Sequential Types
      13.1.3 None
   13.2 Operators
   13.3 Variables and Assignments
   13.4 Indention
   13.5 Classes and Methods
      13.5.1 Example: Creating a Class
   Summary

Chapter 14: Scripting Zope with Python
   14.1 Zope Python Scripts
      14.1.1 Creating Python Scripts
      14.1.2 Edit Management Screen
      14.1.3 Bindings Management Screen
      14.1.4 Test Management Screen
      14.1.5 Importing Modules into Python Scripts
      14.1.6 Calling Python Scripts from DTML
      14.1.7 Example: Creating a Zope Python Script
      14.1.8 Using the Script from DTML
   14.2 External Methods
      14.2.1 Creating External Methods
      14.2.2 Accessing Python Methods with DTML
      14.2.3 Example: Creating an External Method
      14.2.4 Creating an External Method Object in Zope
      14.2.5 Summary of Creating External Methods
   14.3 Using External Methods to Change Roles and Permissions
      14.3.1 Changing Permissions for Multiple Roles
      14.3.2 permission_settings()
      14.3.3 The Permission Method Step-by-Step
      14.3.4 Using the permissions.py Method
      14.3.5 The createUser() Method
   Summary

Chapter 15: Zope Products
   15.1 A Tool for Creating Objects
   15.2 Constructing a Product
      15.2.1 Bootstrapping the Product
      15.2.2 Necessary Components
      15.2.2 User Structure
      15.2.3 Roles/Permissions Structure
   15.3 Product Construction at a Glance
      15.3.1 Major Components
      15.3.2 Support Files
      15.3.3 Putting It All Together
   15.4 Creating the Website Product
      15.4.1 Create the Product Directory
      15.4.2 The Main Module: Website.py
      15.4.3 Defining the Constructor Form
      15.4.4 The Constructor Method of the Main Module
      15.4.5 Writing The __init__.py File
   Summary

Chapter 16: Debugging
   16.1 Errors When Starting the Zope Server
   16.2 Python and DTML Errors
      16.2.1 Binary Searching
      16.2.2 Defensive Coding
      16.2.3 Intermittent Errors
      16.2.5 DTML Error Messages
      16.2.6 Debug Mode
   16.3 Errors Specific to Zope
      16.3.1 Zope Error Messages
   Summary

Chapter 17: External Data Access
   17.1 FTP
      17.1.1 Using Graphical FTP Clients
   17.2 WebDAV
      17.2.1 WebDAV for Linux and Unix
   17.3 XML-RPC
   Summary

Appendix A: DTML and Built-in Attributes
   A.1 The var Tag
      A.1.1 Special Formats
   A.2 The Namespace Variable
      A.2.1 Modules
      A.2.2 Client-Server Communication

Appendix B: The REQUEST Object
   REQUEST

Appendix C: Source Code for the Website Product
   C.1 Source Text for __init__.py for the Website Product
   C.2 Source Text for Website.py for the Website Product
      C.2.1 addWebsiteForm.dtml
    C.3 The DTML Methods for the Website Product
      C.3.1 WebsiteUsers_list.dtml
      C.3.2 edit_WebsiteUser.dtml
      C.3.3 index_html.dtml
      C.3.4 login_html.dtml
      C.3.5 new_WebsiteUser.dtml
      C.3.6 products_html.dtml
      C.3.7 standard_html_footer.dtml
      C.3.8 standard_html_header.dtml
      C.3.9 about_us_html.dtml

Appendix D: Some ZCatalog Module Methods

Appendix E: Glossary

Index

book main | contents | reviews | updates



Copyright 2009 by No Starch Press