Customizing ccPublisher 2

From Creative Commons
Revision as of 13:34, 5 January 2006 by Nathan Yergler (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


ccPublisher 2 has been designed for extensibility and customization by 3rd party developers. There are many ways you can customize the application. This document covers customizing ccPublisher 2 in order to create a new application.

Customizations v. Extensions

The functionality of ccPublisher 2 can be changed in one of two ways: through customization or through extensions. The difference lies in the extent of coding required and in the intended functionality change.

For example, an extension requires minimal coding, and adds functionality that does not change the core application process. An extension might add notification or some other behavior to the application. While extensions may be bundled with an application, by definition they should be able to be distributed independently of a P6 application.

Conversely, a customization of ccPublisher would change or modify the core functionality: what metadata fields are collected, where the files are transmitted to, or what sort of files (items) are collected. Customizations are typically built and packaged independently of ccPublisher 2.

Basic Requirements

The remainder of this document discusses particulars of customizing a P6 Application.

A minimal P6 Application requires the following:

  • app.zcml
  • application bootstrap
  • storage class

app.zcml

app.zcml is the default name of the top-level configuration file. This configuration file describes your application, defines metadata fields, and instantiates storage classes. App.zcml (or whatever you choose to call it) is loaded and parsed by the bootstrap code; if any part of the configuration fails, the application will not load. Fortunately, you can detect most of these situations during the development process.

Bootstrap Code

Storage

Types of Customizations

General Wizard Pages

Storage Providers

Metadata Fields

Item Types