|
@@ -111,6 +111,8 @@ Type
|
|
procedure SetOnGetAction(const AValue: TGetActionEvent);
|
|
procedure SetOnGetAction(const AValue: TGetActionEvent);
|
|
procedure SetTemplate(const AValue: TFPTemplate);
|
|
procedure SetTemplate(const AValue: TFPTemplate);
|
|
Protected
|
|
Protected
|
|
|
|
+ Function HandleActions(ARequest : TRequest): Boolean; virtual;
|
|
|
|
+ procedure DoOnRequest(ARequest: TRequest; AResponse: TResponse; var AHandled: Boolean); virtual;
|
|
Procedure DoBeforeRequest(ARequest : TRequest); virtual;
|
|
Procedure DoBeforeRequest(ARequest : TRequest); virtual;
|
|
Procedure DoAfterResponse(AResponse : TResponse); virtual;
|
|
Procedure DoAfterResponse(AResponse : TResponse); virtual;
|
|
Procedure GetParam(Const ParamName : String; Out Value : String); virtual; // Called by template
|
|
Procedure GetParam(Const ParamName : String; Out Value : String); virtual; // Called by template
|
|
@@ -360,6 +362,11 @@ begin
|
|
FTemplate.Assign(AValue);
|
|
FTemplate.Assign(AValue);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TCustomFPWebModule.HandleActions(ARequest: TRequest): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=True;
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TCustomFPWebModule.DoBeforeRequest(ARequest : TRequest);
|
|
procedure TCustomFPWebModule.DoBeforeRequest(ARequest : TRequest);
|
|
begin
|
|
begin
|
|
If Assigned(FBeforeRequest) then
|
|
If Assigned(FBeforeRequest) then
|
|
@@ -435,6 +442,13 @@ begin
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
+procedure TCustomFPWebModule.DoOnRequest(ARequest: TRequest; AResponse: TResponse; Var AHandled : Boolean);
|
|
|
|
+
|
|
|
|
+begin
|
|
|
|
+ If Assigned(FOnRequest) then
|
|
|
|
+ FOnRequest(Self,ARequest,AResponse,AHandled);
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TCustomFPWebModule.HandleRequest(ARequest: TRequest; AResponse: TResponse);
|
|
procedure TCustomFPWebModule.HandleRequest(ARequest: TRequest; AResponse: TResponse);
|
|
|
|
|
|
Var
|
|
Var
|
|
@@ -450,8 +464,7 @@ begin
|
|
DoBeforeRequest(ARequest);
|
|
DoBeforeRequest(ARequest);
|
|
B:=False;
|
|
B:=False;
|
|
InitSession(AResponse);
|
|
InitSession(AResponse);
|
|
- If Assigned(FOnRequest) then
|
|
|
|
- FOnRequest(Self,ARequest,AResponse,B);
|
|
|
|
|
|
+ DoOnRequest(ARequest,AResponse,B);
|
|
If B then
|
|
If B then
|
|
begin
|
|
begin
|
|
if not AResponse.ContentSent then
|
|
if not AResponse.ContentSent then
|
|
@@ -460,7 +473,7 @@ begin
|
|
else
|
|
else
|
|
if FTemplate.HasContent then
|
|
if FTemplate.HasContent then
|
|
GetTemplateContent(ARequest,AResponse)
|
|
GetTemplateContent(ARequest,AResponse)
|
|
- else
|
|
|
|
|
|
+ else if HandleActions(ARequest) then
|
|
begin
|
|
begin
|
|
Actions.HandleRequest(ARequest,AResponse,B);
|
|
Actions.HandleRequest(ARequest,AResponse,B);
|
|
FTemplate.Template := '';//if apache mod, then need to clear for next call because it is a webmodule global property,
|
|
FTemplate.Template := '';//if apache mod, then need to clear for next call because it is a webmodule global property,
|
|
@@ -468,7 +481,6 @@ begin
|
|
If Not B then
|
|
If Not B then
|
|
Raise EFPWebError.Create(SErrRequestNotHandled);
|
|
Raise EFPWebError.Create(SErrRequestNotHandled);
|
|
end;
|
|
end;
|
|
-
|
|
|
|
DoAfterResponse(AResponse);
|
|
DoAfterResponse(AResponse);
|
|
UpdateSession(AResponse);
|
|
UpdateSession(AResponse);
|
|
FRequest := Nil;
|
|
FRequest := Nil;
|