| 
=====================================================================================================
HYPERTEXT TEMPLATE CLASS (httclass.php)
 - Author:     Joseph E. Albritton
 - License:    Public Domain
 - Warranty:   None, use at own risk
 - Background: Based on the ParseTemplate class of WinSysInfo 1.21
=====================================================================================================
INTRODUCTION
 - Hypertext as defined here, is client-side browser renderable code, ie. HTML, SCRIPT, CSS
 - A .htt file consist of one or more named sections of hypertext
 - A section of hypertext is delimited by the [/SECTION\] and [\SECTION/] tags, where SECTION is the name
 - A section of hypertext may contain any number of three different types of replacement tags
    [|FILE|]    - replaced automatically by the content of FILE name
    [[SECTION]] - replaced automatically by the content of SECTION name
    [REPLACE]   - replaced by calling the Replace() method
=====================================================================================================
PURPOSE
 - Provide flexibilty in how hypertext is used by creating separate, reusable, named sections
 - Reduce script size and complexity by moving static hypertext into a .htt file
 - Reduce redundant hypertext by using automatic replacement section tags
 - Change how data is presented by using different .htt files
 - Provide tags to be replaced automatically with the content of a file
 - Provide tags to be replaced automatically with the content of a section
 - Provide tags to be replaced with user defined data
=====================================================================================================
EXAMPLE SCRIPT USING HTTCLASS.PHP (test.php)
<?php
//---------------------------------------------------------
require_once( "c:/YOUR_PATH/httclass.php" );
$oHtt = new HttClass;
if( $oHtt->Init("test.htt") )
{
 $oHtt->Replace( "[TITLE]", "Example *.htt Usage", "HEAD" );
 echo $oHtt->Get( "HEAD" );
 $oHtt->Replace( "[DATA]" , "Auto TABLE Section"   , "BODY" );
 $oHtt->Replace( "[TABLE]", $oHtt->Get( "TABLE" )  , "BODY" );
 $oHtt->Replace( "[DATA]" , "Another TABLE Section", "BODY" );
 echo $oHtt->Get( "BODY" );
 echo $oHtt->Get( "FOOT" );
}
//---------------------------------------------------------
?>
=====================================================================================================
EXAMPLE HYPERTEXT TEMPLATE FILE (test.htt)
-------------------------------------
[/HEAD\]
<html>
<head>
<title>[TITLE]</title>
[|test.txt|]
</head>
[\HEAD/]
-------------------------------------
[/BODY\]
<body>
[[TABLE]]
[TABLE]
</body>
[\BODY/]
-------------------------------------
[/TABLE\]
<table border="1">
<tr>
<td>[DATA]</td>
</tr>
</table>
[\TABLE/]
-------------------------------------
[/FOOT\]
</body>
</html>
[\FOOT/]
-------------------------------------
=====================================================================================================
EXAMPLE AUTO REPLACE FILE (test.txt)
<script language="JavaScript">x = 1;</script>
=====================================================================================================
EXAMPLE RESULTANT HYPERTEXT
<html>
<head>
<title>Example *.htt Usage</title>
<script language="JavaScript">x = 1;</script>
</head>
<body>
<table border="1">
<tr>
<td>Auto TABLE Section</td>
</tr>
</table>
<table border="1">
<tr>
<td>Another TABLE Section</td>
</tr>
</table>
</body>
</body>
</html>
=====================================================================================================
RULES
 - Init() method must be called first to process the .htt file
 - The .htt file is processed once, from the top to the bottom
 - The default section "HTT" is a reserved section name
=====================================================================================================
INSTANTIATE
require_once( "httclass.php" );
$oHtt = new HttClass;
=====================================================================================================
METHODS
-----------------------------------------------------------------------------------------------------
Init( FILE )
Action:  Read the content of FILE into the "HTT" section
         Replace all [|FILE|] tags within the "HTT" section with the content of FILE name
         Replace all [[SECTION]] tags within the "HTT" section with the content of SECTION name
         Parse the "HTT" section into named sections
         Clear the "HTT" section
Where:   FILE is the name of the .htt file (Default = "index.htt" )
Returns: True if success, False if failure
Usage:   if( $oHtt->Init("Htt_File") ) {
-----------------------------------------------------------------------------------------------------
Add( STRING, SECTION )
Action:  Add STRING to the content of SECTION name
         Creates a new named section if SECTION does not exist
Where:   STRING is the string to add
         SECTION is the section name to add the string to (Default = "HTT")
Returns: True if success, False if failure
Usage:   $oHtt->Add( "Some_String" )
-----------------------------------------------------------------------------------------------------
Replace( SEARCH, REPLACE, SECTION )
Action:  Replace all SEARCH strings within SECTION name with REPLACE string
Where:   SEARCH is the string to replace
         REPLACE is the string to replace the search string with
         SECTION is the section name to replace the search string in (Default = "HTT")
Returns: True if success, False if failure
Usage:   $oHtt->Replace( "[Tag]", "Some_String" )
-----------------------------------------------------------------------------------------------------
Get( SECTION )
Action:  Get the content of SECTION name
Where:   SECTION is the section name to get the content of (Default = "HTT")
Returns: Content of section if success, "" if failure
Usage:   echo $oHtt->Get()
-----------------------------------------------------------------------------------------------------
Load( FILE, SECTION )
Action:  Load SECTION name with the content of FILE name
         Creates a new named section if SECTION does not exist
Where:   FILE is the file name to load
         SECTION is the section name to load the file into (Default = "HTT")
Returns: True if success, False if failure
Usage:   echo $oHtt->Load( "File_Name" )
-----------------------------------------------------------------------------------------------------
Parse( SECTION )
Action:  Parse the SECTION into named sections
Where:   SECTION is the section name to parse into named sections (Default = "HTT")
Returns: True if success, False if failure
Usage:   $oHtt->Parse()
-----------------------------------------------------------------------------------------------------
Clear( SECTION )
Action:  Clear the content of SECTION name
Where:   SECTION is the section name to clear the content of (Default = "HTT")
Returns: True if success, False if failure
Usage:   $oHtt->Clear()
-----------------------------------------------------------------------------------------------------
GetStr( STR_BEG, STR_END, STRING )
Action:  Get a substring of STRING between STR_BEG and STR_END, non-inclusive
Where:   STR_BEG is the beginning tag within STRING
         STR_END is the ending tag within STRING
         STRING is the string to get the substring from
Returns: Substring of string if success, "" if failure
Usage:   $section = $oHtt->Section( "[Tag_Begin]", "[Tag_End]", $String )
=====================================================================================================
 |