Browse Source

* Make FPWebModule more extensible

git-svn-id: trunk@38398 -
michael 7 years ago
parent
commit
cf07d30bfd
1 changed files with 24 additions and 3 deletions
  1. 24 3
      packages/fcl-web/src/base/fpweb.pp

+ 24 - 3
packages/fcl-web/src/base/fpweb.pp

@@ -118,6 +118,10 @@ Type
     procedure SetOnGetAction(const AValue: TGetActionEvent);
     procedure SetOnGetAction(const AValue: TGetActionEvent);
     procedure SetTemplate(const AValue: TFPTemplate);
     procedure SetTemplate(const AValue: TFPTemplate);
   Protected
   Protected
+    // Override these 3 if you want to have customized versions of the appropriate properties...
+    function CreateTemplateVars: TTemplateVars; virtual;
+    function CreateTemplate: TFPTemplate; virtual;
+    function CreateActions: TFPWebActions; virtual;
     Function HandleActions(ARequest : TRequest): Boolean; virtual;
     Function HandleActions(ARequest : TRequest): Boolean; virtual;
     procedure DoOnRequest(ARequest: TRequest; AResponse: TResponse; var AHandled: Boolean); virtual;
     procedure DoOnRequest(ARequest: TRequest; AResponse: TResponse; var AHandled: Boolean); virtual;
     Procedure DoBeforeRequest(ARequest : TRequest); virtual;
     Procedure DoBeforeRequest(ARequest : TRequest); virtual;
@@ -435,9 +439,9 @@ end;
 constructor TCustomFPWebModule.CreateNew(AOwner: TComponent; CreateMode : Integer);
 constructor TCustomFPWebModule.CreateNew(AOwner: TComponent; CreateMode : Integer);
 begin
 begin
   inherited;
   inherited;
-  FActions:=TFPWebActions.Create(TFPWebAction);
-  FTemplate:=TFPWebTemplate.Create(Self);
-  FTemplateVars:=TTemplateVars.Create(TTemplateVar);
+  FActions:=CreateActions;
+  FTemplate:=CreateTemplate;
+  FTemplateVars:=CreateTemplateVars
 end;
 end;
 
 
 destructor TCustomFPWebModule.Destroy;
 destructor TCustomFPWebModule.Destroy;
@@ -448,6 +452,23 @@ begin
   inherited Destroy;
   inherited Destroy;
 end;
 end;
 
 
+Function TCustomFPWebModule.CreateTemplateVars : TTemplateVars;
+
+begin
+  Result:=TTemplateVars.Create(TTemplateVar);
+end;
+
+Function TCustomFPWebModule.CreateTemplate : TFPTemplate;
+
+begin
+  Result:=TFPWebTemplate.Create(Self);
+end;
+
+Function TCustomFPWebModule.CreateActions : TFPWebActions;
+
+begin
+  Result:=TFPWebActions.Create(TFPWebAction);
+end;
 
 
 procedure TCustomFPWebModule.DoOnRequest(ARequest: TRequest; AResponse: TResponse; Var AHandled : Boolean);
 procedure TCustomFPWebModule.DoOnRequest(ARequest: TRequest; AResponse: TResponse; Var AHandled : Boolean);