peter d9d2f3a461 Merged revisions 9027,9033,9035,9059,9074,9076-9082,9084,9086,9088-9090,9096,9103,9108,9114,9132-9133,9136-9138,9151,9169,9171,9177,9185,9188,9190-9192,9211,9214,9236-9238,9242,9244,9260,9262-9263,9266-9272,9276-9278,9295,9307-9311,9317-9319,9322,9324,9337,9340,9343-9344,9354,9356 via svnmerge from 18 yıl önce
..
README f7fc19de6b Merged revisions 7043-7044,7049-7050 via svnmerge from 18 yıl önce
custcgi.pp d9d2f3a461 Merged revisions 9027,9033,9035,9059,9074,9076-9082,9084,9086,9088-9090,9096,9103,9108,9114,9132-9133,9136-9138,9151,9169,9171,9177,9185,9188,9190-9192,9211,9214,9236-9238,9242,9244,9260,9262-9263,9266-9272,9276-9278,9295,9307-9311,9317-9319,9322,9324,9337,9340,9343-9344,9354,9356 via svnmerge from 18 yıl önce
fpapache.pp f7fc19de6b Merged revisions 7043-7044,7049-7050 via svnmerge from 18 yıl önce
fpcgi.pp 206c702767 Merged revisions 7434,7478 via svnmerge from 18 yıl önce
fpdatasetform.pp d9d2f3a461 Merged revisions 9027,9033,9035,9059,9074,9076-9082,9084,9086,9088-9090,9096,9103,9108,9114,9132-9133,9136-9138,9151,9169,9171,9177,9185,9188,9190-9192,9211,9214,9236-9238,9242,9244,9260,9262-9263,9266-9272,9276-9278,9295,9307-9311,9317-9319,9322,9324,9337,9340,9343-9344,9354,9356 via svnmerge from 18 yıl önce
fphtml.pp 6b9822cce3 Merged revisions 8520-8521,8535-8537,8539-8546,8554,8560,8571-8572,8574-8576,8581-8587,8590,8593-8594,8596,8600,8605,8607,8625,8630-8638,8640-8641,8647 via svnmerge from 18 yıl önce
fphttp.pp a4717b59b2 Merged revisions 7364,7380,7765,7939,7955,8023-8024,8038,8062,8077,8103-8106,8153,8167-8169,8173,8183-8185,8221,8263,8293,8343,8346,8348,8355-8356,8436-8437 via svnmerge from 18 yıl önce
fptemplate.pp 7c65340ff1 Merged revisions 6721,6734,6747,6758-6760,6763-6764,6766,6768,6780,6788-6792,6801,6837,6839-6841,6845,6854,6870,6876-6878 via svnmerge from 18 yıl önce
fpweb.pp d9d2f3a461 Merged revisions 9027,9033,9035,9059,9074,9076-9082,9084,9086,9088-9090,9096,9103,9108,9114,9132-9133,9136-9138,9151,9169,9171,9177,9185,9188,9190-9192,9211,9214,9236-9238,9242,9244,9260,9262-9263,9266-9272,9276-9278,9295,9307-9311,9317-9319,9322,9324,9337,9340,9343-9344,9354,9356 via svnmerge from 18 yıl önce
httpdefs.pp f7fc19de6b Merged revisions 7043-7044,7049-7050 via svnmerge from 18 yıl önce
websession.pp 6b9822cce3 Merged revisions 8520-8521,8535-8537,8539-8546,8554,8560,8571-8572,8574-8576,8581-8587,8590,8593-8594,8596,8600,8605,8607,8625,8630-8638,8640-8641,8647 via svnmerge from 18 yıl önce
webutil.pp f7fc19de6b Merged revisions 7043-7044,7049-7050 via svnmerge from 18 yıl önce

README

This is the beginning of a server side web system for FPC.
Although it is non-visual, it is geared towards use in Lazarus.

Architecture:

httpdefs
--------
contains the basic HTTP system definitions:
header field names
TCookie(s):
collection with cookies in web request
TUploadedFile(s):
collection with uploaded files in request
THTTPHeader:
Class describes HTTP Request/Response headers.
it has properties for all possible HTTP headers, including cookies
TRequest:
Descendent of THTTPHeader, describes client request.
Contains uploaded files.
TResponse:
describes the web server response. Includes headers and contents.
TCustomSession:
Base for all session components.

fphttp:
-------
Basic web system components/classes

TCustomHTTPModule:
Abstract TDataModule descendant, which processes a webrequest
and prepares a response.
TModuleFactory/TModuleItem:
Module registration and creation system.
TCustomWebAction(s):
Webactions.
RegisterHTTPModule():
routine registers a module with the web system.
THTTPContentProducer :
abstract HTTP producer component.

The idea is that the URL relative to the server is taken and parsed as
follows
http://www.server.org/Path1/Path2

Path1 determines which module in the system is created to handle the
request. (the factory is queried)
Path2 determines which web action inside the module is used to handle the
request. (implemented in TWebModule, see fpweb)

websession
----------
Implements basic session support.

TSessionHTTPModule:
TCustomHTTPModule descendent with session support.
TIniWebSession:
TCustomSession descendent which stores session variables in inifiles.
TFPWebSession:
TIniWebSession descendent for use in fpweb. Uses cookies to store session info.
GetDefaultSession() :
returns default session object.

fptemplate
----------
Unit which implements template support.

TTemplateParser:
Template parse object. Does the actual parsing and replacing. Delimiters
are configurable. Standard variables can be specified, callbacks for unknown
values can be set.

TFPCustomTemplate:
TPersistent for use in components. Allows properties to configure the
TTemplateParser. Supports streams, template and template files.

fpweb
-----
Actual usable implementation of TCustomHTTPModule.

TFPWebAction(s):
Web actions with template support.
TCustomFPWebModule:
Descends from TSessionHTTPModule, implements WebActions and has template support.
TFPWebModule:
published TCustomFPWebModule properties for use in Lazarus.

fphtml
------
This creates web modules specialized in creating HTML content.

THTMLContentProducer:
Descendent of THTTPContentProducer which produces HTML
THTMLCustomDatasetContentProducer:
Descendent of THTTPContentProducer which produces HTML from datasets.
THTMLDatasetContentProducer:
Descendent of THTMLCustomDatasetContentProducer which publishes some
properties.
THTMLSelectProducer:
Produces a combo box.
THTMLDatasetSelectProducer
Produces a combo box bases on values in a dataset.
TCustomHTMLModule:
TCustomHTTPModule descendent which produces HTML content only.

Note that classes for HTML document creation come from package fcl-xml.

fpdatasetform
-------------

This contains classes which allow to create complicated HTML/forms
based on a TDataset.

THTMLDatasetFormProducer
Creates an edit form for a TDataset record.
Complicated table layouts are possible.

THTMLDatasetFormGridProducer
Creates a grid with data from a TDataset
Complicated table formatting is possible.

custcgi:
--------
CGI application base class. It knows nothing of the fp
HTTP module system.

TCustomCGIApplication :
TCustomApplication descendent which handles a CGI request.
No instance of this class is created, this is done in fpcgi.

TCGIRequest:
TRequest descendent which retrieves content from the CGI
environment.

TCGIResponse:
TResponse descendent which returns content to the CGI environment.

fpcgi:
------
Standard CGI application instance.

TCGIApplication:
TCustomCGIApplication descendent which uses the fpWeb system
to create a TCustomHTTPModuleClass to handle the request.

It contains an Application instance which handles everything.

fpApache:
---------
Apache Module support.

TCustomApacheApplication:
Uses fpweb to create TCustomHTTPModuleClass instances to
handle the request.