| 12 |
|
|
| 13 |
type |
type |
| 14 |
TWebModule1 = class(TWebModule) |
TWebModule1 = class(TWebModule) |
|
FDTable1: TFDTable; |
|
| 15 |
FDConnection1: TFDConnection; |
FDConnection1: TFDConnection; |
| 16 |
FDTable2: TFDTable; |
FDTable2: TFDTable; |
| 17 |
FDTable2home: TWideMemoField; |
FDTable2home: TWideMemoField; |
| 20 |
FDTable2pass: TWideMemoField; |
FDTable2pass: TWideMemoField; |
| 21 |
PageProducer1: TPageProducer; |
PageProducer1: TPageProducer; |
| 22 |
DataSetPageProducer2: TDataSetPageProducer; |
DataSetPageProducer2: TDataSetPageProducer; |
|
FDTable1name: TWideMemoField; |
|
|
FDTable1no: TIntegerField; |
|
|
FDTable1date: TWideMemoField; |
|
|
FDTable1sub: TWideMemoField; |
|
|
FDTable1com: TWideMemoField; |
|
|
FDTable1pass: TWideMemoField; |
|
| 23 |
adminDS: TDataSetPageProducer; |
adminDS: TDataSetPageProducer; |
| 24 |
FDTable2ngwords: TWideMemoField; |
FDTable2ngwords: TWideMemoField; |
| 25 |
FDTable3: TFDTable; |
FDTable3: TFDTable; |
| 26 |
FDTable3link: TIntegerField; |
FDTable3link: TIntegerField; |
| 27 |
FDTable3count: TIntegerField; |
FDTable3count: TIntegerField; |
|
FDTable1line: TIntegerField; |
|
| 28 |
FDTable3line: TIntegerField; |
FDTable3line: TIntegerField; |
| 29 |
FDTable2mente: TBooleanField; |
FDTable2mente: TBooleanField; |
| 30 |
|
FDTable1: TFDTable; |
| 31 |
|
FDTable1name: TWideMemoField; |
| 32 |
|
FDTable1no: TIntegerField; |
| 33 |
|
FDTable1date: TWideMemoField; |
| 34 |
|
FDTable1sub: TWideMemoField; |
| 35 |
|
FDTable1com: TWideMemoField; |
| 36 |
|
FDTable1pass: TWideMemoField; |
| 37 |
|
FDTable1line: TIntegerField; |
| 38 |
procedure WebModule1DefaultHandlerAction(Sender: TObject; |
procedure WebModule1DefaultHandlerAction(Sender: TObject; |
| 39 |
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); |
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); |
| 40 |
procedure PageProducer1HTMLTag(Sender: TObject; Tag: TTag; |
procedure PageProducer1HTMLTag(Sender: TObject; Tag: TTag; |
| 65 |
Response: TWebResponse; var Handled: Boolean); |
Response: TWebResponse; var Handled: Boolean); |
| 66 |
procedure WebModuleAfterDispatch(Sender: TObject; Request: TWebRequest; |
procedure WebModuleAfterDispatch(Sender: TObject; Request: TWebRequest; |
| 67 |
Response: TWebResponse; var Handled: Boolean); |
Response: TWebResponse; var Handled: Boolean); |
| 68 |
|
procedure WebModule1archivesAction(Sender: TObject; Request: TWebRequest; |
| 69 |
|
Response: TWebResponse; var Handled: Boolean); |
| 70 |
private |
private |
| 71 |
{ private 宣言 } |
{ private 宣言 } |
| 72 |
public |
public |
| 80 |
foo: string; |
foo: string; |
| 81 |
function footer(const path: string): string; |
function footer(const path: string): string; |
| 82 |
procedure regist(var com: string); |
procedure regist(var com: string); |
| 83 |
|
function search: string; |
| 84 |
end; |
end; |
| 85 |
|
|
| 86 |
var |
var |
| 247 |
if (TagString = 'mente') and (FDTable2.FieldByName('mente').AsBoolean = True) |
if (TagString = 'mente') and (FDTable2.FieldByName('mente').AsBoolean = True) |
| 248 |
then |
then |
| 249 |
ReplaceText := 'checked="checked"'; |
ReplaceText := 'checked="checked"'; |
| 250 |
|
if TagString = 'archives' then |
| 251 |
|
ReplaceText := search; |
| 252 |
end; |
end; |
| 253 |
|
|
| 254 |
procedure TWebModule1.regist(var com: string); |
procedure TWebModule1.regist(var com: string); |
| 255 |
var |
var |
| 256 |
i: integer; |
i: integer; |
| 257 |
s: TSTringList; |
s: TStringList; |
| 258 |
begin |
begin |
| 259 |
s:=TStringList.Create; |
s := TStringList.Create; |
| 260 |
try |
try |
| 261 |
s.Text:=com; |
s.Text := com; |
| 262 |
for i := 0 to s.Count-1 do |
for i := 0 to s.count - 1 do |
| 263 |
s[i]:='<p>'+s[i]+'</p>'; |
s[i] := '<p>' + s[i] + '</p>'; |
| 264 |
com:=s.Text; |
com := s.Text; |
| 265 |
finally |
finally |
| 266 |
s.Free; |
s.Free; |
| 267 |
end; |
end; |
| 268 |
end; |
end; |
| 269 |
|
|
| 270 |
|
function TWebModule1.search: string; |
| 271 |
|
var |
| 272 |
|
s: TSearchRec; |
| 273 |
|
t: TStringList; |
| 274 |
|
i: integer; |
| 275 |
|
begin |
| 276 |
|
t := TStringList.Create; |
| 277 |
|
try |
| 278 |
|
if FindFirst('.\*.sdb', 0, s) = 0 then |
| 279 |
|
begin |
| 280 |
|
repeat |
| 281 |
|
t.Add(s.Name); |
| 282 |
|
until FindNext(s) <> 0; |
| 283 |
|
for i := 0 to t.count - 1 do |
| 284 |
|
case i mod 5 of |
| 285 |
|
0: |
| 286 |
|
t[i] := String.Format |
| 287 |
|
('<tr><td><a href=%s/archives?name=%s>%s</a></td>', |
| 288 |
|
[FDTable2.FieldByName('home').AsString, t[i], t[i]]); |
| 289 |
|
4: |
| 290 |
|
t[i] := String.Format |
| 291 |
|
('<td><a href=%s/archives?name=%s>%s</a></td></tr>', |
| 292 |
|
[FDTable2.FieldByName('home').AsString, t[i], t[i]]); |
| 293 |
|
else |
| 294 |
|
t[i] := String.Format('<td><a href=%s/archives?name=%s>%s</a></td>', |
| 295 |
|
[FDTable2.FieldByName('home').AsString, t[i], t[i]]); |
| 296 |
|
end; |
| 297 |
|
end; |
| 298 |
|
result := '<table border=1>' + t.Text + '</table>'; |
| 299 |
|
finally |
| 300 |
|
FindClose(s); |
| 301 |
|
t.Free; |
| 302 |
|
end; |
| 303 |
|
end; |
| 304 |
|
|
| 305 |
procedure TWebModule1.WebModule1adminAction(Sender: TObject; |
procedure TWebModule1.WebModule1adminAction(Sender: TObject; |
| 306 |
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); |
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); |
| 307 |
var |
var |
| 381 |
FDTable2.Post; |
FDTable2.Post; |
| 382 |
with Response.Cookies.Add do |
with Response.Cookies.Add do |
| 383 |
begin |
begin |
| 384 |
path := AnsiString(FDTable2.FieldByName('home').AsAnsiString + '/admin'); |
path := '/'; |
| 385 |
Expires := Now + 14; |
Expires := Now + 14; |
| 386 |
Name := 'psw'; |
Name := 'psw'; |
| 387 |
Value := AnsiString(s); |
Value := AnsiString(s); |
| 397 |
Response.SendRedirect(FDTable2.FieldByName('home').AsAnsiString + '/admin'); |
Response.SendRedirect(FDTable2.FieldByName('home').AsAnsiString + '/admin'); |
| 398 |
end; |
end; |
| 399 |
|
|
| 400 |
|
procedure TWebModule1.WebModule1archivesAction(Sender: TObject; |
| 401 |
|
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); |
| 402 |
|
var |
| 403 |
|
s: string; |
| 404 |
|
t: TResourceStream; |
| 405 |
|
begin |
| 406 |
|
s := Request.QueryFields.Values['name']; |
| 407 |
|
if s = '' then |
| 408 |
|
begin |
| 409 |
|
t := TResourceStream.Create(HInstance, 'archives', RT_RCDATA); |
| 410 |
|
try |
| 411 |
|
Response.ContentType := 'text/html; charset=utf-8;'; |
| 412 |
|
Response.Content := PageProducer1.ContentFromStream(t); |
| 413 |
|
finally |
| 414 |
|
t.Free; |
| 415 |
|
end; |
| 416 |
|
end |
| 417 |
|
else if FileExists(s) = True then |
| 418 |
|
begin |
| 419 |
|
FDConnection1.Open('Database=' + s + |
| 420 |
|
';LockingMode=Normal;DriverID=SQLite;'); |
| 421 |
|
FDTable1.Open; |
| 422 |
|
FDTable2.Open; |
| 423 |
|
FDTable3.Open; |
| 424 |
|
Handled := false; |
| 425 |
|
with Response.Cookies.Add do |
| 426 |
|
begin |
| 427 |
|
Name := 'db'; |
| 428 |
|
path := '/'; |
| 429 |
|
Expires := Now + 1; |
| 430 |
|
Value := s; |
| 431 |
|
end; |
| 432 |
|
end; |
| 433 |
|
end; |
| 434 |
|
|
| 435 |
procedure TWebModule1.WebModule1cssAction(Sender: TObject; Request: TWebRequest; |
procedure TWebModule1.WebModule1cssAction(Sender: TObject; Request: TWebRequest; |
| 436 |
Response: TWebResponse; var Handled: Boolean); |
Response: TWebResponse; var Handled: Boolean); |
| 437 |
var |
var |
| 683 |
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); |
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); |
| 684 |
var |
var |
| 685 |
m: TResourceStream; |
m: TResourceStream; |
| 686 |
|
s: string; |
| 687 |
begin |
begin |
| 688 |
|
s:=Request.CookieFields.Values['db']; |
| 689 |
|
if s = '' then |
| 690 |
|
FDConnection1.Open('Database=data.sdb;LockingMode=Normal;DriverID=SQLite') |
| 691 |
|
else |
| 692 |
|
FDConnection1.Open('Database='+s+';LockingMode=Normal;DriverID=SQLite'); |
| 693 |
if FDTable1.Exists = false then |
if FDTable1.Exists = false then |
| 694 |
FDTable1.CreateTable(false, [tpTable]); |
FDTable1.CreateTable(false, [tpTable]); |
| 695 |
if FDTable2.Exists = false then |
if FDTable2.Exists = false then |
| 746 |
|
|
| 747 |
procedure TWebModule1.WebModuleCreate(Sender: TObject); |
procedure TWebModule1.WebModuleCreate(Sender: TObject); |
| 748 |
begin |
begin |
|
FDConnection1.Open('Database=data.sdb;LockingMode=Normal;DriverID=SQLite'); |
|
| 749 |
time := 1; |
time := 1; |
| 750 |
words := TStringList.Create; |
words := TStringList.Create; |
| 751 |
end; |
end; |