Book Details

ISBN 139781849514422

Paperback516 pages

Book Description

Aspeli’s years of experience in Plone development and project management are combined with an approachable writing style to create an engaging and highly-informative guide to working with Plone. Professional Plone 4 Development stands as an excellent resource for developers of all levels.

- Eric Steele, Plone Release Manager

Plone is a web content management system that features among the top 2% of open source projects and is used by more than 300 solution providers in 57 countries. Its powerful workflow system, outstanding security track record, friendly user interface, elegant development model and vibrant community makes Plone a popular choice for building content-centric applications. By customising and extending the base platform, integrators can build unique solutions tailored to specific projects quickly and easily.

If you want to create your own web applications and advanced websites using Plone 4, Professional Plone 4 Development is the book you need.

The first edition of this book remains one of the most widely read and recommended Plone books. This second edition is completely revised and up-to-date for Plone 4.1, covering new topics such as Dexterity, Diazo, jQuery and z3c.form, as well as improved ways of working with existing technologies such as Buildout, SQLAlchemy and the Pluggable Authentication Service. It retains the writing style and comprehensive approach that made the first edition so popular.

Built around a realistic case study, Professional Plone 4 Development will take you from an understanding of Plone’s central concepts, through basic customization, theming, and custom development, to deployment and optimization.

The book is divided into four sections:

First, you will be introduced to Plone and the case study, and learn how to set up a development environment.

The second section covers basic customization, including theming a Plone site using Diazo.

The third section focuses on custom development – building new content types and user interfaces, customizing security and integrating with external databases.

The final chapters cover deployment and performance optimization.

Table of Contents

Chapter 1: 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

Chapter 2: Introduction to the Case Study

Background and high-level requirements

Modeling and mockups

Information architecture

Running the project

Summary

Chapter 3: The Development Environment

Installers

Glossary of terms

Prerequisites

A minimal buildout

Buildout basics

The development buildout

Learning to help yourself

Summary

Chapter 4: Basics of Customization

Persistent settings and the ZODB

Using GenericSetup for configuration

Acquisition and skin layers

Overriding Component Architecture components

Customization best practices

Summary

Chapter 5: Developing a Site Strategy

Creating a policy package

Updating the buildout

Creating an extension profile

Activating the package

Rebuildout, restart, reapply?

Summary

Chapter 6: Security and Workflow

Security primitives

Keeping control with workflow

Installing a custom workflow

Protected and trusted code

Summary

Chapter 7: Using Add-ons

Finding and evaluating add-ons

Playing it safe

Installing an add-on

Summary

Chapter 8: Creating a Custom Theme

Background

Creating a Diazo theme

Variations on the theming approach

Overriding visual elements

Summary

Chapter 9: 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

Chapter 10: 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

Chapter 11: 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

Chapter 12: 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

Chapter 13: Users and their Permissions

Defining a membership policy

Collaborative workspaces

The Pluggable Authentication Service

Summary

Chapter 14: Dynamic User Interfaces with jQuery

KSS and jQuery in Plone 4

Managing JavaScript resources

Overlays

Background requests and DOM manipulation

Summary

Chapter 15: Summary and Potential Enhancements

What we have achieved

Additional functionality

Summary

Chapter 16: 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

Chapter 17: Setting up a Production Server

Server components

Hardware and operating system concerns

Caching and optimization

Testing and benchmarking

Summary

Chapter 18: Authenticating with LDAP or Active Directory

LDAP and Active Directory

Connecting Plone to an LDAP repository

Summary

Chapter 19: Looking to the Future

Making future releases

What we have achieved

Where to go next

Summary

What You Will Learn

Setting up a productive development environment

Basics of Plone customisation and extension

Theming a Plone site using Diazo and plone.app.theming

Core concepts that underpin the workings of Zope and Plone

Creating custom content types using Dexterity

Building views and forms, including the use of z3c.form

Integrating with relational databases using SQLAlchemy

Customising the management of users and groups with PAS

Creating rich user interfaces with jQuery and jQuery Tools

Deploying and optimizing a production-ready Plone server

Integrating with LDAP and Active Directory

Authors

Martin Aspeli

Martin Aspeli is an experienced Plone consultant and a prolific Plone contributor. He served on the Framework Team for Plone 3.0, and is responsible for many new features such as the improved portlets infrastructure, the “content rules” engine, and several R&D efforts relating to Plone 4.0. He is a former leader of the Plone Documentation Team and has written a number of well-received tutorials available on plone.org. He is also the author of Professional Plone Development and was recognized in 2008 by Packt Publishing as one of the “Most Valuable People” in Open source Content Management Systems.

Alerts & Offers

Series & Level

We understand your time is important. Uniquely amongst the major publishers, we seek to develop and publish the broadest range of learning and information products on each technology. Every Packt product delivers a specific learning pathway, broadly defined by the Series type. This structured approach enables you to select the pathway which best suits your knowledge level, learning style and task objectives.

Learning

As a new user, these step-by-step tutorial guides will give you all the practical skills necessary to become competent and efficient.

Beginner's Guide

Friendly, informal tutorials that provide a practical introduction using examples, activities, and challenges.

Essentials

Fast paced, concentrated introductions showing the quickest way to put the tool to work in the real world.

Cookbook

A collection of practical self-contained recipes that all users of the technology will find useful for building more powerful and reliable systems.

Blueprints

Guides you through the most common types of project you'll encounter, giving you end-to-end guidance on how to build your specific solution quickly and reliably.

Mastering

Take your skills to the next level with advanced tutorials that will give you confidence to master the tool's most powerful features.

Starting

Accessible to readers adopting the topic, these titles get you into the tool or technology so that you can become an effective user.

Progressing

Building on core skills you already have, these titles share solutions and expertise so you become a highly productive power user.