ProviderFlags = [pfInUpdate, pfInWhere, pfInKey]
Required = True
end
+ object newsfiles: TWideMemoField
+ AutoGenerateValue = arDefault
+ FieldName = 'files'
+ Origin = 'files'
+ BlobType = ftWideMemo
+ end
object newsday: TDateField
AutoGenerateValue = arDefault
FieldName = 'day'
newsday: TDateField;
newschanged: TBooleanField;
newsenabled: TBooleanField;
+ newsfiles: TWideMemoField;
procedure DataModuleCreate(Sender: TObject);
private
{ Private \90é\8c¾ }
public
{ Public \90é\8c¾ }
procedure AddMagazine(id: integer; out Data: TJSONObject);
- procedure backNumber(id: integer; out Data: TJSONObject);
+ procedure backNumber(num: string; out Data: TJSONObject);
function existsMail(mail: string): Boolean;
function checkUserPassword(id: integer; password: string): Boolean;
function createReaderId(Data: TJSONObject): integer;
DB.AppendRecord([id, i, 0]);
end;
-procedure TDataModule1.backNumber(id: integer; out Data: TJSONObject);
+procedure TDataModule1.backNumber(num: string; out Data: TJSONObject);
const
con = '\82±\82Ì\8bL\8e\96\82Í\8cö\8aJ\90§\8cÀ\82ª\82 \82è\82Ü\82·.';
var
d: TJSONObject;
+ ar: TJSONArray;
mem: TStringList;
blob: TStream;
begin
+ if mag.Locate('magNum',num) = false then
+ Exit;
Data := TJSONObject.Create;
- d := Data;
+ ar:=TJSONArray.Create;
+ data.AddPair('data',ar);
mem := TStringList.Create;
with FDQuery1 do
begin
SQL.Clear;
- SQL.Add('select file,enabled from news where magId = :id order by lastDay;');
- Params.ParamByName('id').AsInteger := id;
+ SQL.Add('select files,enabled from news where magId = :id order by day;');
+ Params.ParamByName('id').AsInteger := mag.FieldByName('magId').AsInteger;
Open;
while Eof = false do
begin
- blob := CreateBlobStream(FieldByName('text'), bmRead);
+ d:=TJSONObject.Create;
+ ar.Add(d);
+ blob := CreateBlobStream(FieldByName('files'), bmRead);
mem.LoadFromStream(blob);
if FieldByName('enabled').AsBoolean = true then
d.AddPair('text', mem.Text)
object WebModule1: TWebModule1
OldCreateOrder = False
- OnCreate = WebModuleCreate
Actions = <
item
Default = True
OnAction = WebModule1writeMagAction
end
item
+ Name = 'writerpage'
+ PathInfo = '/writer/page'
+ OnAction = WebModule1writerpageAction
+ end
+ item
MethodType = mtPost
Name = 'login'
PathInfo = '/reader/login'
' <form method=post action=/logout>'
' <input type=submit>'
' </form>'
+
+ ' <a href=/reader/top>'#12518#12540#12470#12540#12507#12540#12512'</a>'#12288#12289'<a href=/reader/data>'#12518#12540 +
+ #12470#12540#24773#22577'</a>'
' {{/id}}'
' {{^id}}'
' <p>'#12525#12464#12452#12531
' {{#items}}'
' {{#enable}}'
' <table border=1>'
- ' <th>{{magName}} writed by {{writer}}'
+ ' <th><a href=/backnumber?id={{magNum}}>'
+ ' {{magName}}</a> writed by {{writer}}'
' {{^fun}}{{#id}}'
' <form method=post action=/reader/select?' +
' <input type="password" name="password">'
' <input type="submit" name="regReader" value="send">'
' </form>'
- ' <form method=post action=/writer/data>'
- ' <input type=text name=writer>'
- ' <input type=text name=mail>'
- ' <input type=password name=password>'
- ' <input type=submit name=regWriter value=send>'
- ' </form>'
+ ' <p>'#35352#32773#30331#37682#12399'<a href=/writer/page>'#12371#12385#12425'</a>'
'</body>'
'</html>')
Left = 112
'<body>'
' <p>{{name}}'
' <p>{{comment}}'
- ' {#data}'
+ ' {{#data}}'
' <hr>'
- ' {{content}}'
- ' {/data}'
+ ' {{text}}'
+ ' {{/data}}'
' <form method=post action=/reader/select>'
' <input type=submit value="'#30331#37682'">'
' </form>'
Left = 240
Top = 24
end
- object writerLogin: TPageProducer
+ object writerpage: TPageProducer
HTMLDoc.Strings = (
'<!DOCTYPE html>'
- '<html lang="ja">'
+ '<html lang="en">'
'<head>'
+ ' <title>Document'
+ '</title>'
' <meta charset="UTF-8">'
' <meta name="viewport" content="width=device-width, initial-s' +
'cale=1.0">'
- ' <title>Document</title>'
'</head>'
'<body>'
- ' <p>'#35352#32773#29992#12525#12464#12452#12531
- ' <form method=post action=/writer/login>'
+ ' {{^login}}'
+ ' <p>'#12525#12464#12452#12531
+ ' <form method=post action=/writer/login>'
+ ' <input type=text name=writer>'
' <input type=text name=mail>'
' <input type=password name=password>'
- ' <input type=submit>'
+ ' <input type=submit value=login>'
+ ' </form>'
+ ' <p>'#26032#35215#35352#32773#30331#37682
+ ' <form method=post action=/writer/data>'
+ ' <input type=text name=writer>'
+ ' <input type=text name=mail>'
+ ' <input type=password name=password>'
+ ' <input type=submit name=regWriter value=send>'
+ ' </form>'
+ ' {{/login}}'
+ ' {{#login}}'
+ ' <form method=post action=/writer/logout>'
+ ' <input type=submit value=logout>'
' </form>'
+ ' <p><a href=/writer/top>'#12507#12540#12512'</a>'#12288#12289#12288'<a href=/writer/data>'#24773#22577'</a>'
+ ' {{/login}}'
'</body>'
'</html>')
Left = 168
writerData: TPageProducer;
backnumber: TPageProducer;
mainView: TPageProducer;
- writerLogin: TPageProducer;
+ writerpage: 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 WebModule1login2Action(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
+ procedure WebModule1writerpageAction(Sender: TObject; Request: TWebRequest;
+ Response: TWebResponse; var Handled: Boolean);
private
{ private \90é\8c¾ }
writerId: integer;
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);
Response.Content := mustache.RenderJSON(data.ToString);
procedure TWebModule1.WebModule1login2Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
+var
+ data: TJSONObject;
begin
- case Request.MethodType of
- mtGet:
- begin
- Response.ContentType := 'text/html;charset=utf-8';
- Response.Content := writerLogin.Content;
- end;
- mtPost:
- Response.SendRedirect('/writer/top');
- end;
+ data:=TJSONObject.Create;
+ data.AddPair('mail',Request.ContentFields.Values['mail']);
+ data.AddPair('password',Request.ContentFields.Values['password']);
+ writerId:=DataModule1.loginWriter(data);
+ Response.SendRedirect('/writer/page');
end;
procedure TWebModule1.WebModule1loginAction(Sender: TObject;
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.Free;
end;
-procedure TWebModule1.WebModuleCreate(Sender: TObject);
-begin
- writerId := 1;
-end;
-
end.