[PART I 第一部分]

CHAPTER 1 INSTALLING ZOPE 3 安装ZOPE3
1.1 Requirements 需求
1.2 Installing from SVN 从SVN安装
1.3 Installing the Source Distribution 安装源代码发布版
1.3.1 Unpacking the Package  解压缩包
1.3.2 Building Zope 建立Zope
1.3.3 Creating a Zope Instance 创建一个Zope实例
1.3.4 Run Zope  运行Zope
1.4 Installing the Source Distribution on Windows without make 在Windows上采用非编译的方式安装源代码发布版
1.5 Installing the Binary Distribution 安装二进制发布版
CHAPTER 2 THE NEW WEB-BASED USER INTERFACE 第二章 新的基于WEB的用户接口
2.1 Getting comfortable with the ZMI
2.2 Help and Documentation 帮助和文档
2.3 The Scripter's World 脚本人员的世界
2.4 Software versus Content Space 软件vs内容空间
2.4.1 Content Space 内容空间
2.4.2 Software Space 软件空间
CHAPTER 3 INSTALL ZOPE PACKAGES 安装ZOPE软件包
3.1 Step I: Determining the Installation Directory 第一步:决定安装路径
3.2 Step II: Fetching the Wiki application from SVN 第二步:从SNV获得wiki应用程序
3.3 Step III: Registering the Package 第三步:注册软件包
3.4 Step IV: Confirm the Installation 第四步:确认安装
3.5 Step V: Add a Sample Wiki 第五步:添加一个示例Wiki
CHAPTER 4 SETTING UP VIRTUAL HOSTING 设置虚拟主机

[PART II 第二部分]
CHAPTER 5 THE ZOPE 3 DEVELOPMENT PROCESS ZOPE 3的开发过程
5.1 From an Idea to the Implementation 从想法到实现
5.1.1 Implementing new Components 实现新的组件
5.1.2 Fixing a bug 修正错误
5.2 Zope 3 Naming Rules 命名规则
5.2.1 Directory Hierarchy Conventions 目录层次约定
5.2.2 Python Naming and Formatting Conventions Python命名和格式化约定
5.2.3 ZCML Naming and Formatting Conventions ZCML命名和格式化约定
5.2.4 Page Template Naming and Formatting Conventions 页面模版命名和格式化约定
5.2.5 Test Writing Conventions 编写测试的约定
5.2.6 Why is Having and Following the Conventions Important? 为什么持有和遵守这些约定是重要的呢?
CHAPTER 6 AN INTRODUCTION TO INTERFACES 介绍接口
6.1 Introduction 介绍
6.2 Advanced Uses 高级用途
6.3 Using Interfaces 使用接口
CHAPTER 7 THE COMPONENT ARCHITECTURE -- AN INTRODUCTION 组件架构-介绍
7.1 Services 服务
7.2 Adapters 适配器
7.3 Utilities 实用工具
7.4 Factories (Object Classes/Prototypes) 工厂(对象类/属性)
7.5 Presentation Components  表现组件
7.6 Global versus Local 全局vs局部
CHAPTER 8 ZOPE SCHEMAS AND WIDGETS (FORMS) ZOPE的模型和窗口部件(表单)
8.1 History and Motivation 历史和动机
8.2 Schema versus Interfaces 模型vs接口
8.3 Core Schema Fields 核心模型字段
8.4 Auto-generated Forms using the forms Package 使用表单软件包来自动生成表单
CHAPTER 9 INTRODUCTION TO ZCML 介绍ZCML
CHAPTER 10 INTRODUCTION TO ZOPE'S I18N AND L10N SUPPORT 介绍ZOPE支持I18N和L10N的情况
10.1 History 历史
10.2 Introduction 介绍
10.3 Locales 本地
10.4 Messages and Message Catalogs 消息和消息目录
10.5 Internationalizing Message Strings 国际化消息字符串
10.5.1 Python Code Python代码
10.5.2 ZPT (Page Templates) ZPT(页面模版)
10.5.3 DTML
10.5.4 ZCML
CHAPTER 11 META DATA AND THE DUBLIN CORE 元数据和DUBLIN核心
CHAPTER 12 PORTING APPLICATIONS FROM ZOPE 2 TO ZOPE 3 将应用从Zope2移植到Zope3上
12.1 Porting an Application by Redesign 通过重新设计来移植应用
12.2 Porting using compatibility layers and scripts 通过兼容性的层和脚本来移植

[PART III 第三部分]
CHAPT ER 13 WRITING A NEW CONTENT OBJECT 编写一个新的内容对象
13.1 Step I: Preparation 第一步:准备
13.2 Step II: The Initial Design 第二步:初始化设计
13.3 Step III: Writing the interfaces 第三步:编写接口
13.4 Step IV: Writing Unit tests 第四步:编写单元测试
13.5 Step V: Implementing Content Components 第五步:实现内容组件
13.6 Step VI: Running Unit Tests against Implementation 第六步:对实现进行单元测试
13.7 Step VII: Registering the Content Components 第七步:注册内容组件
13.8 Step VIII: Configure some Basic Views 第八步:配置一些基本视图
13.9 Step IX: Registering the Message Board with Zope 第九步:在Zope中注册Message Board
13.10 Step X: Testing the Content Component 第十步:测试内容组件
CHAPTER 14 ADDING VIEWS 添加视图
14.1 Step I: Message Details View 详细消息视图
14.1.1 (a) Create Page Template 创建页面模版
14.1.2 (b) Create the Python-based View class 创建基于Python的视图类
14.1.3 (c) Registering the View 注册视图
14.1.4 (d) Testing the View 测试视图
14.2 Step II: Specifying the Default View 第二步:指定默认视图
14.3 Step III: Threaded Sub-Tree View 线索树型视图
14.3.1 (a) Main Thread Page Template 主线索页面模版
14.3.2 (b) Thread Python View Class 线索Python视图类
14.3.3 (c) Sub-Thread Page Template 子线索页面模版
14.3.4 (d) Register the Thread View 注册线索试视图
14.3.5 (e) Message Board Default View 留言板默认视图
14.4 Step IV: Adding Icons 第四步:添加图标
CHAPTER 15 CUSTOM SCHEMA FIELDS AND FORM 自定义模型字段和表单
15.1 Step I: Creating the Field 创建字段
15.1.1 (a) Interface 接口
15.1.2 (b) Implementation 实现
15.1.3 (c) Unit Tests 单元测试
15.2 Step II: Creating the Widget 创建窗口部件
15.2.1 (a) Implementation 实现
15.2.2 (b) Unit Tests 单元测试
15.3 Step III: Using the HTML Field 使用HTML字段
15.3.1 (a) Registering the Widget 注册窗口部件
15.3.2 (b) Adjusting the IMessage interface 调整IMessage接口
CHAPTER 16 SECURING COMPONENTS 安全组件
16.1 Step I: Delcarations of Permissions 声明权限
16.2 Step II: Using the Permissions 使用权限
16.3 Step III: Declaration of Roles 声明角色
16.4 Step IV: Assigning Roles to Principals 为主体分配角色
CHAPTER 17 CHANGING SIZE INFORMATION 改变尺寸信息
17.1 Step I: Implementation of the Adapter 实现适配器
17.2 Step II: Unit tests 单元测试
17.3 Step III: Registration 注册
CHAPTER 18 INTERNATIONALIZING A PACKAGE 国际化软件包
18.1 Step I: Internationalizing Python code 国际化Python代码
18.2 Step II: Internationalizing Page Templates 国际化页面模版
18.3 Step III: Internationalizing ZCML 国际化ZCML
18.4 Step IV: Creating Language Directories 创建语言目录
18.5 Step V: Extracting Translatable Strings 提取可翻译的字符串
18.6 Step VI: Translating Message Strings 翻译消息字符串
18.7 Step VII: Compiling and Registering Message Catalogs 编译并注册消息目录
18.8 Step VIII: Trying the Translations 尝试翻译
18.9 Step IX: Updating Translations on the Fly 在运行过程中更新翻译

[ PART IV 第四部分]
CHAPTER 19 EVENTS AND SUBSCRIBERS 事件和订阅
19.1 Step I: Mail Subscription Interface 邮件订阅接口
19.2 Step II: Implementing the Mail Subscription Adapter 实现邮件订阅适配器
19.3 Step III: Test the Adapter 测试适配器
19.4 Step IV: Providing a View for the Mail Subscription 为邮件订阅提供一个视图
19.5 Step V: Message Mailer - Writing an Event Subscriber Message Mailer - 编写一个事件订阅器
19.6 Step VI: Testing the Message Mailer 测试Message Mailer
19.7 Step VII: Using the new Mail Subscription 使用新的邮件订阅
19.8 Step VIII: The Theory 原理
CHAPTER 20 APPROVAL WORKFLOW FOR MESSAGES 为消息增加工作流
20.1 Step I: Making your Message Workflow aware 明确你的工作流
20.2 Step II: Create a Workflow and its Supporting Components via the Browser 创建一个工作流和通过浏览器支持它的组件
20.3 Step III: Assigning the Workflow 分配工作流
20.4 Step IV: Testing the Workflow 测试工作流
20.5 Step V: Writing a nice "Review Messages" View for Message Boards 为Message Boards编写一个好的"Review Messages"
20.6 Step VI: Adjusting the Message Thread 调整消息线索
20.7 Step VII: Automation of Workflow and Friends creation 自动创建工作流和字段
20.8 The Theory 原理
CHAPTER 21 PROVIDING ONLINE HELP SCREENS 提供在线帮助屏幕
CHAPTER 22 OBJECT TO FILE SYSTEM MAPPING USING FTP AS EXAMPLE 使用FTP来演示映射文件系统对象
22.1 Step I: Plain Text Adapters 纯文本适配器
22.1.1 (a) The Interface 接口
22.1.2 (b) The Implementation 实现
22.1.3 (c) The Configuration 配置
22.2 Step II: The "Virtual Contents File" Adapter "虚拟内容文件"适配器
22.2.1 (a) The Interface 接口
22.2.2 (b) The Implementation 实现
22.2.3 (c) The Tests 测试
22.2.4 (d) The Configuration 配置
22.3 Step III: The IReadDirectory implementation 实现IReadDirectory
22.3.1 (a) The Implementation 实现
22.3.2 (b) The Tests 测试
22.3.3 (c) The Configuration 配置
22.4 Step IV: The Icing on the Cake -- A special Directory Factory 蛋糕上的糖衣 - 一个特殊的目录工厂
CHAPTER 23 AVAILABILITY VIA XML-RPC 经XML-RPC的可用性
23.1 Step I: Creating "Methods" XML-RPC Presentation Components 创建"方法"XML-RPC表现组件
23.2 Step II: Testing 测试
23.3 Step III: Configuring the new Views 配置新的视图
23.4 Step IV: Testing the Features in Action 在动作中测试特性
CHAPTER 24 DEVELOPING NEW SKINS 开发新皮肤
24.1 Step I: Preparation 准备
24.2 Step II: Creating a New Skin 创建一个新皮肤
24.3 Step III: Customizing the Base Templates 自定义基础模版
24.4 Step IV: Adding a Message Board Intro Screen 添加一个Message Board介绍屏幕
24.5 Step V: Viewing a List of all Message Board Posts 察看Message Board所有帖子列表
24.6 Step VI: Adding a Post to the Message Board 向Message Board发一个新贴
24.7 Step VII: Reviewing "pending" Messages 审核"未决"的消息
24.8 Step VIII: View Message Details 察看消息详情
24.9 Step IX: Replies to Messages 回复消息

[PART V 第五部分]
CHAPTER 25 BUILDING AND STORING ANNOTATIONS 建立和存储注解
25.1 Introduction 介绍
25.2 Implementing an Alternative Annotations Mechanism 实现一个可选的注解机制
25.3 Step I: Developing the Interfaces 开发接口
25.4 Step II: The KeeperAnnotations Adapter KeeperAnnotations适配器
25.5 Step III: Unit Testing 单元测试
25.6 Step IV: Configuration of the KeeperAnnotations Component 配置KeeperAnnotations组件
25.7 Step V: Writing Functional Tests and Configuration 编写功能测试和配置
CHAPTER 26 NEW PRINCIPAL-SOURCE PLUG-INS 新的主要来源插件
26.1 Step I: Defining the interface 定义接口
26.2 Step II: Writing the tests 编写测试
26.3 Step III: Implementing the plug-in 实现插件
26.4 Step IV: Registering the Principal Source and Creating basic Views 注册主要来源并创建基本视图
CHAPTER 27 PRINCIPAL ANNOTATIONS 主要注解
27.1 Step I: The Principal Information Interface 主要信息接口
27.2 Step II: The Information Adapter 信息适配器
27.3 Step III: Registering the Components 注册组件
27.4 Step IV: Testing the Adapter 测试适配器
27.5 Step V: Playing with the new Feature 使用新特性
CHAPTER 28 CREATING A NEW BROWSER 创建一个新的浏览器
CHAPTER 29 REGISTRIES WITH GLOBAL UTILITIES 注册全局实用工具
29.1 Introduction 介绍
29.2 Step I: Defining the Interfaces 定义接口
29.3 Step II: Implementing the Utility 实现工具
29.4 Step III: Writing Tests 编写测试
29.5 Step IV: Providing a user-friendly UI 提供一个用户友好的UI
29.6 Step V: Implement ZCML Directives 实现ZCML指令
29.6.1 (a) Declaring the directive schemas 声明指令模型
29.6.2 (b) Implement ZCML directive handlers 实现ZCML指令处理
29.6.3 (c) Writing the meta-ZCML directives 编写元ZCML指令
29.6.4 (d) Test Directives 测试指令
29.7 Step VI: Setting up some Smiley Themes 设置一些表情符
29.8 Step VII: Integrate Smiley Themes into the Message Board 将表情符集成到Message Board中
29.8.1 (a) The Smiley Theme Selection Adapter 表情符选择适配器
29.8.2 (b) Using the Smiley Theme 使用表情符
CHAPTER 30 LOCAL UTILITIES 本地实用工具
30.1 Introduction to Local Utilities 介绍本地实用工具
30.2 Step I: Defining Interfaces 定义接口
30.3 Step II: Implementation 实现
30.4 Step III: Registrations 注册
30.5 Step IV: Views 视图
30.6 Step V: Working with the Local Smiley Theme 使用本地表情符
30.7 Step VI: Writing Tests 编写测试
CHAPTER 31 VOCABULARIES AND RELATED FIELDS/WIDGETS 词汇和相关的字段/窗口部件
31.1 Introduction 介绍
31.2 Step I: The Vocabulary and its Terms 词汇和术语
31.3 Step II: Testing the Vocabulary 测试词汇
31.4 Step III: The Default Item Folder 默认项目目录
CHAPTER 32 EXCEPTION VIEWS 异常视图
32.1 Introduction 介绍
32.2 Step I: Creating the Exception 创建一个异常
32.3 Step II: Providing an Exception View 提供一个异常视图
32.4 Step III: Testing the Exception View 测试异常视图

[PART VI 第六部分]
CHAPTER 33 WRITING NEW ZCML DIRECTIVES 编写新的ZCML指令
33.1 Introduction 介绍
33.2 Step I: Developing the Directive Schema 开发指令模型
33.3 Step II: Implementing the Directive Handler 实现指令处理
33.4 Step III: Writing the Meta-Configuration 写元配置
33.5 Step IV: Testing the Directive 测试指令
CHAPTER 34 IMPLEMENTING A TALES NAMESPACES 实现一个补充名字空间
34.1 Step I: Defining the Namespace Interface 定义名字空间接口
34.2 Step II: Implementing the Namespace 实现名字空间
34.3 Step III: Testing the Namespace 测试名字空间
34.4 Step IV: Wiring the Namspace into Zope 3 将名字空间写入Zope3
34.5 Step VI: Trying the format Namespace 尝试格式化名字空间
CHAPTER 35 CHANGING TRAVERSAL BEHAVIOR 改变阻断行为
35.1 Step I: The Case-Insensitive Folder 案例非敏感文件夹
35.2 Step II: The Traverser 阻断
35.3 Step III: Unit Tests 单元测试
35.4 Step IV: Functional Tests 功能测试
CHAPTER 36 REGISTERING NEW WEBDAV NAMESPACES 注册新的WEBDAV名字空间
36.1 Introduction 介绍
36.2 Step I: Creating the Namespace Schema 创建名字空间模型
36.3 Step II: Implementing the IPhoto to IImage Adapter 将IPhoto实现为IImage适配器
36.4 Step III: Unit-Testing and Configuration 单元测试和配置
36.5 Step IV: Registering the WebDAV schema 注册WEBDAV模型
36.6 Step V: Functional Testing 功能测试
CHAPTER 37 USING TALES OUTSIDE OF PAGE TEMPLATES 在页面模版以外使用TALES
37.1 Introduction 介绍
37.2 The TALES Filesystem Runner TALES文件系统运行器
CHAPTER 38 DEVELOPING A NEW TALES EXPRESSION 开发一个新的TALES表达式
38.1 Step I: Implementing the SQL Expression 实现SQL表达式
38.2 Step II: Preparing and Implementing the tests 准备和实现测试
38.3 Step III: Trying our new expression in Zope 在Zope中尝试我们新的表达式
CHAPTER 39 SPACESUITS - OBJECTS IN HOSTILE ENVIRONEMENTS 太空服-敌对环境的对象
39.1 Getting started . . . 开始
39.2 The Labyrinth Game 迷宫游戏
39.3 Securing the Labyrinth 保护迷宫
CHAPTER 40 THE LIFE OF A REQUEST 一个请求的一生
40.1 What is a Request 什么是请求
40.2 Finding the Origin of the Request 找出请求的来源

[PART VII 第七部分]
CHAPTER 41 WRITING BASIC UNIT TESTS 编写基本的单元测试
41.1 Implementing the Sample Class 实现Sample类
41.2 Writing the Unit Tests 编写单元测试
41.3 Running the Tests 运行测试
CHAPTER 42 DOCTESTS: EXAMPLE-DRIVEN UNIT
CHAPTER 43 WRITING FUNCTIONAL TESTS 编写功能测试
43.1 The Browser Test Case 浏览器测试案例
43.2 Testing "ZPT Page" Views 测试"ZPT 页面"视图
43.3 Running Functional Tests 运行功能测试
CHAPTER 44 CREATING FUNCTIONAL DOCTESTS 创建功能性的DOCTESTS
44.1 Step I: Setting up the Zope 3 Environment 启动Zope3环境
44.2 Step II: Setting up TCP Watch 启动TCP监控
44.3 Step III: Recording a Session 记录一个会话
44.4 Step IV: Creating and Running the Test 创建并运行测试
CHAPTER 45 WRITING TESTS AGAINST INTERFACES 为接口编写测试
45.1 Introduction 介绍
45.2 The ISample Interface, Its Tests, and Its Implementations 测试和实现ISample接口

[PART VIII]
APPENDIX A GLOSSARY OF TERMS
APPENDIX B CREDITS
APPENDIX C ATTRIBUTION-NODERIVS NONCOMMERCIAL LICENSE 1.0
APPENDIX D ZOPE PUBLIC LICENSE (ZPL)
Index