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

// **********************************************************
//  Classe sDiv
// **********************************************************
/** 
 * Questa classe implementa un oggetto sDiv
 *    
 * @author Dario Mazzeo <hide@address.com>
 * @version 1.0.0
 * @copyright Freesoftware Italia - www.freesoftwareitalia.it  
 * @package sClassHTML
 */
class sDiv extends sClassHTML{
private $html_body="";
	
/**
  *  Creazione dell'oggetto sDiv
  *  
  *  Esempio:
  *    
  * <code>
  * // creazione oggetto sDiv 
  * $contenitore = new sDiv();  
  * 
  * // visualizzazione del codice html
  * echo $contenitore;       
  * </code>  
  *
  * @param string $classe Specificare la classe CSS           
  */           
  public function __construct($classe="css_div"){
    $this->classe=$classe;
  }
  
/**
 *  Aggiunta di un oggetto
 * 
 *  Esempio:
 *  
 *  <code>
 *  $contenitore = new sDiv("classecss");
 *  ...
 *  $contenitore->addObj($myform);
 *  echo $contenitore;  
 *  </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(sClassHTML &$obj, $delete=true){
  	if ($obj->getZindex()>=$this->getZindex()){   
      $this->html_body.=$obj->getHtml();  
      if ($delete) $obj=null;
    }
    else
      throw new Exception("ATTENZIONE non è possibile aggiungere questa classe!");
  }

  /**
   * Questo metodo ritorna il livello di incapsulamento
   *
   * @return int
   */
  public function getZindex(){
  	return 1;
  }
  
	/**
	 * Questo metodo cancella il contenuto dell'Html
	 * 
	 * Se la classe derivata è di tipo statico (es. $_SESSION['obj']), questo metodo consente di
	 * cancellare il contenuto HTML che altrimenti non potrebbe essere cancellato.
	 * 
	 * Esempio:
	 * 
	 * <code>
	 * // page1.php
	 * if (!isset($_SESSION['cart'])){
	 * 	$_SESSION['cart']=new fCart('Carrello');
	 *    ...
	 * }
	 * $_SESSION['cart']->Elabora();
	 * echo $_SESSION['cart'];
	 * 
	 * 
	 * // page2.php
	 * class fCart extends sDiv {
	 * ...
	 * 	public function __construct($classe){
	 * 		parent::__construct($classe);
	 * 		...
	 * 	}
	 * 
	 * 	public function Elabora(){
	 * 		$this->Clear(); 		// <- importante
	 * 		$lbl = new sLabel(...);
	 * 		$this->addObj($lbl);	// senza il Clear() l'oggetto verrebbe aggiunto ad ogni invocazione
	 * 		...
	 * 	}
	 * }
	 * </code>
	 *
	 * @return null
	 */
	public function Clear(){
		unset($this->html_body);
		parent::Clear();
	}  	
  
  /**
   * Questo metodo elabora l'HTML dell'oggetto
   * 
   * @return null
   */
  protected function elaboraHtml(){
    if ($this->classe!="") $myclasse=" class='".$this->classe."'";
  	$this->html="\r\n<div".$myclasse.">".$this->html_body."\r\n</div>";
  }

/**
 *  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