webmodule.pas 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. unit webmodule;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. SysUtils, Classes, httpdefs, fpHTTP, fpWeb;
  6. type
  7. { TFPWebModule1 }
  8. TFPWebModule1 = class(TFPWebModule)
  9. procedure func1callRequest(Sender: TObject; ARequest: TRequest;
  10. AResponse: TResponse; var Handled: Boolean);
  11. private
  12. { private declarations }
  13. procedure func1callReplaceTag(Sender: TObject; const TagString:String;
  14. TagParams: TStringList; Out ReplaceText: String);
  15. public
  16. { public declarations }
  17. end;
  18. var
  19. FPWebModule1: TFPWebModule1;
  20. implementation
  21. {$R *.lfm}
  22. { TFPWebModule1 }
  23. procedure TFPWebModule1.func1callRequest(Sender: TObject; ARequest: TRequest;
  24. AResponse: TResponse; var Handled: Boolean);
  25. begin
  26. //ModuleTemplate is a web module global property
  27. //To use the Template propery of the current web action (which is visible in
  28. //the object inspector for every Action), use
  29. //(Sender as TFPWebAction).Template.FileName := 'mytemplate1.html'; and so on.
  30. ModuleTemplate.FileName := 'mytemplate1.html';//best to use full path here
  31. ModuleTemplate.AllowTagParams := true;
  32. ModuleTemplate.OnReplaceTag := @func1callReplaceTag;
  33. AResponse.Content := ModuleTemplate.GetContent;
  34. Handled := true;
  35. end;
  36. procedure TFPWebModule1.func1callReplaceTag(Sender: TObject; const TagString:
  37. String; TagParams: TStringList; Out ReplaceText: String);
  38. begin
  39. if AnsiCompareText(TagString, 'TagName1') = 0 then
  40. begin
  41. ReplaceText := 'Here I am from the web module!';
  42. end else begin
  43. //Not found value for tag -> TagString
  44. ReplaceText := 'Template tag {' + TagString + '} is not implemented yet.';
  45. end;
  46. end;
  47. initialization
  48. RegisterHTTPModule('TFPWebModule1', TFPWebModule1);
  49. end.