Files
harbour-core/tests/html.prg
Aleksander Czajczynski 12f14227c2 2018-02-11 12:00 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* README.md
  * config/global.mk
  * contrib/gtwvw/doc/gtwvw.txt
  * contrib/hbwin/tests/ole.prg
  * contrib/hbzebra/tests/cairo.prg
  * contrib/hbzebra/tests/harupdf.prg
  * contrib/hbzebra/tests/wingdi.prg
  * package/harbour-wce.spec.in
  * package/harbour-win.spec.in
  * package/harbour.rb
  * package/harbour.spec
  * package/mpkg_win.nsi
  * package/winuni/mpkg_win_uni.nsi
  * src/3rd/zlib/ChangeLog.txt
  * src/compiler/hbusage.c
  * src/pp/hbpp.c
  * tests/html.prg
    * changed Harbour Project website URL references to
      https://harbour.github.io/
      This change is very symbolic mark of time passing, but it had to be
      done. Original harbour-project.org domain went out from reach
      together with Phil Barnett passing away on April 16, 2015.
      Respect Phil, RIP.
      Phil's efforts are directly tied to The Harbour Project origins.
      To memorize him, please take a tour to archived The Oasis
      https://harbour.github.io/the-oasis/
2018-02-11 11:59:33 +01:00

128 lines
3.3 KiB
Plaintext

/**
*
* Harbour Test of a HTML-Generator class.
*
* 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
*
*/
#include "hbclass.ch"
PROCEDURE Main()
LOCAL oHTML := THtml():New()
oHTML:SetTitle( "Harbour Power Demonstration" )
oHTML:AddHead( "Harbour" )
oHTML:AddPara( "<b>Harbour</b> is xBase at its best. Have a taste today!", "left" )
oHTML:AddPara( "<b>L i n k s</b>", "center" )
oHTML:AddLink( "https://harbour.github.io", "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
CREATE CLASS THTML
VAR cTitle // Page Title
VAR cBody // HTML Body Handler
VAR cBGColor // Background Color
VAR cLinkColor // Link Color
VAR cvLinkColor // Visited Link Color
VAR cContent // Page Content Handler
METHOD New() // New Method
METHOD SetTitle( cTitle ) // Set Page Title
METHOD AddLink( cLinkTo, cLinkName ) // Add <H1> Header
METHOD AddHead( cDescr ) // Add Hyperlink
METHOD AddPara( cPara, cAlign ) // Add Paragraph
METHOD Generate() // Generate HTML
METHOD ShowResult() // Saves Content to File
METHOD SaveToFile( cFile ) // Show Result
END CLASS
METHOD New() CLASS THTML
::cTitle := "Untitled"
::cBGColor := "#FFFFFF"
::cLinkColor := "#0000FF"
::cvLinkColor := "#FF0000"
::cContent := ""
::cBody := ""
RETURN Self
METHOD SetTitle( cTitle ) CLASS THTML
::cTitle := cTitle
RETURN Self
METHOD AddLink( cLinkTo, cLinkName ) CLASS THTML
::cBody += "<a href='" + cLinkTo + "'>" + cLinkName + "</a>"
RETURN Self
METHOD AddHead( cDescr ) CLASS THTML
// Why this doesn't work?
// ::cBody += ...
// ???
::cBody += "<h1>" + cDescr + "</h1>"
RETURN NIL
METHOD AddPara( cPara, cAlign ) CLASS THTML
hb_default( @cAlign, "Left" )
::cBody += ;
"<p align='" + cAlign + "'>" + hb_eol() + ;
cPara + hb_eol() + ;
"</p>"
RETURN Self
METHOD Generate() CLASS THTML
::cContent := ;
"<html><head>" + hb_eol() + ;
"<title>" + ::cTitle + "</title>" + hb_eol() + ;
"<body link='" + ::cLinkColor + "' " + ;
"vlink='" + ::cvLinkColor + "'>" + + hb_eol() + ;
::cBody + hb_eol() + ;
"</body></html>"
RETURN Self
METHOD ShowResult() CLASS THTML
OutStd( ;
;// "HTTP/1.0 200 OK" + hb_eol() + ;
"CONTENT-TYPE: TEXT/HTML" + hb_eol() + hb_eol() + ;
::cContent )
RETURN Self
METHOD SaveToFile( cFile ) CLASS THTML
LOCAL hFile := FCreate( cFile )
FWrite( hFile, ::cContent )
FClose( hFile )
RETURN Self