2016-02-14 18:15:56 +01:00
|
|
|
unit WebModuleU;
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
uses System.SysUtils, System.Classes, Web.HTTPApp, MVCFramework;
|
|
|
|
|
|
|
|
type
|
|
|
|
TWebModule1 = class(TWebModule)
|
|
|
|
procedure WebModule1DefaultHandlerAction(Sender: TObject;
|
|
|
|
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
|
|
|
|
procedure WebModuleCreate(Sender: TObject);
|
|
|
|
private
|
|
|
|
{ Private declarations }
|
|
|
|
public
|
|
|
|
{ Public declarations }
|
|
|
|
end;
|
|
|
|
|
|
|
|
var
|
|
|
|
WebModuleClass: TComponentClass = TWebModule1;
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
2016-04-24 19:08:21 +02:00
|
|
|
{ %CLASSGROUP 'Vcl.Controls.TControl' }
|
2016-02-14 18:15:56 +01:00
|
|
|
|
2017-04-14 16:43:31 +02:00
|
|
|
uses WebSiteControllerU, MVCFramework.Commons,
|
|
|
|
{we need mustache engine for server side views}
|
|
|
|
MVCFramework.View.Renderers.Mustache
|
|
|
|
;
|
2016-02-14 18:15:56 +01:00
|
|
|
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
|
|
procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
|
|
|
|
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
|
|
|
|
begin
|
2016-04-24 19:08:21 +02:00
|
|
|
Response.Content := '<html>' +
|
2016-02-14 18:15:56 +01:00
|
|
|
'<head><title>Web Server Application</title></head>' +
|
2016-04-24 19:08:21 +02:00
|
|
|
'<body>Web Server Application</body>' + '</html>';
|
2016-02-14 18:15:56 +01:00
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TWebModule1.WebModuleCreate(Sender: TObject);
|
|
|
|
begin
|
2016-04-24 19:08:21 +02:00
|
|
|
TMVCEngine.Create(Self,
|
|
|
|
procedure(Config: TMVCConfig)
|
|
|
|
begin
|
|
|
|
// enable static files
|
|
|
|
Config[TMVCConfigKey.DocumentRoot] :=
|
|
|
|
ExtractFilePath(GetModuleName(HInstance)) + '\www';
|
|
|
|
// session timeout (0 means session cookie)
|
|
|
|
Config[TMVCConfigKey.SessionTimeout] := '0';
|
|
|
|
// default content-type
|
|
|
|
Config[TMVCConfigKey.DefaultContentType] :=
|
|
|
|
TMVCConstants.DEFAULT_CONTENT_TYPE;
|
|
|
|
// default content charset
|
|
|
|
Config[TMVCConfigKey.DefaultContentCharset] :=
|
|
|
|
TMVCConstants.DEFAULT_CONTENT_CHARSET;
|
|
|
|
// unhandled actions are permitted?
|
|
|
|
Config[TMVCConfigKey.AllowUnhandledAction] := 'false';
|
|
|
|
// default view file extension
|
|
|
|
Config[TMVCConfigKey.DefaultViewFileExtension] := 'html';
|
|
|
|
// view path
|
|
|
|
Config[TMVCConfigKey.ViewPath] := 'templates';
|
|
|
|
// Enable Server Signature in response
|
|
|
|
Config[TMVCConfigKey.ExposeServerSignature] := 'true';
|
2017-05-25 12:30:08 +02:00
|
|
|
end)
|
|
|
|
.AddController(TWebSiteController)
|
|
|
|
.SetViewEngine(TMVCMustacheViewEngine);
|
2016-04-24 19:08:21 +02:00
|
|
|
|
2016-02-14 18:15:56 +01:00
|
|
|
end;
|
|
|
|
|
|
|
|
end.
|