Revision: 27402
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at June 6, 2010 10:00 by minky
Initial Code
<?php
/**
* html
*
* @copyright Copyright 2010 (c) Jared Clarke @ Pixaweb.co.uk
* @author Jared Clarke <[email protected]>
* @version 0.1
*/
class html {
public $element;
public $innerHTML;
public $attributes = array();
private $special = array("img", "input", "hr", "br", "meta", "link");
public function __construct($element, $innerHTML = NULL, $attributes = NULL) {
$this->element = $element;
if(!is_null($innerHTML))
$this->innerHTML($innerHTML);
if(!is_null($attributes))
$this->attributes($attributes);
}
public function __toString() {
return $this->generate();
}
public function attributes($attributes) {
$this->attributes = array_merge($this->attributes, (array) $attributes);
return $this;
}
public function innerHTML($innerHTML) {
$this->innerHTML = $innerHTML;
return $this;
}
public function output() {
return $this->generate();
}
private function generate() {
$html = "<{$this->element}";
if(!empty($this->attributes)) {
foreach($this->attributes AS $key => $value) {
// allow boolean array("disabled" => true);
if(is_bool($value)) {
// most browsers support <.. disabled OR disabled="disabled" />
if(!$value) continue;
$value = $key;
}
$html .= ' '. $key .'="'. $value .'"';
}
}
if(in_array($this->element, $this->special)) {
$html .= "/>";
return $html;
}
$html .= ">{$this->innerHTML}</{$this->element}>";
return $html;
}
}
$input = new html("input");
echo $input->attributes(array("name" => "test", "value" => "testing", "disabled" => true))->output();
// <input name="test" value="testing" disabled="disabled"/>
echo new html("a", "Link Text", array("href" => "http://www.google.com"));
// <a href="http://www.google.com">Link Text</a>
$html = new html("a");
$html->innerHTML("Link Text");
$html->attributes(array("href" => "http://www.google.com"));
echo $html->output();
// <a href="http://www.google.com">Link Text</a>
echo $html->innerHTML("Link Text")->attributes(array("href" => "http://www.google.com"))->output();
// <a href="http://www.google.com">Link Text</a>
$html->innerHTML = "Override Text";
echo $html->output();
// <a href="http://www.google.com">Override Text</a>
$html->attributes["href"] = "http://www.yahoo.com";
echo $html->output();
// <a href="http://www.yahoo.com">Override Text</a>
?>
Initial URL
http://www.pixaweb.co.uk/resources?tag=php5
Initial Description
## PHP - HTML Generation Class This class allows you to generate (and fill) any HTML elements via programmatic or object-orientated methods
Initial Title
PHP - HTML Generation Class
Initial Tags
php, html
Initial Language
PHP