=======================
 Installing Ulaform H5
=======================

:Contact: horde@lists.horde.org

.. contents:: Contents
.. section-numbering::

This document contains instructions for installing the Ulaform form wizard.

For information on the capabilities and features of Ulaform, see the file
README_ in the top-level directory of the Ulaform distribution.


Prerequisites
=============

To function properly, Ulaform **requires** the following:

1. A working Horde installation.

   Ulaform runs within the `Horde Application Framework`_, a set of common
   tools for web applications written in PHP.  You must install Horde before
   installing Ulaform.

   .. Important:: Ulaform H5 requires version 5.0+ of the Horde Framework -
                  earlier versions of Horde will **not** work.

   .. Important:: Be sure to have completed all of the steps in the
                  `horde/docs/INSTALL`_ file for the Horde Framework before
                  installing Ulaform. Many of Ulaform's prerequisites are also
                  Horde prerequisites. Additionally, many of Ulaform's optional
                  features are configured via the Horde install.

   .. _`Horde Application Framework`: http://www.horde.org/apps/horde

2. SQL support in PHP.

   Ulaform store its data in an SQL database. Build PHP with whichever SQL
   driver you require; see the Horde INSTALL_ file for details.


Installing Ulaform
==================

First follow the instructions in `horde/docs/INSTALL`_ to prepare a PEAR
environment for Horde and install the Horde Framework.

When installing Ulaform through PEAR now, the installer will automatically
install any dependencies of Ulaform too. If you want to install Ulaform with
all optional dependencies, but without the binary PECL packages that need to be
compiled, specify both the ``-a`` and the ``-B`` flag::

   pear install -a -B horde/ulaform-alpha

By default, only the required dependencies will be installed::

   pear install horde/ulaform-alpha

If you want to install Ulaform even with all binary dependencies, you need to
remove the ``-B`` flag. Please note that this might also try to install PHP
extensions through PECL that might need further configuration or activation in
your PHP configuration::

   pear install -a horde/ulaform-alpha


Configuring Ulaform
===================

1. Configuring Ulaform

   You must login to Horde as a Horde Administrator to finish the configuration
   of Ulaform. Use the Horde ``Administration`` menu item to get to the
   administration page, and then click on the ``Configuration`` icon to get the
   configuration page. Select ``Forms`` from the selection list of
   applications. Fill in or change any configuration values as needed. When
   done click on ``Generate Forms Configuration`` to generate the ``conf.php``
   file. If your web server doesn't have write permissions to the Ulaform
   configuration directory or file, it will not be able to write the file. In
   this case, go back to ``Configuration`` and choose one of the other methods
   to create the configuration file ``ulaform/config/conf.php``.

   Documentation on the format and purpose of the other configuration files in
   the ``config/`` directory can be found in each file. You may create
   ``*.local.php`` versions of these files if you wish to customize Ulaform's
   appearance and behavior. See the header of the configuration files for
   details and examples. The defaults will be correct for most sites.

2. Creating the database tables

   Once you finished the configuration in the previous step, you can create all
   database tables by clicking the ``DB schema is out of date.`` link in the
   Ulaform row of the configuration screen.

   Alternatively you creating the Ulaform database tables can be accomplished
   with horde's ``horde-db-migrate`` utility.  If your database is properly
   setup in the Horde configuration, just run the following::

      horde/bin/horde-db-migrate ulaform

3. Testing Ulaform

   Use Ulaform to create, modify, and delete forms. Test at least the
   following:

      - Creating a form
      - Modifying a form
      - Viewing and submitting a form
      - Deleting a form


Sample Usage
============

Ulaform can be embedded internally within Horde in any application which
supports the Horde Blocks API.

Otherwise Ulaform can be called from any web page with the following simple
php code:

   <?php
   include <pathtoulaform> . '/display.php?form_id=2';
   ?>


Obtaining Support
=================

If you encounter problems with Ulaform, help is available!

The Horde Frequently Asked Questions List (FAQ), available on the Web at

  http://wiki.horde.org/FAQ

The Horde Project runs a number of mailing lists, for individual
applications and for issues relating to the project as a whole.
Information, archives, and subscription information can be found at

  http://www.horde.org/community/mail

Lastly, Horde developers, contributors and users may also be found on IRC,
on the channel #horde on the Freenode Network (irc.freenode.net).

Please keep in mind that Ulaform is free software written by volunteers.
For information on reasonable support expectations, please read

  http://www.horde.org/community/support

Thanks for using Ulaform!

The Ulaform team


.. _README: README
.. _INSTALL:
.. _`horde/docs/INSTALL`: ../../horde/docs/INSTALL
.. _`horde/docs/TRANSLATIONS`: ../../horde/docs/TRANSLATIONS
