Location: PHPKode > scripts > FiForms PHP Classes > README.txt
FiForms PHP classes version 0.9.2
===============================

This is FiForms version 0.9.2. FiForms is a collection of PHP classes to be used
as building blocks for easily creating a web-database. FiForms is not meant to 
provide a finished software product; rather it is an extendable set of class 
libraries to be used in developing a software product. 

The latest version of this software is available at the following web site:

  <http://www.fiforms.org>

More complete documentation is also available on this site at

  <http://www.fiforms.org/doc/Manual.html>
  

Requirements
============

Before you can use FiForms, you must have the following software installed on 
your system:

*   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,
	BSD, etc. 

*   an http webserver (works best on Apache webserver)
            <http://apache.org> 

*   MySQL database server <http://mysql.org> (I'm using MySQL 4.1.x)

*   a PHP interpreter <http://www.php.net> (I'm using PHP 4.3.x)

*   Php.XPath (Required for FiReportsXML)
        <http://sourceforge.net/projects/phpxpath/> (I'm using 3.4 stable)
	Just copy XPath.class.php into your PHP path

*   XSLTProc (required if you will be using FiReportsXML with server-side
	      transformation)
	<http://xmlsoft.org/XSLT/>
	Install libxslt on your operating system and configure the path
	to XSLTProc in FiForms_global.inc.php

*   A Web Browser (On each client machine)
      Recommended: Mozilla Firefox Web Browser
             <http://mozilla.org/>

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

Additionally, FiChecks requires the following:

*   PHP-Pdf libraries
	<http://sourceforge.net/projects/pdf-php> (I'm using version 0.09)
	
*   GnuMICR (or some MICR font)
	<http://lager.dyndns.org/GnuMICR/>

*   A PDF Reader on the client such as Adobe Acrobat Reader or KGhostView
	<www.adobe.com/products/acrobat/readstep.html>

Installation
============

Unzip the contents of the file FiForms-0.9.2.zip into a new directory (if
you have not already done so). Place all of the files in the directory
"FiForms-includes" in your PHP include path. By default, FiForms expects
to be placed in /FiForms under the DocumentRoot, with the scripts at
/FiForms/scripts and includes at /FiForms/FiForms-includes, etc. You may
opt for a different configuration; simply update the paths in 
FiForms_global.inc.php accordingly.

Take a look at FiForms_global.inc.php. This file contains several global
constants for configuring FiForms. Modify these as needed for your webserver 
and software configuration.

Now you should be ready to include FiForms objects in your PHP scripts and
generate FiReports.

Take a look at the example scripts 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 scripts. A complete documentation of all FiForms 
classes is included with the distribution, and is also available online:

  <http://www.fiforms.org/doc/Manual.html>

NOTE: The original purpose of the FiForms project was to allow a limited 
number of relatively trusted users to view and/or modify data in a database.
By default, FiForms requires users to log in using HTTP authentication.
It then passes the username and password supplied by the user to the MySQL 
database. From this point, the user has all the permissions he/she would have
if he/she was logged into the database from the localhost. FiReports contains 
an option (off by default) that allows users to upload and execute custom 
queries through the file FiForms/scripts/generate.php. If this feature is not 
desired, leave this script disabled in FiForms_global.inc.php. Be sure to
consider the security implications before enabling this feature!

Authors
=======

Founding Author: 
    Daniel McFeeters <databases at alltel dot net>

Contributing Authors: 
    None Yet

Credits
    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
    Daniel Kopp
        Designing (Previous) Logo
	(New FiForms Solutions Logo designed by Daniel McFeeters)
    Kevin Burk
        For (indirectly) challenging me to write this
	in the first place. 


Contributing
============

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

* Record changes are not automatically saved on record navigation.
  
  Work around: 
      Always click UPDATE RECORD before moving to another record
  Or
      Add javascript to automatically update the record on any action
      (This may be the default action in future version of FiForms)

* There is currently very little error checking, so a minor error in a form
  definition or data could generate a PHP error and/or a cryptic message
  sent to the user

To Do
=====

Top Priority:
    
*   Documentation!!!
    We need a complete, user-friendly documentation for all features
    of FiForms, as well as some step-by-step tutorials for those of 
    us who aren't professional hackers. 

*   Complete Core Libraries
        Add Necessary Extensions to provide all needed functionality
	Create modules for abstraction of database access and 
	authentication
	Clean up / Document Existing Code
	Add error checking functionality so that user's receive sensible
	    error messages at appropriate times

*   Write an extension that would read form definitions in XML format.
	UPDATE: This is work-in-progress.

*   Add record locking and user/request tracking functionality

*   Improve ability to search and edit data in the same FiForm

To Do Sometime:

*   Write a web-based GUI to interactively design FiForms and save them
    in XML and/or PHP
*   Expand the GUI to allow the user to create the MySQL database, define
    relationships, and simultaneously develop FiForms to search, modify, 
    and report data
*   Add support for database types other than MySQL


License
=======

    Copyright (C) 2003  Daniel McFeeters

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser 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
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser 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
Return current item: FiForms PHP Classes