Elemento

PHOTO EMBED

Fri Sep 30 2022 17:24:03 GMT+0000 (Coordinated Universal Time)

Saved by @vmap #php

<?php

class Elemento{

	//Instance variables
	private $tag; //string exemplo:link
	private $atributos; // um elemente tem um array de atributos
	private $temtagfinal; //booleano
	private $subelementos; // um array de elemntos, porque por exemplo, dentro do html leva head e o body.
	private $numtabs; // numero de tabs à esquerda
	private $textTag; 
	
	//Construct
	public function __construct($tag,$temtagfinal,$atributos) {	
		$this->tag=$tag; // para falarmos de uma variavel de instância usa-se $this
		$this->temtagfinal=$temtagfinal;
		$this->atributos=$atributos;
		$this->subelementos=array();
		$this->numtabs=0;
		$this->textTag="";
	}


	//Methods
	public function getCodigo(){
		
		$codigo="";
		for ($i=0;$i<$this->numtabs;$i++){ //este ciclo tem tantas iteracoes quanto o num de tabs definidos
			$codigo.="  ";
		}
		
		$codigo.="<".$this->tag." ";
		foreach($this->atributos as $atributo){
			$codigo.=$atributo." ";
		}
		if (!$this->temtagfinal) $codigo.="/>"."\n";
		else $codigo.=">"."\n";
		
		
		if ($this->temtagfinal) {
			if ($this->textTag==""){
				foreach ($this->subelementos as $subelemento){
					$codigo.=$subelemento->getCodigo(); 
				}
			}else{
				$codigo.=$this->textTag."\n";
			}
			
			for ($i=0;$i<$this->numtabs;$i++){ //
				$codigo.="  ";
			}
			
			$codigo.="</".$this->tag.">"."\n";
		}
		
		
		return $codigo;
	}
	
	public function addSubElemento($subelemento){
		$subelemento->setNumTabs($this->numtabs+1);
		$this->subelementos[count($this->subelementos)]=$subelemento; //count no array da-nos o n de posiçoes do array 	
	}
	
	public function setNumTabs($numtabs) {
		$this->numtabs=$numtabs;
	}

	public function addTextToTag($textTag) {
		$this->textTag=$textTag;
	}
    
	
} 

?>
content_copyCOPY