writerData: TPageProducer;
backnumber: TPageProducer;
mainView: TPageProducer;
+ writerpage: TPageProducer;
+ upload: TPageProducer;
+ mags: TPageProducer;
procedure WebModule1DefaultHandlerAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- procedure WebModuleCreate(Sender: TObject);
procedure WebModule1writeMagAction(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
procedure WebModule1selectionAction(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
procedure WebModule1readerTopAction(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
+ procedure WebModule1login2Action(Sender: TObject; Request: TWebRequest;
+ Response: TWebResponse; var Handled: Boolean);
+ procedure WebModule1writerpageAction(Sender: TObject; Request: TWebRequest;
+ Response: TWebResponse; var Handled: Boolean);
+ procedure WebModule1uploadAction(Sender: TObject; Request: TWebRequest;
+ Response: TWebResponse; var Handled: Boolean);
+ procedure uploadHTMLTag(Sender: TObject; Tag: TTag; const TagString: string;
+ TagParams: TStrings; var ReplaceText: string);
+ procedure magsHTMLTag(Sender: TObject; Tag: TTag; const TagString: string;
+ TagParams: TStrings; var ReplaceText: string);
private
{ private \90é\8c¾ }
writerId: integer;
implementation
-uses SynMustache, SynCommons, System.JSON, Unit1, System.NetEncoding;
+uses SynMustache, SynCommons, System.JSON, Unit1, System.NetEncoding, System.Zip, ReqMulti;
{ %CLASSGROUP 'Vcl.Controls.TControl' }
var
mustache: TSynMustache;
+procedure TWebModule1.magsHTMLTag(Sender: TObject; Tag: TTag;
+ const TagString: string; TagParams: TStrings; var ReplaceText: string);
+begin
+ if TagString = 'main' then
+ ReplaceText:=backnumber.Content;
+end;
+
+procedure TWebModule1.uploadHTMLTag(Sender: TObject; Tag: TTag;
+ const TagString: string; TagParams: TStrings; var ReplaceText: string);
+begin
+ if TagString = 'main' then
+ ReplaceText:=backnumber.Content;
+end;
+
procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
data: TJSONObject;
begin
- DataModule1.magListAll(data);
+ DataModule1.magListAll(readerId, data);
if readerId = 0 then
- data.AddPair('id',TJSONFalse.Create)
+ data.AddPair('id', TJSONFalse.Create)
else
- data.AddPair('id',TJSONTrue.Create);
+ data.AddPair('id', TJSONTrue.Create);
if Request.QueryFields.Values['op'] <> '' then
- data.AddPair('comment','2\8fd\93o\98^\82Å\82·\81B\93o\98^\82É\8e¸\94s\82µ\82Ü\82µ\82½\81B')
+ data.AddPair('comment', '2\8fd\93o\98^\82Å\82·\81B\93o\98^\82É\8e¸\94s\82µ\82Ü\82µ\82½\81B')
else
- data.AddPair('comment',TJSONFalse.Create);
+ data.AddPair('comment', TJSONFalse.Create);
mustache := TSynMustache.Parse(top.Content);
Response.ContentType := 'text/html;charset=utf-8';
Response.Content := mustache.RenderJSON(data.ToJSON);
var
data: TJSONObject;
begin
- DataModule1.backnumber(Request.QueryFields.Values['id'].ToInteger, data);
+ DataModule1.backnumber(Request.QueryFields.Values['id'], data);
Response.ContentType := 'text/html;charset=utf-8';
- mustache := TSynMustache.Parse(backnumber.Content);
+ mustache := TSynMustache.Parse(mags.Content);
Response.Content := mustache.RenderJSON(data.ToString);
end;
procedure TWebModule1.WebModule1imageAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
- id: integer;
+ magid,newsid: integer;
+ str: string;
data: TJSONObject;
mem: TMemoryStream;
raw: TBytes;
begin
+ data := TJSONObject.Create;
+ magid:=Request.QueryFields.Values['id'].ToInteger;
+ newsid:=Request.QueryFields.Values['num'].ToInteger;
+ str:=data.Values['data'].Value;
+ DataModule1.imageView(magid, newsid,data);
+ mem := TMemoryStream.Create;
+ if data.Values['encode'].Value = 'true' then
+ begin
+ raw := TNetEncoding.Base64.DecodeStringToBytes(str);
+ mem.WriteBuffer(raw, Length(raw));
+ Finalize(raw);
+ end
+ else
+ mem.WriteBuffer(@str,Length(str));
+ mem.Position := 0;
+ Response.ContentType := 'jpeg/image';
+ Response.ContentStream := mem;
+end;
+
+procedure TWebModule1.WebModule1login2Action(Sender: TObject;
+ Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
+var
+ data: TJSONObject;
+begin
data:=TJSONObject.Create;
- data.AddPair('id',TJSONNumber.Create(Request.QueryFields.Values['id']));
- data.AddPair('number',TJSONNumber.Create(Request.QueryFields.Values['num']));
- id :=DataModule1.imageId(data);
- DataModule1.imageView(id,data);
- mem:=TMemoryStream.Create;
- raw:=TNetEncoding.Base64.DecodeStringToBytes(data.Values['data'].Value);
- mem.WriteBuffer(raw,Length(raw));
- mem.Position:=0;
- Finalize(raw);
- Response.ContentType:='jpeg/image';
- Response.ContentStream:=mem;
+ data.AddPair('mail',Request.ContentFields.Values['mail']);
+ data.AddPair('password',Request.ContentFields.Values['password']);
+ writerId:=DataModule1.loginWriter(data);
+ if writerId = 0 then
+ Handled:=false
+ else
+ Response.SendRedirect('/writer/top');
end;
procedure TWebModule1.WebModule1loginAction(Sender: TObject;
var
data: TJSONObject;
begin
- data:=TJSONObject.Create;
+ data := TJSONObject.Create;
with Request.ContentFields do
begin
- data.AddPair('mail',Values['mail']);
- data.AddPair('password',Values['password']);
+ data.AddPair('mail', Values['mail']);
+ data.AddPair('password', Values['password']);
end;
- readerId:=DataModule1.loginReader(data);
+ readerId := DataModule1.loginReader(data);
data.Free;
- Handled:=false;
+ Handled := false;
end;
procedure TWebModule1.WebModule1logoutAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
- readerId:=0;
- writerId:=0;
- Handled:=false;
+ readerId := 0;
+ writerId := 0;
+ Handled := false;
end;
procedure TWebModule1.WebModule1mainViewAction(Sender: TObject;
var
data: TJSONObject;
begin
- Response.ContentType:='text/html;charset=utf-8';
- DataModule1.mainView(readerId,data);
- mustache:=TSynMustache.Parse(mainView.Content);
+ Response.ContentType := 'text/html;charset=utf-8';
+ DataModule1.mainView(readerId, data);
+ mustache := TSynMustache.Parse(mainView.Content);
Response.Content := mustache.RenderJSON(data.ToJSON);
end;
with Request.ContentFields do
begin
data := TJSONObject.Create;
- data.AddPair('id',TJSONNumber.Create(readerId));
+ data.AddPair('id', TJSONNumber.Create(readerId));
data.AddPair('name', Values['reader']);
data.AddPair('mail', Values['mail']);
data.AddPair('password', Values['password']);
= true then
begin
data.RemovePair('password');
- data.AddPair('password',Request.ContentFields.Values['new']);
+ data.AddPair('password', Request.ContentFields.Values['new']);
DataModule1.updateReaderId(data);
end;
mtPost:
- if DataModule1.createReaderId(data) = false then
begin
- Response.SendRedirect('/top?op=1#message');
- Exit;
+ readerId := DataModule1.createReaderId(data);
+ if readerId = 0 then
+ begin
+ Response.SendRedirect('/top?op=1#message');
+ Exit;
+ end;
end;
mtDelete:
with Request.ContentFields do
data.Free;
Response.ContentType := 'text/html;charset=utf-8';
DataModule1.userView(readerId, data);
- DataModule1.readerData(readerId,d);
- data.AddPair('reader',d);
+ DataModule1.readerData(readerId, d);
+ data.AddPair('reader', d);
mustache := TSynMustache.Parse(readerTop.Content);
Response.Content := mustache.RenderJSON(data.ToJSON);
end;
var
data: TJSONObject;
begin
- Response.ContentType:='text/html;charset=utf-8';
- DataModule1.getView(readerId,data);
- mustache:=TSynMustache.Parse(mainView.Content);
- Response.Content:=mustache.RenderJSON(data.ToJSON);
+ Response.ContentType := 'text/html;charset=utf-8';
+ DataModule1.getView(readerId, data);
+ mustache := TSynMustache.Parse(mainView.Content);
+ Response.Content := mustache.RenderJSON(data.ToJSON);
end;
procedure TWebModule1.WebModule1selectionAction(Sender: TObject;
begin
id := DataModule1.magid(Request.ContentFields.Values['name']);
case Request.MethodType of
- mtGet:
- Handled := false;
mtPost:
DataModule1.magIdOn(readerId, id);
mtDelete:
DataModule1.magIdOff(readerId, id);
end;
+ Handled := false;
+end;
+
+procedure TWebModule1.WebModule1uploadAction(Sender: TObject;
+ Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
+var
+ num: string;
+
+ stream, mem: TStream;
+ data: TJSONObject;
+begin
+ num:=Request.QueryFields.Values['num'];
+ if Request.MethodType = mtPost then
+ begin
+ stream:=Request.Files[0].Stream;
+ mem := TMemoryStream.Create;
+ mem.CopyFrom(stream,stream.Size);
+ mem.Position:=0;
+ DataModule1.zipFile(writerId,num,mem);
+ mem.Free;
+ end;
+ Response.ContentType:='text/html;charset=utf-8';
+ data:=TJSONObject.Create;
+ DataModule1.backNumber(num,data);
+ mustache:=TSynMustAche.Parse(upload.Content);
+ Response.Content:=mustache.RenderJSON(data.ToJSON);
end;
procedure TWebModule1.WebModule1writeMagAction(Sender: TObject;
end;
mtPost:
if Request.ContentFields.Values['_method'] = 'delete' then
- DataModule1.deleteWriter(writerId)
+ begin
+ DataModule1.deleteWriter(writerId);
+ Response.SendRedirect('/writer/page');
+ Exit;
+ end
else if DataModule1.existsMail(data.Values['mail'].Value) = false then
begin
data.AddPair('name', Request.ContentFields.Values['writer']);
if Request.ContentFields.Values['_method'] = 'put' then
DataModule1.updateWriterId(writerId, data)
else
- DataModule1.createWriterId(data);
+ writerId:=DataModule1.createWriterId(data); ///var param?
end
else
- {\83\81\81[\83\8b\83A\83h\83\8c\83X\82Ì2\8fd\93o\98^};
+ begin
+ { \83\81\81[\83\8b\83A\83h\83\8c\83X\82Ì2\8fd\93o\98^ };
+ Response.SendRedirect('/writer/page');
+ Exit;
+ end;
mtPut:
DataModule1.updateWriterId(writerId, data);
mtDelete:
data.Free;
end;
+procedure TWebModule1.WebModule1writerpageAction(Sender: TObject;
+ Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
+var
+ data: TJSONObject;
+begin
+ Response.ContentType:='text/html;charset=utf-8';
+ data:=TJSONObject.Create;
+ if writerId = 0 then
+ data.AddPair('login',TJSONFalse.Create)
+ else
+ data.AddPair('login',TJSONTrue.Create);
+ mustache:=TSynMustAche.Parse(writerpage.Content);
+ Response.Content:=mustache.RenderJSON(data.ToJSON);
+end;
+
procedure TWebModule1.WebModule1writerTopAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
data: TJSONObject;
begin
+ if writerId = 0 then
+ begin
+ Handled:=false;
+ Exit;
+ end;
data := TJSONObject.Create;
DataModule1.magazines(writerId, data);
Response.ContentType := 'text/html;charset=utf-8';
data.Free;
end;
-procedure TWebModule1.WebModuleCreate(Sender: TObject);
-begin
- writerId := 1;
-end;
-
end.