tipDownloadHost, // : string // \8d¡\82Ì\83z\83X\83g\82Æ\88á\82¤\8fê\8d\87\82Ì\83z\83X\83g
tipAgeSage, // : TThreadAgeSage // \83A\83C\83e\83\80\82Ì\8fã\82°\89º\82°
tipURL, // : string // \83X\83\8c\83b\83h\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é\8dÛ\82Ì URL
- tipFilePath // : string // \82±\82Ì\83X\83\8c\82ª\95Û\91¶\82³\82ê\82Ä\82¢\82é\83p\83X
+ tipFilePath, // : string // \82±\82Ì\83X\83\8c\82ª\95Û\91¶\82³\82ê\82Ä\82¢\82é\83p\83X
+ tipJumpAddress // : Integer // JUMP\90æ\83\8c\83X\94Ô\8d\86
);
// *************************************************************************
) : PChar; stdcall; // \95\\8e¦\82·\82é HTML
// *************************************************************************
+ // \83\8c\83X\94Ô\8d\86 n \82É\91Î\82·\82é Dat \82ð\97v\8b\81
+ // *************************************************************************
+ TThreadItemOnGetDat = function(
+ inInstance : DWORD; // \83C\83\93\83X\83^\83\93\83X
+ inNo : DWORD // \95\\8e¦\82·\82é\83\8c\83X\94Ô\8d\86
+ ) : PChar; stdcall; // \82Q\82¿\82á\82ñ\82Ë\82é\8c`\8e®\82ÌDat
+
+ // *************************************************************************
// \83X\83\8c\83b\83h\82Ì\83w\83b\83_ html \82ð\97v\8b\81
// *************************************************************************
TThreadItemOnGetHeader = function(
implementation
-uses ExternalBoardManager, GikoSystem, BoardGroup;
+uses ExternalBoardManager, GikoSystem, BoardGroup, HTMLCreate, MojuUtils;
// *************************************************************************
// TThreadItem \83N\83\89\83X\82Ì\83v\83\8d\83p\83e\83B\82ð\8eæ\93¾\82·\82é
Result := DWORD( CreateResultString( threadItem.URL ) );
tipFilePath: // \82±\82Ì\83X\83\8c\82ª\95Û\91¶\82³\82ê\82Ä\82¢\82é\83p\83X
Result := DWORD( CreateResultString( threadItem.FilePath ) );
+ tipJumpAddress:
+ Result := threadItem.JumpAddress;
else
Result := 0;
end;
tipRound: // : Boolean // \8f\84\89ñ\83t\83\89\83O
threadItem.Round := Boolean( param );
tipRoundName: // : string // \8f\84\89ñ\96¼
- threadItem.RoundName := string( PChar( param ) );
+ //threadItem.RoundName := string( PChar( param ) );
+ threadItem.RoundName := PChar( param );
tipIsLogFile: // : Boolean // \83\8d\83O\91¶\8dÝ\83t\83\89\83O
threadItem.IsLogFile := Boolean( param );
tipKokomade: // : Integer // \83R\83R\82Ü\82Å\93Ç\82ñ\82¾\94Ô\8d\86
threadItem.AgeSage := TGikoAgeSage( param );
tipURL: // : string // \83X\83\8c\83b\83h\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é\8dÛ\82Ì URL
threadItem.URL := string( PChar( param ) );
- tipFilePath: // : string // \82±\82Ì\83X\83\8c\82ª\95Û\91¶\82³\82ê\82Ä\82¢\82é\83p\83X
- threadItem.FilePath := string( PChar( param ) );
+ //tipFilePath: // : string // \82±\82Ì\83X\83\8c\82ª\95Û\91¶\82³\82ê\82Ä\82¢\82é\83p\83X
+ // threadItem.FilePath := string( PChar( param ) );
+ tipJumpAddress:
+ threadItem.JumpAddress := param;
end;
end;
threadItem : TThreadItem;
res : TResRec;
no : string;
+ resLink : TResLinkRec;
begin
- {$IFDEF DEBUG}
- Writeln('ExternalBoardManager.ThreadItemDat2HTML');
- {$ENDIF}
threadItem := TThreadItem( inInstance );
// \88ø\90\94\82ð\95ª\89ð
- res := GikoSys.DivideStrLine( string( inDatRes ) );
- res.FBody := GikoSys.AddAnchorTag( res.FBody );
- no := IntToStr( inResNo );
-
- try
- if GikoSys.Setting.UseSkin then begin
- // \83X\83L\83\93
- if inIsNew then
- Result := CreateResultString( GikoSys.SkinedRes(
- GikoSys.LoadFromSkin(
- GikoSys.Setting.GetSkinNewResFileName, threadItem, threadItem.SizeByte
- ), res, no
- ) )
- else
- Result := CreateResultString( GikoSys.SkinedRes(
- GikoSys.LoadFromSkin(
- GikoSys.Setting.GetSkinResFileName, threadItem, threadItem.SizeByte
- ), res, no
- ) );
- end else if GikoSys.Setting.UseCSS then begin
- // CSS
- if res.FName = '' then
- res.FName := ' ';
- if res.FMailTo = '' then
- Result := CreateResultString( '<a name="' + no + '"></a>'
- + '<div class="header"><span class="no"><a href="menu:' + No + '">' + no + '</a></span> '
- + '<span class="name_label">\96¼\91O\81F</span> '
- + '<span class="name"><b>' + res.FName + '</b></span> '
- + '<span class="date_label">\93\8a\8de\93ú\81F</span> '
- + '<span class="date">' + res.FDateTime+ '</span></div>'
- + '<div class="mes">' + res.FBody + ' </div>' )
- else if GikoSys.Setting.ShowMail then
- Result := CreateResultString( '<a name="' + no + '"></a>'
- + '<div class="header"><span class="no"><a href="menu:' + no + '">' + no + '</a></span>'
- + '<span class="name_label"> \96¼\91O\81F </span>'
- + '<a class="name_mail" href="mailto:' + res.FMailTo + '">'
- + '<b>' + res.FName + '</b></a><span class="mail"> [' + res.FMailTo + ']</span>'
- + '<span class="date_label"> \93\8a\8de\93ú\81F</span>'
- + '<span class="date"> ' + res.FDateTime+ '</span></div>'
- + '<div class="mes">' + res.FBody + ' </div>' )
- else
- Result := CreateResultString( '<a name="' + no + '"></a>'
- + '<div class="header"><span class="no"><a href="menu:' + no + '">' + no + '</a></span>'
- + '<span class="name_label"> \96¼\91O\81F </span>'
- + '<a class="name_mail" href="mailto:' + res.FMailTo + '">'
- + '<b>' + res.FName + '</b></a>'
- + '<span class="date_label"> \93\8a\8de\93ú\81F</span>'
- + '<span class="date"> ' + res.FDateTime+ '</span></div>'
- + '<div class="mes">' + res.FBody + ' </div>' );
- end else begin
- // \83f\83t\83H\83\8b\83g
- if res.FMailTo = '' then
- Result := CreateResultString( '<a name="' + no + '"></a><dt><a href="menu:' + no + '">' + no + '</a> \96¼\91O\81F<font color="forestgreen"><b> ' + res.FName + ' </b></font> \93\8a\8de\93ú\81F ' + res.FDateTime+ '<br><dd>' + res.Fbody + ' <br><br><br>' )
- else if GikoSys.Setting.ShowMail then
- Result := CreateResultString( '<a name="' + no + '"></a><dt><a href="menu:' + no + '">' + no + '</a> \96¼\91O\81F<a href="mailto:' + res.FMailTo + '"><b> ' + res.FName + ' </B></a> [' + res.FMailTo + '] \93\8a\8de\93ú\81F ' + res.FDateTime+ '<br><dd>' + res.Fbody + ' <br><br><br>' )
- else
- Result := CreateResultString( '<a name="' + no + '"></a><dt><a href="menu:' + no + '">' + no + '</a> \96¼\91O\81F<a href="mailto:' + res.FMailTo + '"><b> ' + res.FName + ' </B></a> \93\8a\8de\93ú\81F ' + res.FDateTime+ '<br><dd>' + res.Fbody + ' <br><br><br>' );
- end;
- except
- Result := nil;
- end;
+ THTMLCreate.DivideStrLine( string( inDatRes ) , @res);
+ if AnsiCompareStr( string( inDatRes ) , '' ) <> 0 then begin
+ res.FBody := THTMLCreate.DeleteLink(res.FBody);
+ resLink.FBbs := threadItem.ParentBoard.BBSID;
+ resLink.FKey := ChangeFileExt( threadItem.FileName, '' );
+ HTMLCreater.AddAnchorTag( @res );
+ HTMLCreater.ConvRes( @res, @resLink );
+
+ no := IntToStr( inResNo );
+
+ try
+ if GikoSys.Setting.UseSkin then begin
+ // \83X\83L\83\93
+ if inIsNew then
+ Result := CreateResultString( HTMLCreater.SkinedRes(
+ HTMLCreater.LoadFromSkin(
+ GikoSys.GetSkinNewResFileName, threadItem, threadItem.Size
+ ), @res, no
+ ) )
+ else
+ Result := CreateResultString( HTMLCreater.SkinedRes(
+ HTMLCreater.LoadFromSkin(
+ GikoSys.GetSkinResFileName, threadItem, threadItem.Size
+ ), @res, no
+ ) );
+ end else if GikoSys.Setting.UseCSS then begin
+ // CSS
+ if res.FName = '' then
+ res.FName := ' ';
+ if res.FMailTo = '' then
+ Result := CreateResultString( '<a name="' + no + '"></a>'
+ + '<div class="header"><span class="no"><a href="menu:' + No + '">' + no + '</a></span> '
+ + '<span class="name_label">\96¼\91O\81F</span> '
+ + '<span class="name"><b>' + res.FName + '</b></span> '
+ + '<span class="date_label">\93\8a\8de\93ú\81F</span> '
+ + '<span class="date">' + res.FDateTime+ '</span></div>'
+ + '<div class="mes">' + res.FBody + ' </div>' )
+ else if GikoSys.Setting.ShowMail then
+ Result := CreateResultString( '<a name="' + no + '"></a>'
+ + '<div class="header"><span class="no"><a href="menu:' + no + '">' + no + '</a></span>'
+ + '<span class="name_label"> \96¼\91O\81F </span>'
+ + '<a class="name_mail" href="mailto:' + res.FMailTo + '">'
+ + '<b>' + res.FName + '</b></a><span class="mail"> [' + res.FMailTo + ']</span>'
+ + '<span class="date_label"> \93\8a\8de\93ú\81F</span>'
+ + '<span class="date"> ' + res.FDateTime+ '</span></div>'
+ + '<div class="mes">' + res.FBody + ' </div>' )
+ else
+ Result := CreateResultString( '<a name="' + no + '"></a>'
+ + '<div class="header"><span class="no"><a href="menu:' + no + '">' + no + '</a></span>'
+ + '<span class="name_label"> \96¼\91O\81F </span>'
+ + '<a class="name_mail" href="mailto:' + res.FMailTo + '">'
+ + '<b>' + res.FName + '</b></a>'
+ + '<span class="date_label"> \93\8a\8de\93ú\81F</span>'
+ + '<span class="date"> ' + res.FDateTime+ '</span></div>'
+ + '<div class="mes">' + res.FBody + ' </div>' );
+ end else begin
+ // \83f\83t\83H\83\8b\83g
+ if res.FMailTo = '' then
+ Result := CreateResultString( '<a name="' + no + '"></a><dt><a href="menu:' + no + '">' + no + '</a> \96¼\91O\81F<font color="forestgreen"><b> ' + res.FName + ' </b></font> \93\8a\8de\93ú\81F ' + res.FDateTime+ '<br><dd>' + res.Fbody + ' <br><br><br>' )
+ else if GikoSys.Setting.ShowMail then
+ Result := CreateResultString( '<a name="' + no + '"></a><dt><a href="menu:' + no + '">' + no + '</a> \96¼\91O\81F<a href="mailto:' + res.FMailTo + '"><b> ' + res.FName + ' </B></a> [' + res.FMailTo + '] \93\8a\8de\93ú\81F ' + res.FDateTime+ '<br><dd>' + res.Fbody + ' <br><br><br>' )
+ else
+ Result := CreateResultString( '<a name="' + no + '"></a><dt><a href="menu:' + no + '">' + no + '</a> \96¼\91O\81F<a href="mailto:' + res.FMailTo + '"><b> ' + res.FName + ' </B></a> \93\8a\8de\93ú\81F ' + res.FDateTime+ '<br><dd>' + res.Fbody + ' <br><br><br>' );
+ end;
+ except
+ Result := nil;
+ end;
+ end else begin
+ Result := nil;
+ end;
end;
try
if GikoSys.Setting.UseSkin then begin
// \83X\83L\83\93
- skinHeader := GikoSys.LoadFromSkin( GikoSys.Setting.GetSkinHeaderFileName, threadItem, threadItem.SizeByte );
+ skinHeader := HTMLCreater.LoadFromSkin( GikoSys.GetSkinHeaderFileName, threadItem, threadItem.Size );
if Length( optionalHeader ) > 0 then
skinHeader :=
StringReplace( skinHeader, '</head>', optionalHeader + '</head><a name="top"></a>', [] );
try
if GikoSys.Setting.UseSkin then begin
// \83X\83L\83\93
- skinFooter := GikoSys.LoadFromSkin( GikoSys.Setting.GetSkinFooterFileName, threadItem, threadItem.SizeByte );
+ skinFooter := HTMLCreater.LoadFromSkin( GikoSys.GetSkinFooterFileName, threadItem, threadItem.Size );
if Length( optionalFooter ) > 0 then
skinFooter :=
StringReplace( skinFooter, '</body>', optionalFooter + '</body>', [] );