Location: PHPKode > scripts > sClassHTML > sclasshtml/library/sHtml.class.php
<?php
/**
 *  Classe sHtml
 */

// **********************************************************
//  Classe sHtml
// **********************************************************
/** 
 * Questa classe implementa un oggetto sHtml
 *   
 * In questo esempio viene mostrato come implementare una pagina Html.
 * 
 * <code>
 * <?php
 * require_once("../library/main.inc.php");
 * 
 * // PAGINA HTML
 * $mypage = new sHtml("Pagina di prova");
 * $mypage->addCss("../css/form.css");
 * $mypage->addCss("../css/div.css");
 * $mypage->addCss("../css/table.css");
 * $mypage->addCss("../css/html.css");
 * $mypage->addIconHtml(); // aggiunge l'icona W3C Html
 * $mypage->addIconCss(); // aggiunge l'icona W3C CSS
 * ...
 * $mypage->addObj($contenitore_alto); // aggiunge un contenitore
 * $mypage->addObj($contenitore_basso); // aggiunge un contenitore
 * ...    
 * echo $mypage; 
 * </code>
 *  
 * @author Dario Mazzeo <hide@address.com>
 * @version 1.0.0
 * @copyright Freesoftware Italia - www.freesoftwareitalia.it  
 * @package sClassHTML
 */
class sHtml extends sClassHTML{
protected $doctype;
protected $title;
protected $charset;
protected $css="";
protected $iconhtml="";
protected $iconcss="";
protected $zindex=0;

/**
 *  Creazione dell'oggetto sHtml
 *  
 *  Esempio:
 *
 *  <code>      
 *  $mypage = new sHtml("Titolo pagina", "classecss");
 *  </code> 
 *  
 *  @param string $title Titolo della pagina
 *  @param string $classe Nome della classe CSS  
 */ 
  public function __construct($title="", $classe="validator"){
    $this->doctype=$this->tag_doctype;
    $this->addTitle($title);
    $this->addCharset($this->tag_charset);
    $this->classe=$classe;
  }
  
/**
 *  Aggiunta di un oggetto
 * 
 *  Esempio:
 *  
 *  <code>
 *  $mypage->addObj($contenitore_alto); // aggiunge un contenitore
 *  $mypage->addObj($contenitore_basso); // aggiunge un contenitore
 *  echo $mypage;  
 *  </code>    
 *  
 *  @param sClassHTML &$obj Oggetto passato per riferimento
 *  @param bool $delete Se la proprietà è impostata su true, l'oggetto viene cancellato    
 *  @return null
 */   
  public function addObj(&$obj, $delete=true){
  	if ($obj->getZindex()>$this->zindex){
      $this->html.=$obj->getHtml();
      if ($delete) $obj=null;
    }
    else
      throw new Exception("ATTENZIONE non è possibile aggiungere questa classe!");  
  }

/**
 *  Questo metodo aggiunge un titolo alla pagina
 *  
 *  Utilizzare questo metodo se il titolo non è stato impostato durante 
 *  la creazione dell'oggetto sHtml.  
 *  
 *  Esempio:
 *  
 *  <code>
 *  $mypage->addTitle("Nuovo titolo");
 *  </code>      
 *
 *  @param string $title Titolo della pagina  
 *  @return null
 */   
  public function addTitle($title){
    $this->title="\r\n<title>".$title."</title>";
  }

/**
 *  Questo metodo specifica il tipo di caratteri contenuto nella pagina
 *  
 *  Come impostazione predefinita, viene utilizzato il set di caratteri iso-8859-1 che prevere 
 *  i caratteri accentati ò, à, è, é, etc.
 *  
 *  Esempio:
 *  
 *  <code>
 *  $mypage->addCharset("utf-8");
 *  $mypage->addCharset("iso-8859-1");
 *  </code>      
 *
 *  @param string $charset Specifica il set di caratteri per la codifica della pagina  
 *  @return null
 */   
  public function addCharset($charset){
    $this->charset="\r\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=$charset\"/>";
  }
  
/**
 *  Questo metodo aggiunge i file CSS alla pagina
 *  
 *  Esempio:
 *  
 *  <code>
 *  $mypage->addCss("../css/classe1.css");
 *  $mypage->addCss("../css/classe2.css"); 
 *  </code>      
 *
 *  @param string $path Percorso del file CSS da includere alla pagina  
 *  @return null
 */   
  public function addCss($path){
    $this->css.="\r\n"."<link rel='stylesheet' type='text/css' href='$path'".$this->tag_close;
  }

  /**
   * Questo metodo aggiunge gli RSS alla pagina web
   *
   * @param string $link Link al file RSS in formato XML
   * @param string $title Titolo del Feed RSS
   * @return null
   */
  public function addRss($link, $title){
  	$this->css.="\r\n"."<link href='$link' rel='alternate' type='application/rss+xml' title='$title'/>";
  }
  
/**
 *  Questo metodo aggiunge l'icona W3C Html 4.01
 *  
 *  Esempio:
 *  
 *  <code>
 *  $mypage->addIconHtml();
 *  </code>      
 * 
 *  @return null
 */   
  public function addIconHtml(){
    $this->iconhtml=$this->tag_icon_html;
  }

/**
 *  Questo metodo aggiunge l'icona W3C CSS
 *  
 *  Esempio:
 *  
 *  <code>
 *  $mypage->addIconCss();
 *  </code>      
 * 
 *  @return null
 */   
  public function addIconCss(){
    $this->iconcss="\r\n<img alt=\"Valid CSS2\" src=\"http://www.w3.org/Icons/valid-css2.png\"".$this->tag_close;
  }

  /**
   * Questo metodo elabora l'HTML dell'oggetto
   * 
   * @return null
   */
  protected function elaboraHtml(){
    if ($this->classe!="") $myclasse=" class='".$this->classe."'";
  	$str=$this->doctype."\r\n".$this->tag_html;
    $str.="\r\n<head>".$this->charset.$this->title;
    if ($this->css!=""){
    	//$str.="\r\n<style type='text/css'>".$this->css;
    	//$str.="\r\n</style>\r\n</head>";
    	$str.=$this->css;
    }
    $str.="\r\n</head>\r\n<body>".$this->html;
    if ($this->iconhtml!="" || $this->iconcss!="") $str.="\r\n<div".$myclasse.">".$this->iconhtml." ".$this->iconcss."\r\n</div>";
    $str.="\r\n</body>\r\n</html>";
    $this->html=$str;
  }
  
/**
 *  Questo metodo restituisce l'equivalente html dell'oggetto creato
 *  
 *  Esempio:
 *  
 *  <code>
 *  echo $contenitore;  
 *  </code>        
 *  
 *  @return string Ritorna la stringa HTML  
 */
  public function __toString(){
	$this->elaboraHtml();
    return parent::__toString();
  }
  
/**
 *  Questo metodo restituisce l'equivalente html dell'oggetto creato
 *  
 *  Esempio:
 *  
 *  <code>
 *  echo $contenitore->getHtml();  
 *  </code>        
 *  
 *  @return string Ritorna la stringa HTML  
 */
  public function getHtml(){
	$this->elaboraHtml();
    return parent::getHtml();
  }
}
?>
Return current item: sClassHTML