========================
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 (only required for SVN checkouts, not for plain release
  tarballs).

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
---------------------------

To use Kupu on your own Zope objects, 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.
