Files
harbour-core/harbour/website/samples/html.prg.html
Viktor Szakats 31a85b650e 2013-02-28 17:19 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.*.po
  * utils/hbmk2/hbmk2.prg
    % minor optimization to recent patch
    + cleanups in some help items
    + '-?' and '-h' options are now accepted as '-help'
    + '-??' and '-hh' options are now accepted as '-longhelp'
    - deleted '-license' option, it's now part of '-longhelp'
    ! hbshell_gtSelect() parameter fixed to be case insentitive
      in an internal check

  + tests/clipper.ch
    + added header file that translates certain Harbour
      specific functions to ones understood by Clipper.
      Useful to compile lightly Harbour specific code
      in Clipper (or other Clipper compatible language),
      for comparison.

  * tests/*.prg
  - tests/exthrb.prg
  + tests/hrbext.prg
  * website/samples/*.prg.html
    ! various cleanups, minor fixes, formatting
    + #included "clipper.ch" to enable running what's
      possible to run with Clipper

  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtwvt/gtwvt.c
    ! return string type for hb_gtInfo( HB_GTI_FONTSEL )
      in sync with GTXWC

  * contrib/xhb/xhbfunc.c
  * include/hbdefs.h
    * HB_FUNC_EXEC() macro value to not end with ';',
      now it should be added on usage (almost all usages
      were such already). To be code formatter friendly.

  * contrib/xhb/xhb.hbp
  + contrib/xhb/xhbdepr.prg
    + added compatiblity stubs for functions deprecated from
      Harbour core, but still available in xHarbour. (xHarbour
      has yet to deprecate anything)
      So here we can gather stuff that's deprecated from Harbour
      core (except internal functions - most of them named '__*' -,
      and the "evil" ones)
    ; NOTE: Runtime efficiency is not a goal with these stubs,
            only "cheap" long term maintainability.

  - contrib/hbblat/tests/blattest.prg
  + contrib/hbblat/tests/test.prg
  * extras/guestbk/guestbk.hbp
  - extras/guestbk/testcgi.prg
  + extras/guestbk/cgi.prg
    * renames

  * src/vm/dynsym.c
  * contrib/hbfbird/tests/testapi.c
  * contrib/xhb/thtm.prg
    * minor
2013-02-28 16:25:51 +00:00

149 lines
4.1 KiB
HTML

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="utf-8">
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-min.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/backcompat.js"></script>
<script type="text/javascript" src="/js/shCore.js"></script>
<script type="text/javascript" src="/js/shBrushHarbour.js"></script>
<link href="/css/shCore.css" rel="stylesheet" type="text/css" />
<link href="/css/shThemeDefault.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">SyntaxHighlighter.all()</script>
</head>
<body>
<script type="syntaxhighlighter" class="brush: harbour; light: true"><![CDATA[
/**
*
* 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( "http://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
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
]]></script>
</body>
</html>