123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- unit wmusers;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, fpwebdata, extjsjson, extjsxml,
- HTTPDefs, websession, fpHTTP, fpWeb, dbf, db;
- type
- { TFPWebModule1 }
- TFPWebModule1 = class(TFPWebModule)
- Datasource1: TDatasource;
- Dbf1: TDbf;
- ExtJSJSONDataFormatter1: TExtJSJSONDataFormatter;
- ExtJSJSonWebdataInputAdaptor1: TExtJSJSonWebdataInputAdaptor;
- ExtJSXMLDataFormatter1: TExtJSXMLDataFormatter;
- ExtJSXMLWebdataInputAdaptor1: TExtJSXMLWebdataInputAdaptor;
- FPWebDataProvider1: TFPWebDataProvider;
- procedure DataModuleCreate(Sender: TObject);
- procedure DataModuleRequest(Sender: TObject; ARequest: TRequest;
- AResponse: TResponse; var Handled: Boolean);
- private
- { private declarations }
- public
- { public declarations }
- end;
- var
- FPWebModule1: TFPWebModule1;
- implementation
- {$R *.lfm}
- uses dbugintf;
- { TFPWebModule1 }
- procedure TFPWebModule1.DataModuleRequest(Sender: TObject; ARequest: TRequest;
- AResponse: TResponse; var Handled: Boolean);
- Var
- CP : TCustomHTTPDataContentProducer;
- M : TMemoryStream;
- A : TCustomWebDataInputAdaptor;
- PN : String;
- begin
- PN:=ARequest.GetNextPathInfo;
- If ARequest.QueryFields.values['format']='xml' then
- begin
- A:=ExtJSXMLWebdataInputAdaptor1;
- CP:=ExtJSXMLDataFormatter1;
- end
- else
- begin
- A:=ExtJSJSONWebdataInputAdaptor1;
- cp:=ExtJSJSONDataFormatter1;
- end;
- FPWebDataProvider1.Adaptor:=A;
- CP.Adaptor:=A;
- CP.Adaptor.Request:=ARequest;
- CP.Provider:=FPWebDataProvider1;
- M:=TmemoryStream.Create;
- AResponse.ContentStream:=M;
- AResponse.ContentType:=CP.DataContentType;
- CP.GetContent(ARequest,M,Handled);
- M.Position:=0;
- AResponse.SendContent;
- end;
- procedure TFPWebModule1.DataModuleCreate(Sender: TObject);
- begin
- DBF1.TableName:=ExtractFilePath(ParamStr(0))+'users.dbf';
- DBF1.Open;
- With DBF1.FieldByname('ID') do
- ProviderFlags:=ProviderFlags+[pfInKey];
- end;
- initialization
- RegisterHTTPModule('Provider', TFPWebModule1);
- end.
|