========================
Installing Kupu on Zope2
========================

Requirements
-------------

o Zope 2.5 or higher, Zope 2.7 recommended.

o FileSystemSite product, version 1.3 or higher, available at
  http://zope.org/Members/philikon/FileSystemSite.

o An XSLT processor with XInclude support, such as xsltproc from
  Gnome's libxml/libxslt.

Installation
------------

Drop the 'kupu' directory into your instance home's Products
directory.

Kupu provides a sample integration in the 'zope2' directory based on
ZPT macros. In order to use it, you need to generate the ZPT template
called 'kupumacros.html' by typing:

  $ make zope2macros

Note: this is only required if you use a Subversion checkout of Kupu, the
template will be available pre-built in the release tarballs.

Now restart your Zope instance

Overview
--------

Kupu mainly consists of several directories representing integration
implementations. It is most convenient, to simply use the 'default'
implementation as a filesystem-based layer in Zope. The editor
application itself is a combination of ECMAScripts and markup
necessary for certain features.

In order to use Kupu in your custom Zope2 application, you will have
to make these filesystem-based ZPT macros available to your ZODB-based
Page Templates. The easiest way is to use the zope2 integration
package using the FileSystemSite product. It can be downloaded at
http://zope.org/Members/philikon/FileSystemSite.

Once you have installed FileSystemSite and Kupu in your Products
directory, you will see a new addable meta type called 'kupu
editor'. Add this one to the top-most folder of your Zope2
application. A common id would be 'kupu'. If you look inside the
object you just created, you will see that it provides all
filesystem-based page templates and ECMAScript files to the ZODB.

You can now create a page template and use the macro defined in
'kupumacros.html'.

Using the kupu editor macro
---------------------------

Typically you want to use the editor macro in your own Page
Template. First, create an 'kupu editor' object at the top of your
folder hierarchy and give it an id, e.g. 'kupu'. Then, create a page
template and make use of the macros and slots provided by
kupumacros.html. Depending on whether you have further customized the
provided implementation or not, these are:

  - macro 'head' provides the necessary markup for the HTML header,
    such as links to CSS and JavaScript includes.

  - macro 'fulleditor' provides Kupu's full editor, including toolbar
    and toolboxes. The slot 'editorframe' can be filled with the
    iframe element in case its 'src' attribute needs to change.

Differences to Epoz
-------------------

Kupu has a totally different approach than Epoz. While Epoz provides a
global python function called 'Epoz' that was callable from Python
Script, DTML and ZPT, we have done away with the triple-code
generation in Kupu.
