PHP Classes
elePHPant
Icontem

classHTML: A simple HTML Generation class

Recommend this page to a friend!
  Info   View files View files (3)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2004-02-17 (13 years ago) RSS 2.0 feedStarStarStar 56%Total: 3,313 All time: 1,017 This week: 752Up
Version License Categories
classhtml 1.0GNU General Publi...HTML
Description Author

This class, despite is incomplete yet, is fully functional. It is meant to generate HTML code completely from PHP, with beautiful output.

  Performance   Level  
Name: Daniel Andres Marjos <contact>
Classes: 13 packages by
Country: Argentina Argentina
Innovation award
Innovation award
Nominee: 2x

Details
This class is based in a superclass, the clsTag class. All the classes extends this one. 
The Properties of this class are:

	$indent      : used to set the indentation of HTML code
	$outputCode  : holds the generated HTML code
	$tag         : holds the HTML tag being generated
	$child       : an array of objects that holds all the child nodes
                       of this tag. 
	$indenting   : deprecated. it was intended to act as a flag of
                       indentation

The methods are:

   InString(what,where): search through an array (where) looking for a
                         string (what)

   GetAttributes(addAttr,attr): this method mixes the default tag's 
                         attributes with the provided ones

   clsTag(tag,attr,indenting): the class Constructor. 

   getOutputCode: returns as a string the generated HTML code

   Generate: builds the code and output it.

   AddNode(node): insert a node in the tag tree. For example, you can add
                  a row inside a table, or an image between opening and 
                  closing A tags

   HookIt: it was introduced as a sort of parent::constructor callback 
           function.

   CloseTag: this is almost the only one method that is overcharged. It 
             adds the closing tag to the tree.


Classes that extends the clsTag class:

clsHTMLDocument: This should be the top class in the tree. It builds the HTML /HTML tags

clsHeaderSection: adds the HEAD /HEAD tags

clsTitle: adds the TITLE /TITLE tags

clsMeta: adds the META tag. This class overwrite the CloseTag method.

---------------

I think the most interesting part of this tutorial must be the support functions, the ones used to actually put this class to work. Those functions and their parameters are: 

In every case the child parameter can be an object or an array of objects
in every case, the attr parameter (if present and/or not empty) represents the tag's attributes, like the border of a table, or the src of an img. the format of this parameter is: attr1=val;attr2=val;attr3=val;....;attrn=val

fnHTML(object [child])

fnHeader(object [child])

fnTitle(string [title])

fnMeta(string [attr])

fnStyleSheet(string stylesheet, string [attr]): The stylesheet parameter is the location of the .css file. it will generate a <link rel=stylesheet type=text/css href=«the style sheet»>

fnBody(string [attr], object [child])

fnTable(string [attr], object [child])

fnRow(string [attr], object [child])

fnCell(string [text], string [font], string [attr], object [child]): The text parameter is used in conjunction with the font parameter, and is used when you want to show text inside a cell, instead another tag.

fnFont(string [text], string [attr], object [child]): Just like the fnCell, but the font there is attr here.

fnParagraph(string [text], string [font], string [attr], object [child]): See fnCell

fnShowText(string text, string [attr]): insert text without formatting

fnImg(string src, string [id], string [attr])

fnLink(string [href], string [text], string [font], string [attr], object [child])

fnForm(string [action], string [name], string [hiddens], string [attr], object [child]): the hiddens parameter has the same format that the attr parameter, and it will generate the <input type=hidden> tags according to the name=value pairs.

fnOption: This function is used internaly, and should NEVER be used by you

fnSelect(string name, string [values], string [selvalue], string [attr]): the values parameter is an array. Its format is values["the_val"]="the text". the selvalue is a string, matching one key in the values array. 

fnInput(string name,string [value], string [size], string [maxlength], string [attr]): It generates a <input type=text>

fnPassword(string name,string [value], string [size], string [maxlength], string [attr])

fnFile(string name, string [attr]): Builds a <input type=file>

fnTextArea(string name,string [value], string [rows], string [cols], string [attr]): It generates a <textarea>value</textarea>

fnHidden(string name, string [value], string [attr])

----------------------------

I will add more documentation in a few days... but I think the other support functions are quite self-explainatory. Below, a few examples...

----------------------------

$document=fnHtml(array(
	fnHeader(array(
		fnTitle("This is a test"),
		fnStyleSheet("styles/mystyle.css")
	)),
	fnBody(
		fnTable("",array(
			fnRow("",
				fnCell("This is a text","","align=center;bgcolor=#c0c0c0")
			)
		))
	)
));

$document->Generate();

The example above will generate this code:

<html>
	<head>
		<title>This is a test</title>
		<link rel=stylesheet type=text/css href="styles/mystyle.css">
	</head>
	<body>
		<table border=0 cellpadding=0 cellspacing=0>
			<tr>
				<td align=center bgcolor="#c0c0c0">This is a test</td>
			</tr>
		</table>
	</body>
</html>



  Files folder image Files  
File Role Description
Plain text file classHTML.php Class The classes
Accessible without login Plain text file example.php Example Full Working Example on using classHTML
Accessible without login Plain text file readme.txt Doc. A brief description of how to use this classes

 Version Control Unique User Downloads Download Rankings  
 0%
Total:3,313
This week:0
All time:1,017
This week:752Up
 User Ratings  
 
 All time
Utility:75%StarStarStarStar
Consistency:78%StarStarStarStar
Documentation:57%StarStarStar
Examples:53%StarStarStar
Tests:-
Videos:-
Overall:56%StarStarStar
Rank:1637