PacktLib: Professional Plone 4 Development

Professional Plone 4 Development

Credits

Foreword

About the Author

About the Reviewers

www.PacktPub.com

Preface

Getting Ready

Plone in Context

A brief history of Plone

Plone-the-application and Plone-the-framework

Additional considerations when deciding on Plone

The Plone Community, and why you belong there

Summary

Introduction to the Case Study

Background and high-level requirements

Modeling and mockups

Information architecture

Running the project

Summary

The Development Environment

Installers

Glossary of terms

Prerequisites

A minimal buildout

Buildout basics

The development buildout

Learning to help yourself

Summary

Customizing Plone

Basics of Customization

Persistent settings and the ZODB

Using GenericSetup for configuration

Acquisition and skin layers

Overriding Component Architecture components

Customization best practices

Summary

Developing a Site Strategy

Creating a policy package

Updating the buildout

Creating an extension profile

Activating the package

Rebuildout, restart, reapply?

Summary

Security and Workflow

Security primitives

Keeping control with workflow

Installing a custom workflow

Protected and trusted code

Summary

Using Add-ons

Finding and evaluating add-ons

Playing it safe

Installing an add-on

Summary

Creating a Custom Theme

Background

Creating a Diazo theme

Variations on the theming approach

Overriding visual elements

Summary

Developing New Functionality

Nine Core Concepts of Zope Programming

About the examples

Object publishing and traversal

Persistence in the ZODB

Searching for objects using the catalog

Describing functionality with interfaces

Component configuration with ZCML or Grokkers

Component registries using utilities

Modelling component aspects with adapters

Views and other presentation components

Synchronous events

Summary

Custom Content Types

Content-centric design

Choosing a content type framework

Creating a distribution

Using the Dexterity framework

Installation and configuration in the policy package

Using the schema extender

Using portlets

Summary

Standalone Views and Forms

Pages without a specific context

Writing custom forms

Generating forms automatically

Creating a control panel view

The form controller tool

Writing new viewlets

Global template variables and helper views

Functional testing of views

Summary

Relational Databases

Relational databases versus the ZODB

Modeling screenings and reservations

Setting up the database

Database connectivity in Zope

Managing database connections

Working with the database

Adding the user interface

Summary

Users and their Permissions

Defining a membership policy

Collaborative workspaces

The Pluggable Authentication Service

Summary

Dynamic User Interfaces with jQuery

KSS and jQuery in Plone 4

Managing JavaScript resources

Overlays

Background requests and DOM manipulation

Summary

Summary and Potential Enhancements

What we have achieved

Additional functionality

Summary

Real-world Deployments

Zope on the Server

Deployment checklist

Scaling Zope

A deployment buildout using RelStorage

Moving code, configuration, and data to a server

Managing Zope processes

Backups and maintenance

Summary

Setting up a Production Server

Server components

Hardware and operating system concerns

Caching and optimization

Testing and benchmarking

Summary

Authenticating with LDAP or Active Directory

LDAP and Active Directory

Connecting Plone to an LDAP repository

Summary

Looking to the Future

Making future releases

What we have achieved

Where to go next

Summary

Index