OSDN Git Service

writer用ログインの作成に失敗したところでコミット
authoryamat0jp <terukohietori@gmail.com>
Sun, 8 Mar 2020 23:46:37 +0000 (08:46 +0900)
committeryamat0jp <terukohietori@gmail.com>
Sun, 8 Mar 2020 23:46:37 +0000 (08:46 +0900)
Unit1.dfm
Unit1.pas
WebModuleUnit1.dfm
WebModuleUnit1.pas

index 1b0b2c3..8177aab 100644 (file)
--- a/Unit1.dfm
+++ b/Unit1.dfm
@@ -95,6 +95,12 @@ object DataModule1: TDataModule1
       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'
index dd37976..3b5d1a6 100644 (file)
--- a/Unit1.pas
+++ b/Unit1.pas
@@ -50,6 +50,7 @@ type
     newsday: TDateField;
     newschanged: TBooleanField;
     newsenabled: TBooleanField;
+    newsfiles: TWideMemoField;
     procedure DataModuleCreate(Sender: TObject);
   private
     { Private \90é\8c¾ }
@@ -57,7 +58,7 @@ type
   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;
@@ -116,26 +117,32 @@ begin
   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)
index 85d95d7..1b15854 100644 (file)
@@ -1,6 +1,5 @@
 object WebModule1: TWebModule1
   OldCreateOrder = False
-  OnCreate = WebModuleCreate
   Actions = <
     item
       Default = True
@@ -52,6 +51,11 @@ object WebModule1: TWebModule1
       OnAction = WebModule1writeMagAction
     end
     item
+      Name = 'writerpage'
+      PathInfo = '/writer/page'
+      OnAction = WebModule1writerpageAction
+    end
+    item
       MethodType = mtPost
       Name = 'login'
       PathInfo = '/reader/login'
@@ -146,6 +150,9 @@ object WebModule1: TWebModule1
       '        <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
@@ -159,7 +166,8 @@ object WebModule1: TWebModule1
       '    {{#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?' +
@@ -186,12 +194,7 @@ object WebModule1: TWebModule1
       '        <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
@@ -276,10 +279,10 @@ object WebModule1: TWebModule1
       '<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>'
@@ -315,24 +318,41 @@ object WebModule1: TWebModule1
     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
index de8c0d1..b071954 100644 (file)
@@ -12,10 +12,9 @@ type
     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;
@@ -40,6 +39,8 @@ type
       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;
@@ -87,7 +88,7 @@ procedure TWebModule1.WebModule1detailAction(Sender: TObject;
 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);
@@ -117,16 +118,14 @@ end;
 
 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;
@@ -306,6 +305,21 @@ begin
   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
@@ -319,9 +333,4 @@ begin
   data.Free;
 end;
 
-procedure TWebModule1.WebModuleCreate(Sender: TObject);
-begin
-  writerId := 1;
-end;
-
 end.