diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 56322ae9bf..19dabbfa5e 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,7 @@ +19990531-10:15 CET Felipe G. Coury (upload Eddie Runia) + * tests/working/testhtml.prg + beautiful !! + 19990530-23:05 CET Eddie Runia * source/rtl/objfunc.prg since aEval has been clean for a long time, it was time to use it ! diff --git a/harbour/tests/working/testhtml.prg b/harbour/tests/working/testhtml.prg new file mode 100644 index 0000000000..e62cf9a1cd --- /dev/null +++ b/harbour/tests/working/testhtml.prg @@ -0,0 +1,157 @@ +/* +* +* TestHTML.PRG +* Harbour Test of a HTML-Generator class. +* +* 1999/05/30 First implementation. +* +* Tips: - Use ShowResults to make dynamic html (to test dynamic +* results, put the exe file on CGI-BIN dir or equivalent); +* - Use SaveToFile to make static html page +* +**/ + +#define NewLine chr(10)+chr(13) + +FUNCTION Main() + + LOCAL oHTML := THTML():New() + + oHTML:SetTitle( "Harbour Power Demonstration" ) + oHTML:AddHead( "Harbour Project" ) + oHTML:AddPara( "Harbour is xBase at its best. Have a taste today!", "LEFT" ) + oHTML:AddPara( "L i n k s", "CENTER" ) + oHTML:AddLink( "http://www.Harbour-Project.org", "Meet the harbour power!" ) + oHTML:Generate() + + // Uncomment the following if you don't have a Web Server to test + // this sample + + // oHTML:SaveToFile( "test.htm" ) + + // If the above is uncommented, you may comment this line: + + oHTML:ShowResult() + + RETURN( NIL ) + +/*---------------------------------------------------------------------------*/ + +FUNCTION THTML + + STATIC oClass + + IF oClass == NIL + oClass = TClass():New( "THTML" ) + + oClass:AddData( "cTitle" ) // Page Title + oClass:AddData( "cBody" ) // HTML Body Handler + oClass:AddData( "cBGColor" ) // Background Color + oClass:AddData( "cLinkColor" ) // Link Color + oClass:AddData( "cvLinkColor" ) // Visited Link Color + oClass:AddData( "cContent" ) // Page Content Handler + + oClass:AddMethod( "New", @New() ) // New Method + oClass:AddMethod( "SetTitle", @SetTitle() ) // Set Page Title + oClass:AddMethod( "AddHead", @AddHead() ) // Add

Header + oClass:AddMethod( "AddLink", @AddLink() ) // Add Hyperlink + oClass:AddMethod( "AddPara", @AddPara() ) // Add Paragraph + oClass:AddMethod( "Generate", @Generate() ) // Generate HTML + oClass:AddMethod( "SaveToFile", @SaveToFile() ) // Saves Content to File + oClass:AddMethod( "ShowResult", @ShowResult() ) // Show Result - SEE Fcn + + oClass:Create() + ENDIF + + RETURN( oClass:Instance() ) + +STATIC FUNCTION New() + + LOCAL Self := QSelf() + + ::cTitle := "Untitled" + ::cBGColor := "#FFFFFF" + ::cLinkColor := "#0000FF" + ::cvLinkColor := "#FF0000" + ::cContent := "" + ::cBody := "" + + RETURN( Self ) + +STATIC FUNCTION SetTitle( cTitle ) + + LOCAL Self := QSelf() + + ::cTitle := cTitle + + RETURN( Self ) + +STATIC FUNCTION AddLink( cLinkTo, cLinkName ) + + LOCAL Self := QSelf() + + ::cBody := ::cBody + ; + "" + cLinkName + "" + + RETURN( Self ) + +STATIC FUNCTION AddHead( cDescr ) + + LOCAL Self := QSelf() + + // Why this doesn't work? + // ::cBody += ... + // ??? + + ::cBody := ::cBody + ; + "

" + cDescr + "

" + + RETURN( NIL ) + +STATIC FUNCTION AddPara( cPara, cAlign ) + + LOCAL Self := QSelf() + + Default( cAlign, "Left" ) + + ::cBody := ::cBody + ; + "

" + NewLine + ; + cPara + NewLine + ; + "

" + + RETURN( Self ) + +STATIC FUNCTION Generate() + + LOCAL Self := QSelf() + + ::cContent := ; + "" + NewLine + ; + "" + ::cTitle + "" + NewLine + ; + "" + + NewLine + ; + ::cBody + NewLine + ; + "" + + RETURN( Self ) + +STATIC FUNCTION ShowResult() + + LOCAL Self := QSelf() + + qqOut( ; + "HTTP/1.0 200 OK" + NewLine + ; + "CONTENT-TYPE: TEXT/HTML" + NewLine + NewLine + ; + ::cContent ) + + RETURN( Self ) + +STATIC FUNCTION SaveToFile( cFile ) + + LOCAL Self := QSelf() + LOCAL hFile := fCreate( cFile ) + + fWrite( hFile, ::cContent ) + fClose( hFile ) + + RETURN( Self )