webmodule.pas 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. var
  26. S : String;
  27. begin
  28. //ModuleTemplate is a web module global property
  29. //To use the Template propery of the current web action (which is visible in
  30. //the object inspector for every Action), use
  31. //(Sender as TFPWebAction).Template.FileName := 'mytemplate1.html'; and so on.
  32. ModuleTemplate.FileName := ExtractFilePath(paramstr(0))+'../templates/mytemplate1.html';//best to use full path here
  33. ModuleTemplate.AllowTagParams := true;
  34. ModuleTemplate.OnReplaceTag := @func1callReplaceTag;
  35. S:=ModuleTemplate.GetContent;
  36. {$IF SIZEOF(CHAR)=2}
  37. AResponse.Content := UTF8Encode(S);
  38. {$ELSE}
  39. AResponse.Content := S;
  40. {$ENDIF}
  41. Handled := true;
  42. end;
  43. procedure TFPWebModule1.func1callReplaceTag(Sender: TObject; const TagString:
  44. String; TagParams: TStringList; Out ReplaceText: String);
  45. begin
  46. if AnsiCompareText(TagString, 'TagName1') = 0 then
  47. begin
  48. ReplaceText := 'Here I am from the web module!';
  49. end else begin
  50. //Not found value for tag -> TagString
  51. ReplaceText := 'Template tag {' + TagString + '} is not implemented yet.';
  52. end;
  53. end;
  54. initialization
  55. RegisterHTTPModule('template', TFPWebModule1);
  56. end.