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
|