|
Contents |
10 |
|
|
Part I Beginner |
16 |
|
|
1 Introduction |
18 |
|
|
1.1 Is this book for me? |
18 |
|
|
1.2 What is Zope? |
18 |
|
|
1.3 The history of Zope |
21 |
|
|
1.4 The Python Programming Language |
21 |
|
|
1.5 About the examples |
23 |
|
|
2 Installing Zope |
28 |
|
|
2.1 Requirements |
28 |
|
|
2.2 Download, compilation and installation |
30 |
|
|
2.3 Setting up a Zope instance |
31 |
|
|
3 The Zope 3 Component Architecture |
40 |
|
|
3.1 Introducing components |
40 |
|
|
3.2 Interfaces |
42 |
|
|
3.3 Content components |
44 |
|
|
3.4 Views |
45 |
|
|
3.5 Adapters |
47 |
|
|
3.6 Utilities |
48 |
|
|
3.7 Services |
49 |
|
|
3.8 Configuring components |
50 |
|
|
3.9 Security |
51 |
|
|
4 Interfaces |
56 |
|
|
4.1 Interface jargon |
56 |
|
|
4.2 Defining interfaces |
57 |
|
|
4.3 Declaring that an object provides an interface |
60 |
|
|
4.4 Verifying implementations |
63 |
|
|
4.5 Schemas |
64 |
|
|
5 Content Components |
70 |
|
|
5.1 Content types |
70 |
|
|
5.2 Schema-based content |
74 |
|
|
5.3 Configuration |
78 |
|
|
5.4 Advanced: Factories |
80 |
|
|
6 Persistency |
86 |
|
|
6.1 The problem of object storage |
86 |
|
|
6.2 Making persistent objects |
87 |
|
|
6.3 Rules of persistency |
90 |
|
|
7 Presenting components on the web |
94 |
|
|
7.1 Schema-based browser views |
94 |
|
|
7.2 Page Templates |
97 |
|
|
7.3 Simple view Page Template |
105 |
|
|
7.4 Advanced: Customizing automatically generated forms |
109 |
|
|
Part II Intermediate |
118 |
|
|
8 Customizing a site’s layout |
120 |
|
|
8.1 Layers and skins |
120 |
|
|
8.2 Page Template macros |
123 |
|
|
8.3 Stylesheets and other resources |
131 |
|
|
9 Internationalization |
136 |
|
|
9.1 Overview |
136 |
|
|
9.2 Message IDs and translation domains |
138 |
|
|
9.3 Internationalizing an application |
142 |
|
|
9.4 Message catalogs |
152 |
|
|
9.5 Advanced: Localization |
156 |
|
|
10 Adapters |
162 |
|
|
10.1 Size |
162 |
|
|
10.2 File representation |
166 |
|
|
10.3 Customizing an existing adapter |
172 |
|
|
11 Automated testing |
176 |
|
|
11.1 Introduction |
176 |
|
|
11.2 Unit tests |
178 |
|
|
11.3 Doctests |
182 |
|
|
11.4 Integration tests |
187 |
|
|
11.5 Running tests |
195 |
|
|
12 Views |
200 |
|
|
12.1 Enhanced browser pages |
200 |
|
|
12.2 Complex views implemented in Python |
203 |
|
|
12.3 Browser menus |
212 |
|
|
12.4 Other HTTP protocols |
216 |
|
|
13 Metadata |
226 |
|
|
13.1 Annotations |
226 |
|
|
13.2 The Dublin Core |
230 |
|
|
13.3 Custom metadata |
238 |
|
|
14 Containers |
248 |
|
|
14.1 Containers, containment, and location |
248 |
|
|
14.2 Constraints and preconditions |
254 |
|
|
14.3 Names of contained objects |
260 |
|
|
14.4 File representation |
265 |
|
|
Part III Expert |
270 |
|
|
15 Events |
272 |
|
|
15.1 Introduction |
272 |
|
|
15.2 Object events |
274 |
|
|
15.3 Sending emails for event notification |
281 |
|
|
16 Vocabularies |
294 |
|
|
16.1 Simple choices |
294 |
|
|
16.2 Theory and applications of vocabularies |
295 |
|
|
16.3 Using vocabularies |
301 |
|
|
17 Sites |
306 |
|
|
17.1 Introduction |
306 |
|
|
17.2 Local utilities |
310 |
|
|
17.3 Virtual hosting |
318 |
|
|
18 Security |
324 |
|
|
18.1 Overview |
324 |
|
|
18.2 Permissions |
330 |
|
|
18.3 Roles |
332 |
|
|
19 Authentication and user management |
338 |
|
|
19.1 Credentials |
338 |
|
|
19.2 Managing principals |
345 |
|
|
19.3 Principal metadata |
357 |
|
|
Part IV Appendices |
364 |
|
|
1 ZAPI Reference |
366 |
|
|
2 ZCML Reference |
406 |
|
|
References |
472 |
|
|
Index |
478 |
|