FiForms Framework 1.1
This is the README for the FiForms Framework version 1.1.
The FiForms Framework enables developers to build web/database
applications rapidly in XML. Using the unique FiForms XML
Application Markup, a developer can build a complete database
application without writing a single line of PHP code.
FiForms started as a collection of PHP classes for creating web-based data
entry screens for a MySQL database. It has since grown into a collection
of projects addressing many aspects of web-database development needs.
The FiForms framework currently includes the FiForms data-entry classes
and the FiReports XML report generation scripts. These libraries are
combined scripts which utilize the new XML capabilities of PHP version 5
to create a framework for developing web applications completely in XML.
The latest version of this software is available at the following web site:
You can find documentation and setup instructions for the FiForms Framework
on the wiki:
Documentation for XML schemas can be found at
To get FiForms up-and-running quickly, we suggest you follow the instructions
outline on the wiki page http://wiki.fiforms.org/index.php/Installation
Before you can use FiForms, you must have the following software installed on
* an operating system (of course)
FiForms should work on any operating system that Apache and PHP
will run on. Most of the development and testing of FiForms has
been done on Linux, but it should also run under Windows, OS X,
* an http webserver (works best on Apache webserver)
* MySQL database server <http://mysql.org>
FiForms works well with MySQL 4.0, 4.1, and 5.0. It should also
work with other versions.
* a PHP interpreter <http://www.php.net> FiForms requires PHP 5.x.
* Php.XPath (this is included with FiForms if you are installing using
a pre-built package or installer)
* XSLTProc (required if you will be using FiReportsXML with server-side
transformation, and you are not using PHP_XSLT)
Install libxslt on your operating system and configure the path
to XSLTProc in FiForms_global.inc.php
Note to windows users:
A package containing all the programs you need is available at
This is a compliation of binaries available on Igor Zlatkovic' website:
http://www.zlatkovic.com/libxml.en.html You can, alternativly, download
libxml2, libxslt, iconv, and zlib from his website yourself. Extract
each zip file and copy the contents of each bin directory into
a single directory. Then point FIFORMS_XSLTPROC to the path you set.
For example, if you copied the files to c:/libxml2, put this line
* A Web Browser (On each client machine)
Recommended: Mozilla Firefox Web Browser
Note: FiForms Forms should work fine in any browser
(Firefox, Lynx, IE, etc). Depending on the way you configure
the FiReport generator, you may require a browser that
supports XML and XSLT (Firefox and IE 6 both do). This is the
case if FiReports is configured for client-side transformation.
If it is configured for server-side transformation, you will
have to have xsltproc installed on the server but any browser
will work on the client (including Konqueror, Lynx, and older
version of IE which don't support XML).
* Jaxe or your favorite XML editor (http://jaxe.sourceforge.net/)
This software can save you a lot of time in creating FiForms XML
applications. Jaxe configuration files for the FiForms XML schema
are included in the package under example/jaxe. Simply copy these
into your jaxe/config directory to start using them.
Unzip the contents of the archive file into a new directory (if
you have not already done so). We recommend placing FiForms
outside of the DocumentRoot of your webserver, and configuring
an alias to the scripts/ directory of FiForms in your
Once FiForms is installed, direct your browser to the scripts path
in the new installation, for example, http://localhost/scripts/
or http://localhost/FiForms/scripts/ . You should be greeted
with a configuration screen, where you can set parameters.
Follow the on-screen instructions to complete the installation.
Now you should be ready to start creating FiForms XML applications.
Take a look at the examples included with this distribution. This
will show you how you can make some simple FiForms. Before you can use the
sample scripts, you will need to set up the MySQL database FiForms_sample. Use
the included FiForms-sample.sql script to set up the database with the
necessary tables. Of course, there are a lot more features in FiForms than are
documented in the sample applications; please refer to the wiki and XML
FiForms XML Application
Create a new directory structure under the apps directory in FiForms. The top
level directory should be the name of your app. This directory should contain
three subdirectories named forms, menus, and reports. All directory names are
case-sensitive. "Register" the application by creating the appinfo.xml
file in the application root. Create a Main Menu called main.xml in the menus
directory. Place form and report definitions in their respective folders.
References from the menu are relative to the base of their respective folders;
i.e. you do not need to specify path in the href when linking to forms and
reports from your menu. See the example application for more ideas.
FiForms PHP Application
Create your PHP scripts anywhere you want, but make sure the scripts are able
to find the include files. This can be done using .htaccess files similar to
the one in the example directory, or by adding the FiForms_includes directory
to your include_path in php.ini.
For both XML Applications and PHP Applications, please make use of the example
files included with this distribution.
Note: this method of creating applications is no longer recommended; please
consider creating your new applications in XML.
Daniel McFeeters <databases at alltel dot net>
Kristina Reeve <covrainbow at yahoo dot com>
D. Kevin Burk <dkburk at gmail dot com>
Jared Colangelo <pilotpencil at users dot sourceforge dot net>
Development assistance, consultation, and inspiration to
keep this project going.
The Somerset Oil Refinery <http://somersetoil.com>
Supporting development, testing software
Jim McFeeters <http://scc-it.serveftp.net>
Teaching me programming, and helping with suggestions
in several features of FiForms
D. Kevin Burk
For (indirectly) challenging me to write this
in the first place.
If you would like to contribute to this project, or if you have any questions
or suggestions, send an e-mail to Daniel McFeeters <databases at alltel dot net>
Bugs and To-Do List
See the Wiki http://wiki.fiforms.org/
Copyright (C) 2003-2008 Daniel McFeeters
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA