PacktLib: Plone 3 Products Development Cookbook

Plone 3 Products Development Cookbook

Credits

About the Authors

About the Reviewers

Preface

Getting Started

Introduction

Installing Python on Linux

Installing Plone on Linux

Installing Plone on Windows

Checking out code from a version controlsystem

Creating a Plone site

Using Development Tools

Introduction

Accessing an IPython powered shell

Taking advantage of an enhanced interactive Python debugger with ipdb

Discovering Zope/Plone APIs and docstrings with DocFinderTab

Opening an online Python shell on Plone using Clouseau

Debugging Zope exceptions with PDBDebug Mode

Applying code changes on-the-fly using plone.reload

Creating Content Types with ArchGenXML

Introduction

Installing ArchGenXML

Configuring ArgoUML

Creating a model

Generating code

Customizing generated code

Installing the product

Automatically installing products in your Zope instance

Prevent Bugs through Testing

Introduction

Working with paster-generated test suites

Creating a test suite with ArchGenXML

Creating doctests with iPython

Zope functional testing

Using Selenium functional tests

Creating a Custom Content Type with Paster

Introduction

Creating an Archetypes product with paster

Adding a content type into a product

Changing the base class in paster content types

Adding fields to a content type

Adding a custom validator to a content type

Modifying the view of a content type with jQuery

Creating Lightweight Content Types

Introduction

Creating a product package structure

Creating a folderish content type

Creating the user interface for Zope 3 content types

Creating content types with Dexterity

Improving Product Performance

Introduction

Installing CacheFu with a policy product

Improving performance by tweaking expensive code

Testing server load and benchmarking our code

Internationalization

Introduction

Adding i18ndude support to ArchGenXML

Installing i18ndude standalone

Using i18ndude

Using Placeless Translation Services for i18n support

Using zope.i18n approach

Overriding others' translations

Using i18n with ArchGenXML

Using i18n with paster-created products

Adding i18n support to any product

Translating content

Setting language options

Adding Security to your Products

Introduction

Creating a new permission

Adding a new role

Adding user groups

Testing security customizations

Protecting operations with permissions

Managing security with workflows

Adding configuration options in Plone control panel

Improving User Interface with KSS

Introduction

Preparing a form to take full advantage of KSS

Changing end user pages with client-side KSS

Submitting data via AJAX

Creating Portlets

Introduction

Creating a portlet package

Customizing a new portlet according to our requirements

Testing portlets

Assigning portlets automatically

Extending Third-Party Products

Introduction

Using skin layers

Overriding Zope 3 components

Customizing Zope 3 browser templates and files

Subscribing to others' events

Using the ZCA to extend a third-party product: Collage

Interacting with other Systems: XML-RPC

Introduction

Creating a configuration form

Registering a local utility

Registering a global utility

Getting our Products ready for Production

Introduction

Installing and configuring an egg repository

Submitting products to an egg repository

Writing a production buildout

Creating a Policy Product

Creating a Policy Product

Index